{"version":3,"sources":["common/const.js","common/locale.js","common/language sync /^/.//.*$","common/scrollToTop.js","common/format.js","common/component.js","common/serviceHelper.js","component/user/currentUserService.js","component/user/userService.js","component/product/productService.js","common/siderBase.js","component/backend/sider.js","component/backend/header.js","component/content/contentService.js","component/file/fileService.js","common/editor.js","component/file/upload.js","component/content/contentPost.js","component/content/contentManage.js","common/tree.js","common/treeView.js","component/content/categoryPost.js","component/content/categoryManage.js","component/product/productPost.js","component/product/productManage.js","component/product/brandPost.js","component/product/brandManage.js","component/product/colorPost.js","component/product/colorManage.js","component/product/categoryPost.js","component/product/categoryManage.js","component/product/orders.js","component/user/verificationCode.js","component/user/profile.js","component/user/bank.js","component/user/register.js","component/user/userManage.js","component/user/memberGroup.js","component/user/userSponsorList.js","component/wallet/walletService.js","component/wallet/withdraw.js","component/wallet/transfer.js","component/backend/layout.js","component/frontend/menuMain.js","component/frontend/searchbox.js","component/frontend/sider.js","component/frontend/header.js","component/frontend/footer.js","component/product/component/productGrid.js","component/frontend/home.js","component/user/login.js","component/frontend/contact.js","component/content/contentDetail.js","component/content/contentList.js","component/product/productList.js","common/scrollBox.js","component/product/productDetail.js","component/product/cart.js","component/frontend/layout.js","app.js","serviceWorker.js","index.js"],"names":["domainName","apiURL","beRoutePath","languageDefault","apiCode","success","validation","error","processing","media","largeQuery","smallQuery","waistFilterList","value","text","hipLineFilterList","thighFilterList","legFilterList","pipeFilterList","pageCategory","pageMainMenu","pageSiderMenu","currentLanguage","window","localStorage","getItem","Const","setItem","languageData","require","getFormat","language","dateFormat","dateOption","year","month","day","timeFormat","timeOption","hour","minute","second","fractionDigits","thousandSeparator","decimalSeparator","Locale","getCurrentLanguage","getText","key","eval","setCurrentLanguage","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","ScrollToTop","prevProps","this","props","location","pathname","scrollTo","React","Component","withRouter","truncate","multiplier","Math","pow","adjustedNum","Format","number","format","Intl","NumberFormat","maximumFractionDigits","coinNumber","date","DateTimeFormat","time","brToTag","tag","textList","split","i","length","MinMaxToValue","min","max","MinMaxToText","spinSubject","Subject","Popup","visible","isVisible","next","show","hide","getObservable","asObservable","option","okText","cancelText","title","icon","className","Modal","confirm","maskClosable","model","autoClose","setTimeout","destroy","onCancel","PopMessage","message","InputNumber","localeFormat","state","onChange","addonBefore","addonAfter","attrs","onValueChange","parse","Fragment","InputComp","event","clearTimeout","changeHandle","change","setState","target","nextProps","attr","Msg","msgs","msg","find","item","tokenGet","tokenRemove","removeItem","post","endpoint","param","a","token","headers","authorization","fetch","method","body","JSON","stringify","crossDomain","res","responseProcess","response","statusText","console","log","get","query","Array","isArray","encodeURIComponent","substring","status","indexOf","json","responseJson","unauthorized","subject","currentUser","CurrentUserService","checkUser","Service","data","getUser","setUser","user","LoginService","tokenSet","loginSubmit","logoutSubmit","RegisterService","init","submit","RepositoryService","userCheck","async","UserManageService","getList","ban","ProfileService","shippingInfoInit","shippingInfoSubmit","LoginToUserService","login","backToLogin","VerificationCodeService","MemberGroupService","UserSponsorListService","ContactService","BankService","CategoryService","categoryList","sort","b","orderNumber","CategoryParseTreeLoop","parentId","childList","children","push","name","MenuService","categoryTree","ProductHomeService","featuredGetList","productCategoryHighlightGetList","ProductDetailService","categoryGetList","ProductListService","ProductManageService","ProductPostService","delete","SearchBoxService","cartSubject","cartData","CartService","getItemList","getCart","idList","forEach","itemList","cartItem","m","index","qty","setCart","cartString","addCart","itemCart","qtyCheck","quantityCheck","quantity","quantityCheckRes","enough","cart","deleteCart","filter","clearCart","OrdersManageService","getDetail","update","cancel","ProductBrandManageServices","ProductBrandPostServices","ProductColorManageServices","ProductColorPostServices","ProductCategoryManageService","ProductCategoryPostService","getOrderList","ProductURL","keyword","categoryName","brandName","colorName","categoryId","brandId","colorId","waist","hipLine","thigh","leg","pipe","pageIndex","orderBy","url","getSlug","siderService","SiderBase","sider","colapse","visibleMedia","render","backdrop","onClick","siderSubscription","subscribe","isSiderChange","siderState","unsubscribe","document","classList","add","remove","Sider","onLogout","onBackToLogin","onFunctionUpdate","preventDefault","userCurrent","userCurrentSubscription","to","src","alt","defaultOpenKeys","mode","inlineIndent","onSelect","loginUserName","Item","style","marginLeft","type","block","isAdmin","isProductManager","isContentManager","SubMenu","Header","logoutHandle","cartSubscription","cartQty","trigger","overlay","userName","fullName","Divider","ContentDetailService","ContentManageService","ContentPostService","ContentCategoryManageService","ContentCategoryPostService","ContentListService","HomeContentService","ContentURL","FileService","uploadApi","imageURL","size","square","Editor","height","plugins","toolbar","toolbar_mode","file_picker_callback","callback","meta","filePicker","onEditorChange","Upload","uploadHeader","onFilePickerShow","isFilePicker","filePickerCallback","onItemClick","info","file","fileList","multiple","onMove","step","from","splice","onDelete","onOk","onDeleteAll","onView","thisElement","createRef","readonly","appendChild","current","removeChild","rootClassName","ref","backgroundImage","href","action","showUploadList","newState","hasChange","ContentPost","onSubmit","summary","isHidden","dateCreated","description","link","descriptionFileList","then","showSearch","width","dropdownStyle","maxHeight","overflow","allowClear","treeDefaultExpandAll","treeData","treeNodeFilterProp","checked","showTime","moment","TextArea","autoSize","minRows","maxRows","ContentManage","dateFrom","dateTo","totalPages","totalItems","deleteItem","onItemCancel","isItemDrawer","onItemOk","onAddItem","itemId","onEditItem","onDeleteItem","content","pageSize","align","xs","sm","xl","Search","placeholder","onSearch","flex","justify","Option","total","showSizeChanger","imageId","Date","placement","gutter","onClose","destroyOnClose","parseTree","TreeView","treeRendered","dataList","generateList","loopFindKeywordAndFillColor","treeRender","beforeStr","substr","afterStr","color","loopFindKeyword","node","toLowerCase","getParentKey","tree","parentKey","some","onExpand","expandedKeys","autoExpandParent","searchText","self","CategoryPost","isAdd","parentList","itemParentId","orderList","TreeHelper","buildOrderList","category","onSelectParent","extra","orderListData","newOrderList","label","onSubmitAndContinues","onGetList","zIndex","options","optionFilterProp","filterOption","input","float","CategoryManage","isItemModel","selectedKeys","onSelectTreeNode","footer","ProductPost","brandList","colorList","memberTypeList","onPriceSaleOff","tab","price","priceSource","priceType","parseInt","saleOffPercent","priceSaleOff","waistTo","hipLineTo","thighTo","legTo","pipeTo","allowOrder","highlightPriority","onChangePopular","isPopular","toString","inputValue","includes","values","floatValue","activeKey","TabPane","disabled","ProductManage","data-title","BrandPost","popularOrderNumber","updateState","onItemOkAndContinue","autoFocus","BrandManage","isShowModalItem","ColorPost","ColorManage","Orders","statusList","stateProvinceList","districtCityList","match","params","itemDetail","statusId","stateProvinceId","districtCityId","statusName","onItemDetail","itemDetailStatusId","itemDetailNote","note","address","isCancel","isBuyerCancel","isSellerCancel","isClose","onItemClose","onItemDetailSubmit","onItemDetailCancel","buyer","seller","primaryWallet","fundWallet","whiteSpace","maxWidth","md","readOnly","rows","danger","productId","productName","bonusPoint","numberOfReceive","memberTypeNameBonus","VerificationCode","isGetCode","onCodeGet","loading","Profile","email","password","confirmPassword","onIdCardLocationChange","tradingFloor","tradingFloorList","locationId","idCardLocationId","originMarketId","originMarketName","phoneNumber","verificationCode","hasVerificationCode","span","order","lg","Password","Bank","bankId","bankBranch","bankAccountName","bankAccountNumber","required","Register","defaultState","sponsorInfo","memberTypeId","sponsorName","idCardNumber","tradingMarketId","isCompany","memverTypeOptions","margin","autoWidth","dots","nav","navText","rewind","smartSpeed","isSponsor","onSponsorCheck","isSponsorCheck","sponsorCheckHandle","sponsorCheck","UserManage","isBanned","banItem","onBanItem","loginToUser","userId","sponsor","secondaryWallet","groupWallet","MemberGroup","memberList","group","drawCircle","config","itemHeight","maxItem","maxDeg","startDeg","maxRadius","minRadius","itemRadius","groupHeight","padding","degStep","deg","mainMemberCount","subMemberCount","subMemberTypeSymbol","transform","overlayClassName","mainMemberList","subMemberTypeId","mainMemberListLength","mainGroup_1","mainGroup_2","subMemberList","subMemberListLength","mainGroup_3","overflowX","overflowY","UserSponsorList","TransferService","WithdrawService","Withdraw","feeVND","bankList","walletList","wallet","userInfo","fee","isMounted","updater","onChangeStatus","dropdownClassName","result","textAlign","Group","defaultValue","Button","receiveValue","fees","bankName","Transfer","onUserCheck","isUserCheck","userCheckHandle","notCurrent","prefix","Layout","isCurrentUser","history","path","component","ContentCategoryManage","exact","MenuMain","contentCategoryList","productCategoryTree","ContentMenuService","ProductMenuService","item_1","item_2","dangerouslySetInnerHTML","__html","searchBoxService","SearchBox","setParam","waistText","hipLineText","thighText","legText","pipeText","waistFilter","waistParse","hipLineFilter","hipLineParse","thighFilter","thighParse","legFilter","legParse","pipeFilter","pipeParse","undefined","waistSize","hipLineSize","thighSize","legSize","pipeSize","onChangeWaist","waistValue","waistFrom","onChangeHipLine","hipLineValue","hipLineFrom","onChangeThigh","thighValue","thighFrom","onChangeLeg","legValue","legFrom","onChangePipe","pipeValue","pipeFrom","changeWaySearch","isDefault","searchBoxSubscription","enterButton","cursor","dropdownRender","menu","display","flexWrap","onOffice","item_3","mainbarAffixChange","affixed","mainbarAffix","offsetTop","Footer","productMenuList","contactInfo","hasDescription","level","offset","ProductGrid","productList","Home","isPopup","bannerList","latestProductList","productCategoryHighlightList","onClosePopup","highlightProductList","Login","onPressEnter","Contact","reCaptchaRef","executeAsync","recaptchaToken","reset","sitekey","ContentDetail","isNaN","ContentList","getQuery","ProductList","categorySider","setParamSearchBox","childrenList","navList","onBrandClick","onBrandClear","ScrollBox","ScrollBooster","viewport","scrollMode","pointerMode","bounce","scrollbar","ProductDetail","setImageMagnify","imageMagnify","smallImage","largeImage","onImageThumbChange","isImageMagnify","onAddToCart","addCartRes","inStock","onlyBuyOne","onBuyNow","isFluidWidth","onLoad","mainImageId","imageList","itemThumbList","spinning","ReactImageMagnify","ghost","defaultActiveKey","centered","Cart","onItemQtyChange","qtyNew","itemQtyChangeHandle","qtyCheckRes","onItemDelete","onCheckout","isOK","quantityCheckList","stockList","stock","isDeleted","isError","sumPrice","isDiscount","App","isSpinVisible","spinSubscription","wrapperClassName","LayoutBE","LayoutFE","Boolean","hostname","baseUrl","getElementsByTagName","getAttribute","ReactDOM","basename","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.dd5a7348.chunk.js","sourcesContent":["export let domainName = \"jadebi.com\";\nexport let domainURL = \"http://\" + domainName;\nexport let apiURL = \"https://api.jadebi.com/\";\n\nif (process.env.NODE_ENV === \"development\") {\n\tdomainName = \"localhost:44399\";\n\tdomainURL = \"https://\" + domainName;\n\tapiURL = \"https://api.jadebi.com/\";\n}\n\nexport const beRoutePath = \"/office\";\n\nexport const languageDefault = \"vi\";\n\nexport const apiCode = {\n\tsuccess: 1,\n\tvalidation: 2,\n\terror: 3,\n\tprocessing: 4,\n};\n\nexport const media = {\n\tlargeQuery: \"(min-width: 992px)\",\n\tsmallQuery: \"(max-width: 991px)\",\n};\n\nexport const waistFilterList = [\n\t{ value: \"34-0\", text: \"Từ 34\" },\n\t{ value: \"34-35\", text: \"Từ 34 - đến 35\" },\n\t{ value: \"44-45\", text: \"Từ 44 - đến 45\" },\n\t{ value: \"46-47\", text: \"Từ 46 - đến 47\" },\n];\n\nexport const hipLineFilterList = [\n\t{ value: \"54-0\", text: \"Từ 54\" },\n\t{ value: \"54-55\", text: \"Từ 54 - đến 55\" },\n\t{ value: \"56-57\", text: \"Từ 56 - đến 57\" },\n\t{ value: \"70-74\", text: \"Từ 70 - đến 74\" },\n];\n\nexport const thighFilterList = [\n\t{ value: \"50-0\", text: \"Từ 50\" },\n\t{ value: \"50-55\", text: \"Từ 50 - đến 55\" },\n\t{ value: \"56-57\", text: \"Từ 56 - đến 57\" },\n\t{ value: \"60-62\", text: \"Từ 60 - đến 62\" },\n];\n\nexport const legFilterList = [\n\t{ value: \"70-0\", text: \"Từ 70\" },\n\t{ value: \"70-80\", text: \"Từ 70 - đến 80\" },\n\t{ value: \"80-90\", text: \"Từ 80 - đến 90\" },\n\t{ value: \"90-100\", text: \"Từ 90 - đến 100\" },\n];\n\nexport const pipeFilterList = [\n\t{ value: \"40-0\", text: \"Từ 40\" },\n\t{ value: \"40-50\", text: \"Từ 40 - đến 50\" },\n\t{ value: \"50-60\", text: \"Từ 50 - đến 60\" },\n\t{ value: \"70-80\", text: \"Từ 70 - đến 80\" },\n];\n\nexport const pageCategory = 4;\nexport const pageMainMenu = [5];\nexport const pageSiderMenu = [5];\n","import * as Const from \"./const\";\n\nlet currentLanguage = window.localStorage.getItem(\"language\");\nif (!currentLanguage) {\n\tcurrentLanguage = Const.languageDefault;\n\twindow.localStorage.setItem(\"language\", currentLanguage);\n}\nlet languageData = require(\"./language/\" + currentLanguage);\n\nconst getFormat = () => {\n\tswitch (currentLanguage) {\n\t\tcase \"vi\":\n\t\t\treturn {\n\t\t\t\tlanguage: currentLanguage,\n\t\t\t\tdateFormat: \"D/M/YYYY\",\n\t\t\t\tdateOption: {\n\t\t\t\t\tyear: \"numeric\",\n\t\t\t\t\tmonth: \"numeric\",\n\t\t\t\t\tday: \"numeric\",\n\t\t\t\t},\n\t\t\t\ttimeFormat: \"H:m:s\",\n\t\t\t\ttimeOption: {\n\t\t\t\t\thour: \"numeric\",\n\t\t\t\t\tminute: \"numeric\",\n\t\t\t\t\tsecond: \"numeric\",\n\t\t\t\t},\n\t\t\t\tfractionDigits: 2,\n\t\t\t\tthousandSeparator: \".\",\n\t\t\t\tdecimalSeparator: \",\",\n\t\t\t};\n\t\tdefault:\n\t\t\treturn {\n\t\t\t\tlanguage: currentLanguage,\n\t\t\t\tdateFormat: \"M/D/YYYY\",\n\t\t\t\tdateOption: {\n\t\t\t\t\tyear: \"numeric\",\n\t\t\t\t\tmonth: \"numeric\",\n\t\t\t\t\tday: \"numeric\",\n\t\t\t\t},\n\t\t\t\ttimeFormat: \"H:m:s\",\n\t\t\t\ttimeOption: {\n\t\t\t\t\thour: \"numeric\",\n\t\t\t\t\tminute: \"numeric\",\n\t\t\t\t},\n\t\t\t\tfractionDigits: 2,\n\t\t\t\tthousandSeparator: \",\",\n\t\t\t\tdecimalSeparator: \".\",\n\t\t\t};\n\t}\n};\n\nexport const Locale = {\n\tgetCurrentLanguage: () => currentLanguage,\n\tgetText: (key) => eval(\"languageData.\" + key),\n\tsetCurrentLanguage: (language) => {\n\t\tcurrentLanguage = language;\n\t\twindow.localStorage.setItem(\"language\", currentLanguage);\n\t},\n\tgetFormat: () => getFormat(),\n};\n","var map = {\n\t\"./en\": 174,\n\t\"./en.json\": 174,\n\t\"./vi\": 175,\n\t\"./vi.json\": 175\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 = 232;","import React from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\n\r\nclass ScrollToTop extends React.Component {\r\n\tcomponentDidUpdate(prevProps) {\r\n\t\tif (this.props.location.pathname !== prevProps.location.pathname) {\r\n\t\t\twindow.scrollTo(0, 0);\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn null;\r\n\t}\r\n}\r\n\r\nexport default withRouter(ScrollToTop);\r\n","import { Locale } from \"./locale\";\n\nconst truncate = (value, fractionDigits) => {\n\tlet multiplier = Math.pow(10, fractionDigits),\n\t\tadjustedNum = value * multiplier,\n\t\ttruncatedNum = Math[adjustedNum < 0 ? \"ceil\" : \"floor\"](adjustedNum);\n\n\treturn truncatedNum / multiplier;\n};\n\nconst brToTag = (value, tag) => {\n\tif (!value) return value;\n\n\tif (!tag) tag = \"div\";\n\n\tlet text = \"\";\n\tlet textList = value.split(\"\\n\");\n\tfor (var i = 0; i < textList.length; i++) {\n\t\ttext += \"<\" + tag + \">\" + textList[i] + \"\";\n\t}\n\n\treturn text;\n};\n\nexport const Format = {\n\ttruncate: truncate,\n\tnumber: (value, fractionDigits) => {\n\t\tif (value == null) return \"\";\n\n\t\tconst format = Locale.getFormat();\n\n\t\tif (fractionDigits == null) fractionDigits = format.fractionDigits;\n\n\t\tvalue = truncate(value, fractionDigits);\n\n\t\tlet text = new Intl.NumberFormat(format.language, {\n\t\t\tmaximumFractionDigits: fractionDigits,\n\t\t}).format(value);\n\n\t\treturn text;\n\t},\n\tcoinNumber: (value) => {\n\t\treturn Format.number(value, 8);\n\t},\n\tdate: (value) => {\n\t\tif (value == null) return \"\";\n\n\t\tconst format = Locale.getFormat();\n\n\t\tlet text = new Intl.DateTimeFormat(\n\t\t\tformat.language,\n\t\t\tformat.dateOption\n\t\t).format(value);\n\n\t\treturn text;\n\t},\n\ttime: (value) => {\n\t\tif (value == null) return \"\";\n\n\t\tconst format = Locale.getFormat();\n\n\t\tlet text = new Intl.DateTimeFormat(\"en\", format.timeOption).format(value);\n\n\t\treturn text;\n\t},\n\tbrToTag: brToTag,\n};\n\nexport const MinMaxToValue = (min, max) => {\n\tif (!min) min = \"0\";\n\tif (!max) max = \"0\";\n\tif (min == \"0\" && max == \"0\") return \"0\";\n\treturn min + \"-\" + max;\n}\n\nexport const MinMaxToText = (min, max) => {\n\tif (min > 0 && max > 0)\n\t\treturn \"Từ \" + min + \" - \" + \"đến \" + max;\n\telse if (min > 0 && (!max || max <= 0))\n\t\treturn \"Từ \" + min;\n\telse if (max > 0 && (!min || min <= 0))\n\t\treturn \"Đến \" + max;\n}\n","import React, { Component } from \"react\";\nimport { Modal, message, Input as InputAntd } from 'antd';\nimport { default as ReactNumberFormat } from 'react-number-format';\nimport { Subject } from \"rxjs\";\n\nimport { Locale } from \"../common/locale\";\nimport { Format } from '../common/format';\n\nconst spinSubject = new Subject();\nconst Spin = {\n\tvisible: isVisible => spinSubject.next({ isVisible: isVisible }),\n\tshow: () => spinSubject.next({ isVisible: true }),\n\thide: () => spinSubject.next({ isVisible: false }),\n\tgetObservable: () => spinSubject.asObservable(),\n}\n\nconst Confirm = (option) => {\n\tif (option == null)\n\t\toption = {};\n\n\toption.okText = Locale.getText(\"common.OK\");\n\toption.cancelText = Locale.getText(\"common.cancel\");\n\n\tif (!option.title)\n\t\toption.title = Locale.getText(\"common.action_confirm\");\n\n\tif (!option.icon)\n\t\toption.icon = ;\n\n\tModal.confirm(option);\n}\n\nconst Info = (option) => {\n\tif (option == null)\n\t\toption = {};\n\n\toption.okText = Locale.getText(\"common.close\");\n\n\toption.maskClosable = true;\n\n\tif (!option.title)\n\t\toption.title = Locale.getText(\"common.action_completed\");\n\n\tif (!option.icon)\n\t\toption.icon = ;\n\n\tconst model = Modal.success(option);\n\tif (option.autoClose)\n\t\tsetTimeout(() => {\n\t\t\tmodel.destroy();\n\t\t\tif (option.onCancel)\n\t\t\t\toption.onCancel();\n\t\t}, option.autoClose === true ? 1000 : option.autoClose);\n}\n\nconst Error = (option) => {\n\tif (option == null)\n\t\toption = {};\n\n\toption.okText = Locale.getText(\"common.close\");\n\n\toption.maskClosable = true;\n\n\tif (!option.title)\n\t\toption.title = Locale.getText(\"common.action_error\");\n\n\tif (!option.icon)\n\t\toption.icon = ;\n\n\tconst model = Modal.error(option);\n\tif (option.autoClose)\n\t\tsetTimeout(() => {\n\t\t\tmodel.destroy();\n\t\t}, option.autoClose === true ? 1000 : option.autoClose);\n}\n\nexport const Popup = {\n\tspin: Spin,\n\tconfirm: Confirm,\n\tinfo: Info,\n\terror: Error,\n}\n\nexport const PopMessage = {\n\tsuccess: title => {\n\t\tif (!title)\n\t\t\ttitle = Locale.getText(\"common.action_completed\");\n\t\n\t\tmessage.success(title);\n\t},\n}\n\nexport class InputNumber extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tconst localeFormat = Locale.getFormat();\n\n\t\tthis.state = {\n\t\t\tthousandSeparator: localeFormat.thousandSeparator,\n\t\t\tdecimalSeparator: localeFormat.decimalSeparator,\n\t\t}\n\t}\n\n\trender() {\n\t\tlet { className, onChange, addonBefore, addonAfter, ...attrs } = this.props;\n\t\taddonBefore = addonBefore ? {addonBefore} : null;\n\t\taddonAfter = addonAfter ? {addonAfter} : null;\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{addonBefore}\n\t\t\t\t\t\n\t\t\t\t\t{addonAfter}\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n\nexport class NumberFormat extends Component {\n\trender() {\n\t\tlet { value } = this.props;\n\n\t\tif (value == null || value == 0)\n\t\t\treturn value;\n\n\t\tconst localeFormat = Locale.getFormat();\n\t\tconst decimalSeparator = localeFormat.decimalSeparator;\n\n\t\tconst parse = Format.number(value).split(decimalSeparator);\n\t\treturn (\n\t\t\t{parse[0]}{parse[1] ? {decimalSeparator + parse[1]} : \"\"}\n\t\t);\n\t}\n}\n\nexport class CoinFormat extends Component {\n\trender() {\n\t\tlet { value } = this.props;\n\n\t\tif (value == null || value == 0)\n\t\t\treturn value;\n\n\t\tconst localeFormat = Locale.getFormat();\n\t\tconst decimalSeparator = localeFormat.decimalSeparator;\n\n\t\tconst parse = Format.coinNumber(value).split(decimalSeparator);\n\t\treturn (\n\t\t\t{parse[0]}{parse[1] ? {decimalSeparator + parse[1]} : \"\"}\n\t\t);\n\t}\n}\n\nexport class InputComp extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tvalue: this.props.value,\n\t\t};\n\t}\n\n\tonChange = (e) => {\n\t\tconst { ...event } = e;\n\n\t\tclearTimeout(this.changeHandle);\n\t\tthis.changeHandle = setTimeout(() => {\n\t\t\tthis.change(event);\n\t\t}, 400);\n\n\t\tthis.setState({ value: e.target.value });\n\t};\n\n\tchange = (e) => {\n\t\tif (this.props.onChange) this.props.onChange(e);\n\t};\n\n\tshouldComponentUpdate(nextProps) {\n\t\tthis.state.value = nextProps.value;\n\t\treturn true;\n\t}\n\n\trender() {\n\t\tlet { value, onChange, ...attr } = this.props;\n\t\treturn ;\n\t}\n}\n\nexport class Msg extends Component {\n\trender() {\n\t\tif (this.props.msgs != null && this.props.msgs.length > 0) {\n\t\t\tconst { target, msgs, ...attr } = this.props;\n\t\t\tconst msg = msgs.find(item => item.target === target);\n\t\t\tif (msg) {\n\t\t\t\tlet text = Locale.getText(msg.code);\n\t\t\t\tif (text == null) text = target;\n\t\t\t\treturn
{text}
\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n}","import * as Const from \"./const\";\n\nexport const tokenSet = token => {\n\tlocalStorage.setItem('token', token);\n}\n\nexport const tokenGet = () => {\n\treturn localStorage.getItem('token');\n}\n\nexport const tokenRemove = () => {\n\treturn localStorage.removeItem('token');\n}\n\nexport const post = async (endpoint, param) => {\n\tlet token = tokenGet();\n\n\tlet headers = {\n\t\t\"Content-Type\": \"application/json\"\n\t};\n\tif (token)\n\t\theaders.authorization = \"Bearer \" + token;\n\n\tlet response;\n\ttry {\n\t\tconst res = await fetch(Const.apiURL + endpoint, {\n\t\t\tmethod: 'POST',\n\t\t\tbody: JSON.stringify(param),\n\t\t\tcrossDomain: true,\n\t\t\theaders: headers,\n\t\t});\n\t\tresponse = await responseProcess(res);\n\t} catch (error) {\n\t\tresponse = { error: true, statusText: error };\n\t\tconsole.log(response.statusText);\n\t}\n\n\treturn response;\n}\n\nexport const get = async (endpoint, param) => {\n\tlet token = tokenGet();\n\n\tlet headers = {};\n\tif (token)\n\t\theaders.authorization = \"Bearer \" + token;\n\n\tlet query = \"\";\n\tfor (const key in param)\n\t\tif (param[key] != null) {\n\t\t\tif (Array.isArray(param[key])) {\n\t\t\t\tfor (var i = 0; i < param[key].length; i++) {\n\t\t\t\t\tquery += key + \"=\" + encodeURIComponent(param[key][i]) + \"&\";\n\t\t\t\t}\n\t\t\t} else\n\t\t\t\tquery += key + \"=\" + encodeURIComponent(param[key]) + \"&\";\n\t\t}\n\tif (query)\n\t\tendpoint += \"?\" + query.substring(0, query.length - 1);\n\n\tlet response;\n\ttry {\n\t\tconst res = await fetch(Const.apiURL + endpoint, {\n\t\t\tmethod: 'GET',\n\t\t\tcrossDomain: true,\n\t\t\theaders: headers,\n\t\t});\n\t\tresponse = await responseProcess(res);\n\t} catch (error) {\n\t\tresponse = { error: true, statusText: error };\n\t\tconsole.log(response.statusText);\n\t}\n\n\treturn response;\n}\n\nconst responseProcess = async response => {\n\tswitch (response.status) {\n\t\tcase 200: {\n\t\t\tif (response.headers.get(\"content-type\").indexOf(\"application/json\") !== -1) {\n\t\t\t\tconst responseJson = await response.json();\n\t\t\t\tswitch (responseJson.code) {\n\t\t\t\t\tcase Const.apiCode.success:\n\t\t\t\t\t\tresponseJson.success = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase Const.apiCode.validation:\n\t\t\t\t\t\tresponseJson.validation = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase Const.apiCode.error:\n\t\t\t\t\t\tresponseJson.error = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase Const.apiCode.processing:\n\t\t\t\t\t\tresponseJson.processing = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tresponseJson.success = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\treturn responseJson;\n\t\t\t} else\n\t\t\t\treturn response;\n\t\t}\n\t\tcase 401:\n\t\t\ttokenRemove();\n\t\t\tresponse.unauthorized = true;\n\t\t\tresponse.error = true;\n\t\t\twindow.location = \"/login\";\n\t\t\treturn response;\n\t\tdefault:\n\t\t\tresponse.error = true;\n\t\t\tconsole.log(response.statusText);\n\t\t\treturn response;\n\t}\n}","import { Subject } from \"rxjs\";\n\nimport * as Service from \"../../common/serviceHelper\";\n\nconst subject = new Subject();\nlet currentUser = null;\n\nexport const CurrentUserService = {\n\tcheckUser: async () => {\n\t\tvar token = Service.tokenGet();\n\n\t\tif (!token)\n\t\t\tcurrentUser = null;\n\t\telse {\n\t\t\tconst res = await Service.get(\"api/user/currentuser/check\");\n\t\t\tif (res.success && res.data != null)\n\t\t\t\tcurrentUser = res.data;\n\t\t\telse {\n\t\t\t\tcurrentUser = null;\n\t\t\t\tif (res.unauthorized)\n\t\t\t\t\twindow.location = \"/login\";\n\t\t\t}\n\t\t\t\n\t\t\tsubject.next(currentUser);\n\t\t}\n\n\t\treturn currentUser;\n\t},\n\tgetUser: () => currentUser,\n\tsetUser: user => {\n\t\tcurrentUser = user;\n\t\tsubject.next(currentUser);\n\t},\n\tgetObservable: () => subject.asObservable(),\n}","import * as Service from \"../../common/serviceHelper\";\n\nexport const LoginService = {\n\ttokenSet: (token) => Service.tokenSet(token),\n\tloginSubmit: async (param) => await Service.post(\"api/user/login/submit\", param),\n\tlogoutSubmit: async () => {\n\t\tawait Service.get(\"api/user/login/logout\");\n\t\tService.tokenRemove();\n\t},\n};\n\nexport const RegisterService = {\n\tinit: async () => await Service.get(\"api/user/register/init\"),\n\tsubmit: async (param) => await Service.post(\"api/user/register/submit\", param),\n};\n\nexport const RepositoryService = {\n\tuserCheck: async (async) => await Service.get(\"api/user/repository/userCheck\", async),\n};\n\nexport const UserManageService = {\n\tinit: async () => await Service.get(\"api/user/manage/init\"),\n\tgetList: async (param) => await Service.get(\"api/user/manage/getList\", param),\n\tban: async (param) => await Service.post(\"api/user/manage/ban\", param),\n};\n\nexport const UserTreeService = {\n\tinit: async () => await Service.get(\"api/user/tree/init\"),\n\tgetList: async (param) => await Service.get(\"api/user/tree/getList\", param),\n};\n\nexport const ProfileService = {\n\tinit: async () => await Service.get(\"api/user/profile/init\"),\n\tsubmit: async (param) => await Service.post(\"api/user/profile/submit\", param),\n\tshippingInfoInit: async () => await Service.get(\"api/user/profile/shippingInfoInit\"),\n\tshippingInfoSubmit: async (param) => await Service.post(\"api/user/profile/shippingInfoSubmit\", param),\n};\n\nexport const ForgetPasswordService = {\n\tsubmit: async (param) => await Service.post(\"api/user/forgetPassword/submit\", param),\n\tresetSubmit: async (param) => await Service.post(\"api/user/forgetPassword/resetSubmit\", param),\n};\n\nexport const LoginToUserService = {\n\tlogin: async (param) => await Service.get(\"api/user/loginToUser/login\", param),\n\tbackToLogin: async () => await Service.get(\"api/user/loginToUser/backToLogin\"),\n};\n\nexport const VerificationCodeService = {\n\tget: async (param) => await Service.get(\"api/authentication/verificationCode/get\", param),\n};\n\nexport const DashboardService = {\n\tinit: async () => await Service.get(\"api/user/dashboard/init\"),\n};\n\nexport const LocationService = {\n\twardGetList: async (param) => await Service.get(\"api/user/location/wardGetList\", param),\n};\n\nexport const MemberGroupService = {\n\tinit: async () => await Service.get(\"api/memberGroup/memberGroup/init\"),\n};\n\nexport const UserSponsorListService = {\n\tinit: async () => await Service.get(\"api/user/userSponsorList/init\"),\n\tgetList: async (param) => await Service.get(\"api/user/userSponsorList/getList\", param),\n};\n\nexport const ContactService = {\n\tsubmit: async (param) => await Service.post(\"api/user/contact/submit\", param),\n};\n\nexport const BankService = {\n\tinit: async () => await Service.get(\"api/user/bank/init\"),\n\tsubmit: async (param) => await Service.post(\"api/user/bank/submit\", param),\n}\n","import { Subject } from \"rxjs\";\nimport getSlug from \"speakingurl\";\n\nimport * as Service from \"../../common/serviceHelper\";\n\nfunction CategoryParseTreeLoop(categoryList, parentId) {\n\tlet childList = [];\n\tfor (var i = 0; i < categoryList.length; i++) {\n\t\tconst item = categoryList[i];\n\t\tif (item.parentId === parentId) {\n\t\t\tconst children = CategoryParseTreeLoop(categoryList, item.id);\n\t\t\tchildList.push({\n\t\t\t\ttitle: item.name,\n\t\t\t\tvalue: item.id,\n\t\t\t\tchildren,\n\t\t\t});\n\t\t}\n\t}\n\treturn childList;\n}\n\nexport const CategoryService = {\n\tparseTree: (categoryList) => {\n\t\tif (!categoryList) return null;\n\t\tcategoryList.sort((a, b) => a.orderNumber - b.orderNumber);\n\t\treturn CategoryParseTreeLoop(categoryList, 1);\n\t},\n\tsubmit: async (param) => await Service.post(\"api/product/categorypost/create\", param),\n};\n\nexport const SiderService = {\n\tcategoryGetList: async () => await Service.get(\"api/product/sider/categoryGetList\"),\n};\n\nexport const MenuService = {\n\tcategoryTree: async (param) => await Service.get(\"api/product/home/categoryTree\", param),\n};\n\nexport const ProductHomeService = {\n\tinit: async (param) => await Service.get(\"api/product/home/init\", param),\n\tcategoryTree: async (param) => await Service.get(\"api/product/home/CategoryTree\", param),\n\tfeaturedGetList: async (param) => await Service.get(\"api/product/home/featuredGetList\", param),\n\tproductCategoryHighlightGetList: async (param) => await Service.get(\"api/product/home/productCategoryHighlightGetList\", param),\n};\n\nexport const ProductDetailService = {\n\tinit: async (param) => await Service.get(\"api/product/detail/init\", param),\n\tcategoryGetList: async (param) => await Service.get(\"api/product/detail/categoryGetList\", param),\n};\n\nexport const ProductListService = {\n\tinit: async () => await Service.get(\"api/product/list/init\"),\n\tgetList: async (param) => await Service.get(\"api/product/list/getList\", param),\n\tcategoryGetList: async (param) => await Service.get(\"api/product/list/categoryGetList\", param),\n};\n\nexport const ProductManageService = {\n\tinit: async () => await Service.get(\"api/product/manage/init\"),\n\tgetList: async (param) => await Service.get(\"api/product/manage/getList\", param),\n};\n\nexport const ProductPostService = {\n\tinit: async (param) => await Service.get(\"api/product/post/init\", param),\n\tsubmit: async (param) => await Service.post(\"api/product/post/submit\", param),\n\tdelete: async (param) => await Service.post(\"api/product/post/delete\", param),\n};\n\nexport const SearchBoxService = {\n\tinit: async (param) => await Service.get(\"api/product/searchBox/init\", param),\n};\n\nconst cartSubject = new Subject();\nlet cartData = null;\nexport const CartService = {\n\tgetItemList: async () => {\n\t\tCartService.getCart();\n\n\t\tif (cartData.length == 0) return [];\n\n\t\tlet idList = [];\n\t\tcartData.forEach((item) => idList.push(item.id));\n\t\tconst res = await Service.get(\"api/product/cart/getItemList\", { idList: idList });\n\t\tif (res.success) {\n\t\t\tres.itemList.forEach((item) => {\n\t\t\t\tconst cartItem = cartData.find((m, index) => {\n\t\t\t\t\tm.orderNumber = index;\n\t\t\t\t\treturn m.id === item.id;\n\t\t\t\t});\n\t\t\t\titem.qty = cartItem.qty;\n\t\t\t\titem.orderNumber = cartItem.orderNumber;\n\t\t\t});\n\t\t\tres.itemList.sort((a, b) => a.orderNumber - b.orderNumber);\n\t\t\tCartService.setCart(res.itemList.map((item) => ({ id: item.id, qty: item.qty })));\n\t\t\treturn res;\n\t\t} else return [];\n\t},\n\tgetCart: () => {\n\t\tif (cartData == null) {\n\t\t\tlet cartString = localStorage.getItem(\"shoppingCart\");\n\t\t\tcartData = cartString ? JSON.parse(cartString) : [];\n\t\t}\n\n\t\treturn cartData;\n\t},\n\taddCart: async (item) => {\n\t\tCartService.getCart();\n\n\t\tconst itemCart = cartData.find((m) => m.id === item.id);\n\n\t\tconst qtyCheck = itemCart ? itemCart.qty + item.qty : item.qty;\n\t\tconst quantityCheckRes = await CartService.quantityCheck({ id: item.id, quantity: qtyCheck });\n\t\tif (quantityCheckRes.enough) {\n\t\t\tif (itemCart) itemCart.qty += item.qty;\n\t\t\telse cartData.push({ id: item.id, qty: item.qty });\n\n\t\t\tlocalStorage.setItem(\"shoppingCart\", JSON.stringify(cartData));\n\t\t\tcartSubject.next(cartData);\n\t\t}\n\t\treturn quantityCheckRes;\n\t},\n\tsetCart: (cart) => {\n\t\tcartData = cart;\n\n\t\tlocalStorage.setItem(\"shoppingCart\", JSON.stringify(cartData));\n\n\t\tcartSubject.next(cartData);\n\t},\n\tdeleteCart: (id) => {\n\t\tCartService.getCart();\n\t\tcartData = cartData.filter((item) => item.id !== id);\n\t\tlocalStorage.setItem(\"shoppingCart\", JSON.stringify(cartData));\n\t\tcartSubject.next(cartData);\n\t},\n\tclearCart: () => CartService.setCart([]),\n\tgetObservable: () => cartSubject.asObservable(),\n\tquantityCheck: async (param) => await Service.get(\"api/product/cart/QuantityCheck\", param),\n};\n\nexport const CheckoutService = {\n\tinit: async () => await Service.get(\"api/product/checkout/init\"),\n\tsubmit: async (param) => await Service.post(\"api/product/checkout/submit\", param),\n};\n\nexport const OrdersManageService = {\n\tinit: async () => await Service.get(\"api/product/ordersManage/init\"),\n\tgetList: async (param) => await Service.get(\"api/product/ordersManage/getList\", param),\n\tgetDetail: async (param) => await Service.get(\"api/product/ordersManage/getDetail\", param),\n\tupdate: async (param) => await Service.post(\"api/product/ordersManage/update\", param),\n\tcancel: async (param) => await Service.post(\"api/product/ordersManage/cancel\", param),\n};\n\nexport const ProductBrandManageServices = {\n\tgetList: async (param) => await Service.get(\"api/product/brandManage/getList\", param),\n};\n\nexport const ProductBrandPostServices = {\n\tinit: async (param) => await Service.get(\"api/product/brandPost/init\", param),\n\tsubmit: async (param) => await Service.post(\"api/product/brandPost/submit\", param),\n\tdelete: async (param) => await Service.post(\"api/product/brandPost/delete\", param),\n};\n\nexport const ProductColorManageServices = {\n\tgetList: async (param) => await Service.get(\"api/product/colorManage/getList\", param),\n};\n\nexport const ProductColorPostServices = {\n\tinit: async (param) => await Service.get(\"api/product/colorPost/init\", param),\n\tsubmit: async (param) => await Service.post(\"api/product/colorPost/submit\", param),\n\tdelete: async (param) => await Service.post(\"api/product/colorPost/delete\", param),\n};\n\nexport const ProductCategoryManageService = {\n\tgetList: async (param) => await Service.get(\"api/product/categoryManage/getList\", param),\n};\n\nexport const ProductCategoryPostService = {\n\tinit: async (param) => await Service.get(\"api/product/categoryPost/Init\", param),\n\tgetOrderList: async (param) => await Service.get(\"api/product/categoryPost/GetOrderList\", param),\n\tsubmit: async (param) => await Service.post(\"api/product/categoryPost/submit\", param),\n\tdelete: async (param) => await Service.post(\"api/product/categoryPost/delete\", param),\n};\n\nexport const ProductURL = {\n\tproductListURL: (query, option) => {\n\t\tif (option.keyword != null) query.keyword = option.keyword;\n\t\tif (option.name != null) query.name = option.name;\n\t\tif (option.categoryName != null) query.categoryName = option.categoryName;\n\t\tif (option.brandName != null) query.brandName = option.brandName;\n\t\tif (option.colorName != null) query.colorName = option.colorName;\n\n\t\tif (option.categoryId != null) query.categoryId = option.categoryId;\n\t\tif (option.brandId != null) query.brandId = option.brandId;\n\t\tif (option.colorId != null) query.colorId = option.colorId;\n\t\tif (option.waist != null) query.waist = option.waist;\n\t\tif (option.hipLine != null) query.hipLine = option.hipLine;\n\t\tif (option.thigh != null) query.thigh = option.thigh;\n\t\tif (option.leg != null) query.leg = option.leg;\n\t\tif (option.pipe != null) query.pipe = option.pipe;\n\t\tif (option.pageIndex != null) query.pageIndex = option.pageIndex;\n\t\tif (option.orderBy != null) query.orderBy = option.orderBy;\n\n\t\tlet text = \"\";\n\t\tif (query.categoryName) text += (text ? \"-\" : \"\") + query.categoryName;\n\t\tif (query.brandName) text += (text ? \"-\" : \"\") + query.brandName;\n\t\tif (query.colorName) text += (text ? \"-\" : \"\") + query.colorName;\n\t\tif (query.waist && query.waist > 0) text += (text ? \"-\" : \"\") + query.waist;\n\t\tif (query.hipLine && query.hipLine > 0) text += (text ? \"-\" : \"\") + query.hipLine;\n\t\tif (query.thigh && query.thigh > 0) text += (text ? \"-\" : \"\") + query.thigh;\n\t\tif (query.leg && query.leg > 0) text += (text ? \"-\" : \"\") + query.leg;\n\t\tif (query.pipe && query.pipe > 0) text += (text ? \"-\" : \"\") + query.pipe;\n\t\tif (query.name) text += (text ? \"-\" : \"\") + query.name;\n\n\t\tif (text == \"\") text = \"tat-ca\";\n\t\tlet url = \"/san-pham/\" + getSlug(text);\n\n\t\turl += query.categoryId ? \"/\" + query.categoryId : \"/0\";\n\t\turl += query.brandId ? \"/\" + query.brandId : \"/0\";\n\t\turl += query.colorId ? \"/\" + query.colorId : \"/0\";\n\t\turl += query.waist ? \"/\" + query.waist : \"/0\";\n\t\turl += query.hipLine ? \"/\" + query.hipLine : \"/0\";\n\t\turl += query.thigh ? \"/\" + query.thigh : \"/0\";\n\t\turl += query.leg ? \"/\" + query.leg : \"/0\";\n\t\turl += query.pipe ? \"/\" + query.pipe : \"/0\";\n\t\turl += query.pageIndex ? \"/\" + query.pageIndex : \"/1\";\n\t\turl += query.orderBy ? \"/\" + query.orderBy : \"/latest\";\n\t\turl += query.keyword ? \"/\" + encodeURIComponent(query.keyword) : \"/\";\n\n\t\treturn url;\n\t},\n\tproductDetailURL: (query, option) => {\n\t\tif (option.name != null) query.name = option.name;\n\t\tif (option.id != null) query.id = option.id;\n\n\t\tlet text = \"\";\n\t\tif (query.name) text += (text ? \"\" : \"\") + query.name;\n\n\t\tlet url = \"/chi-tiet-san-pham/\" + getSlug(text);\n\n\t\turl += query.id ? \"/\" + query.id : \"/0\";\n\n\t\treturn url;\n\t},\n};\n","import React, { Component } from \"react\";\nimport Media from \"react-media\";\nimport { Subject } from \"rxjs\";\n\nimport * as Const from \"./const\";\n\nconst subject = new Subject();\nexport const siderService = {\n\tvisible: (isVisible) => subject.next({ isVisible: isVisible }),\n\tgetObservable: () => subject.asObservable(),\n};\n\nexport default class SiderBase extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = { isVisible: false };\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.siderSubscription = siderService.getObservable().subscribe((option) => {\n\t\t\tif (!option || option.isVisible == null) option = { isVisible: !this.state.isVisible };\n\n\t\t\tlet isSiderChange = false;\n\t\t\tlet siderState = {};\n\n\t\t\tif (option.isVisible !== this.state.isVisible) {\n\t\t\t\tsiderState.isVisible = option.isVisible;\n\t\t\t\tisSiderChange = true;\n\t\t\t}\n\n\t\t\tif (isSiderChange) this.setState(siderState);\n\t\t});\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.siderSubscription.unsubscribe();\n\t}\n\n\tvisible = (isVisible) => {\n\t\tif (isVisible == null) this.setState({ isVisible: !this.state.isVisible });\n\t\telse if (isVisible !== this.state.isVisible) this.setState({ isVisible: isVisible });\n\t};\n\n\tsider = (visible) => {\n\t\tconst { colapse } = this.props;\n\t\tconst visibleMedia = Const.media.smallQuery;\n\t\tif (colapse) return } />;\n\t\telse return ;\n\t};\n\n\tbackdrop = (visible) => {\n\t\treturn (\n\t\t\t {\n\t\t\t\t\tthis.setState({ isVisible: false });\n\t\t\t\t}}\n\t\t\t\tclassName={\"backdrop \" + visible}\n\t\t\t>\n\t\t);\n\t};\n\n\trender() {\n\t\tconst visible = this.state.isVisible === true ? \"visible\" : \"\";\n\t\tif (visible) document.body.classList.add(\"sider-visible\");\n\t\telse document.body.classList.remove(\"sider-visible\");\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{this.sider(visible)}\n\t\t\t\t{this.backdrop(visible)}\n\t\t\t\n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Menu, Button } from \"antd\";\n\nimport * as Const from \"../../common/const\";\n\nimport { Popup } from \"../../common/component\";\n\nimport { CurrentUserService } from \"../user/currentUserService\";\nimport { LoginService, LoginToUserService } from \"../user/userService\";\n\nimport { siderService } from \"../../common/siderBase\";\n\nexport default class Sider extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tuserCurrent: CurrentUserService.getUser(),\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.userCurrentSubscription = CurrentUserService.getObservable().subscribe((user) => {\n\t\t\tthis.setState({ userCurrent: user });\n\t\t});\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.userCurrentSubscription.unsubscribe();\n\t}\n\n\tonLogout = () => {\n\t\tLoginService.logoutSubmit();\n\t\twindow.location = \"/\";\n\t};\n\n\tonBackToLogin = async () => {\n\t\tPopup.spin.show();\n\t\tconst res = await LoginToUserService.backToLogin();\n\t\tPopup.spin.hide();\n\n\t\tif (res.success) {\n\t\t\tLoginService.tokenSet(res.data);\n\t\t\twindow.location = \"/office\";\n\t\t} else {\n\t\t\tLoginService.logoutSubmit();\n\t\t\twindow.location = \"/\";\n\t\t}\n\t};\n\n\tonFunctionUpdate = (e) => {\n\t\te.preventDefault();\n\n\t\tPopup.info({\n\t\t\ttitle: \"Tính năng đang tạm khoá\",\n\t\t});\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t siderService.visible()}\n\t\t\t\t>\n\t\t\t\t\t{this.state.userCurrent && this.state.userCurrent.loginUserName && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\t{this.state.userCurrent &&\n\t\t\t\t\t\t(this.state.userCurrent.isAdmin || this.state.userCurrent.isProductManager || this.state.userCurrent.isContentManager) && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tQuản lý\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{this.state.userCurrent.isAdmin && [\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tNội dung web\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t,\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tDanh mục nội dung\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t,\n\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t{this.state.userCurrent.isContentManager && [\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tNội dung web\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t,\n\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t{(this.state.userCurrent.isAdmin || this.state.userCurrent.isProductManager) && [\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tSản phẩm\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t,\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tDanh mục sản phẩm\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t,\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tThương hiệu\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t,\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tMàu sắc\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t,\n\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\t\t\t\tThống kê\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tLịch sử hoạt động\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tĐơn đặt hàng\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tDanh sách khách hàng\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\tTài khoản\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tThông tin thành viên\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tĐăng xuất\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Affix, Dropdown, Menu, Row, Col } from \"antd\";\n\nimport * as Const from \"../../common/const\";\nimport { Format } from \"../../common/format\";\n\nimport { CurrentUserService } from \"../user/currentUserService\";\nimport { LoginService } from \"../user/userService\";\nimport { CartService } from \"../product/productService\";\n\nimport SiderBase, { siderService } from \"../../common/siderBase\";\nimport Sider from \"./sider\";\n\nexport default class Header extends Component {\n\tstate = {\n\t\tuserCurrent: CurrentUserService.getUser(),\n\t};\n\n\tcomponentDidMount() {\n\t\tthis.userCurrentSubscription = CurrentUserService.getObservable().subscribe((user) => {\n\t\t\tthis.setState({ userCurrent: user });\n\t\t});\n\n\t\tthis.cartSubscription = CartService.getObservable().subscribe((cart) => {\n\t\t\tlet cartQty = 0;\n\t\t\tcart.forEach((item) => (cartQty += item.qty));\n\t\t\tthis.setState({ cart: cart, cartQty });\n\t\t});\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.userCurrentSubscription.unsubscribe();\n\t\tthis.cartSubscription.unsubscribe();\n\t}\n\n\tlogoutHandle = () => {\n\t\tLoginService.logoutSubmit();\n\t\twindow.location = \"/\";\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t siderService.visible()}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{this.state.userCurrent ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
{this.state.userCurrent.userName}
\n\t\t\t\t\t\t\t\t\t\t\t\t
{this.state.userCurrent.fullName}
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tThông tin thành viên\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tĐăng xuất\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t e.preventDefault()}>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tLogin\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t}\n}\n","import * as Service from \"../../common/serviceHelper\";\nimport getSlug from \"speakingurl\";\n\nfunction CategoryParseTreeLoop(categoryList, parentId) {\n\tlet childList = [];\n\tfor (var i = 0; i < categoryList.length; i++) {\n\t\tconst item = categoryList[i];\n\t\tif (item.parentId === parentId) {\n\t\t\tconst children = CategoryParseTreeLoop(categoryList, item.id);\n\t\t\tchildList.push({\n\t\t\t\ttitle: item.name,\n\t\t\t\tvalue: item.id,\n\t\t\t\tchildren,\n\t\t\t});\n\t\t}\n\t}\n\treturn childList;\n}\n\nexport const CategoryService = {\n\tparseTree: (categoryList) => {\n\t\tcategoryList.sort((a, b) => a.orderNumber - b.orderNumber);\n\t\treturn CategoryParseTreeLoop(categoryList, 1);\n\t},\n};\n\nexport const ContentDetailService = {\n\tinit: async (param) => await Service.get(\"api/content/detail/init\", param),\n};\n\nexport const ContentManageService = {\n\tinit: async () => await Service.get(\"api/content/manage/init\"),\n\tgetList: async (param) => await Service.get(\"api/content/manage/getList\", param),\n};\n\nexport const ContentPostService = {\n\tinit: async (param) => await Service.get(\"api/content/post/init\", param),\n\tsubmit: async (param) => await Service.post(\"api/content/post/submit\", param),\n\tdelete: async (param) => await Service.post(\"api/content/post/delete\", param),\n};\n\nexport const ContentCategoryManageService = {\n\tgetList: async (param) => await Service.get(\"api/content/categoryManage/getList\", param),\n};\n\nexport const ContentCategoryPostService = {\n\tinit: async (param) => await Service.get(\"api/content/categoryPost/Init\", param),\n\tgetOrderList: async (param) => await Service.get(\"api/content/categoryPost/GetOrderList\", param),\n\tsubmit: async (param) => await Service.post(\"api/content/categoryPost/submit\", param),\n\tdelete: async (param) => await Service.post(\"api/content/categoryPost/delete\", param),\n};\n\nexport const MenuService = {\n\tcategoryGetList: async (param) => await Service.get(\"api/content/home/categoryGetList\", param),\n};\n\nexport const ContentListService = {\n\tgetList: async (param) => await Service.get(\"api/content/list/getList\", param),\n\tcategoryGetList: async (param) => await Service.get(\"api/content/list/categoryGetList\", param),\n};\n\nexport const HomeContentService = {\n\tcategoryGetList: async (param) => await Service.get(\"api/content/home/categoryGetList\", param),\n\tgetList: async (param) => await Service.get(\"api/content/home/itemGetList\", param),\n};\n\nexport const ContentURL = {\n\tcontentListURL: (query, option) => {\n\t\tif (option.categoryName != null) query.categoryName = option.categoryName;\n\t\tif (option.categoryId != null) query.categoryId = option.categoryId;\n\t\tif (option.pageIndex != null) query.pageIndex = option.pageIndex;\n\t\tif (option.orderBy != null) query.orderBy = option.orderBy;\n\n\t\tlet text = \"\";\n\t\tif (query.categoryName) text += (text ? \"-\" : \"\") + query.categoryName;\n\n\t\tlet url = \"/bai-viet/\" + getSlug(text);\n\n\t\turl += query.categoryId ? \"/\" + query.categoryId : \"/0\";\n\t\turl += query.pageIndex ? \"/\" + query.pageIndex : \"/1\";\n\t\turl += query.orderBy ? \"/\" + query.orderBy : \"/\";\n\n\t\treturn url;\n\t},\n\n\tcontentDetailURL: (query, option) => {\n\t\tif (option.name != null) query.name = option.name;\n\t\tif (option.id != null) query.id = option.id;\n\n\t\tlet text = \"\";\n\t\tif (query.name) text += (text ? \"\" : \"\") + query.name;\n\n\t\tlet url = \"/chi-tiet-bai-viet/\" + getSlug(text);\n\n\t\turl += query.id ? \"/\" + query.id : \"/0\";\n\n\t\treturn url;\n\t},\n};\n","import * as Const from \"../../common/const\";\n\nexport const FileService = {\n\tuploadApi: Const.apiURL + \"api/file/upload\",\n\timageURL: (id, size, square) => {\n\t\tif (square)\n\t\t\treturn Const.apiURL + \"api/image/square/\" + id + \"/\" + size;\n\t\telse\n\t\t\treturn Const.apiURL + \"api/image/\" + id + \"/\" + size;\n\t}\n}","import React, { Component } from \"react\";\nimport { Editor as TinyEditor } from \"@tinymce/tinymce-react\";\n\nexport default class Editor extends Component {\n\trender() {\n\t\treturn (\n\t\t\t {\n\t\t\t\t\t\tthis.props.filePicker(callback);\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\tonEditorChange={(value) => this.props.onChange(value)}\n\t\t\t/>\n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport { message, Button, Upload as AntdUpload } from \"antd\";\n\nimport { Popup } from \"../../common/component\";\nimport { Locale } from \"../../common/locale\";\n\nimport * as Service from \"../../common/serviceHelper\";\n\nimport { FileService } from \"./fileService\";\n\nexport default class Upload extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.thisElement = React.createRef();\n\n\t\tlet isFilePicker = null;\n\t\tif (this.props.filePicker != null) {\n\t\t\tisFilePicker = false;\n\n\t\t\tthis.props.filePicker(this.onFilePickerShow);\n\t\t}\n\n\t\tlet multiple = this.props.multiple === true;\n\t\tif (this.props.type === \"avatar\") multiple = false;\n\n\t\tthis.state = {\n\t\t\tfileList: this.props.value ? this.props.value : [],\n\t\t\tisFilePicker: isFilePicker,\n\t\t\ttype: this.props.type,\n\t\t\tmultiple: multiple,\n\t\t\treadonly: this.props.readonly === true,\n\t\t};\n\t}\n\n\tuploadHeader = () => ({ authorization: \"Bearer \" + Service.tokenGet() });\n\n\tcomponentDidMount() {\n\t\tif (this.props.filePicker != null) document.body.appendChild(this.thisElement.current);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif (this.props.filePicker != null) document.body.removeChild(this.thisElement.current);\n\t}\n\n\tonFilePickerShow = (callback) => {\n\t\tthis.setState({ isFilePicker: true, filePickerCallback: callback });\n\t};\n\n\tonItemClick = (item) => {\n\t\tconst url = FileService.imageURL(item.id, 1024);\n\t\tif (this.state.isFilePicker != null) {\n\t\t\tthis.state.filePickerCallback(url);\n\n\t\t\tthis.setState({ isFilePicker: false });\n\t\t}\n\t};\n\n\tonChange = (info) => {\n\t\tif (info.file.status === \"done\") {\n\t\t\tif (info.file.response.msgs.length > 0) message.error(info.file.response.msgs[0].text);\n\t\t\telse {\n\t\t\t\tlet fileList = this.state.fileList;\n\t\t\t\tconst file = {\n\t\t\t\t\tid: info.file.response.data.fileList[0].id,\n\t\t\t\t};\n\t\t\t\tif (this.state.multiple) fileList.push(file);\n\t\t\t\telse fileList = [file];\n\n\t\t\t\tthis.props.onChange(fileList);\n\n\t\t\t\tthis.setState({ fileList });\n\t\t\t}\n\t\t}\n\t};\n\n\tonMove = (index, step) => {\n\t\tconst from = index;\n\t\tconst to = index + step;\n\t\tif (to < 0) return;\n\n\t\tlet fileList = this.state.fileList;\n\t\tfileList.splice(to, 0, fileList.splice(from, 1)[0]);\n\n\t\tthis.props.onChange(fileList);\n\n\t\tthis.setState({ fileList });\n\t};\n\n\tonDelete = (index, item) => {\n\t\tPopup.confirm({\n\t\t\ttitle: Locale.getText(\"common.delete_confirm\"),\n\t\t\tonOk: () => {\n\t\t\t\tlet fileList = this.state.fileList;\n\t\t\t\tfileList.splice(index, 1);\n\n\t\t\t\tthis.props.onChange(fileList);\n\n\t\t\t\tthis.setState({ fileList });\n\t\t\t},\n\t\t});\n\t};\n\n\tonDeleteAll = () => {\n\t\tPopup.confirm({\n\t\t\ttitle: Locale.getText(\"common.delete_confirm\"),\n\t\t\tonOk: () => {\n\t\t\t\tlet fileList = [];\n\n\t\t\t\tthis.props.onChange(fileList);\n\n\t\t\t\tthis.setState({ fileList });\n\t\t\t},\n\t\t});\n\t};\n\n\tonView = (item) => {};\n\n\tstatic getDerivedStateFromProps(props, state) {\n\t\tlet newState = {};\n\t\tlet hasChange = false;\n\n\t\tif (props.value !== state.fileList) {\n\t\t\tnewState.fileList = props.value ? props.value : [];\n\t\t\thasChange = true;\n\t\t}\n\n\t\tif (props.readonly !== state.readonly) {\n\t\t\tnewState.readonly = props.readonly;\n\t\t\thasChange = true;\n\t\t}\n\n\t\tif (hasChange) return newState;\n\t\telse return null;\n\t}\n\n\trender() {\n\t\tlet rootClassName = \"upload-component\";\n\t\tif (this.state.isFilePicker != null) {\n\t\t\trootClassName += \" filepicker\";\n\n\t\t\tif (this.state.isFilePicker) rootClassName += \" show\";\n\t\t}\n\n\t\tif (this.state.type === \"avatar\") rootClassName += \" avatar\";\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{this.state.fileList.map((item, index) => (\n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t this.onItemClick(item)}\n\t\t\t\t\t\t\t\t\t\tclassName=\"image\"\n\t\t\t\t\t\t\t\t\t\tstyle={{ backgroundImage: \"url(\" + FileService.imageURL(item.id, 256) + \")\" }}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{this.state.multiple && !this.state.readonly && (\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t{this.state.type === \"avatar\" && this.state.fileList.length === 0 && (\n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{!this.state.readonly && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{!this.state.multiple && this.state.fileList.length > 0 && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport { Row, Col, Input, Button, TreeSelect, Switch, DatePicker } from \"antd\";\nimport moment from \"moment\";\n\nimport { Locale } from \"../../common/locale\";\nimport { Popup, Msg } from \"../../common/component\";\nimport Editor from \"../../common/editor\";\nimport Upload from \"../file/upload\";\n\nimport { CategoryService, ContentPostService } from \"./contentService\";\n\nexport default class ContentPost extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\ttitle: (this.props.id ? \"Sửa\" : \"Thêm\") + \" nội dung\",\n\t\t\tcategoryList: [],\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tPopup.spin.show();\n\t\tContentPostService.init({ id: this.props.id }).then((res) => {\n\t\t\tif (res) {\n\t\t\t\tconst item = res.item ? res.item : {};\n\n\t\t\t\tthis.setState({\n\t\t\t\t\tcategoryList: CategoryService.parseTree(res.categoryList),\n\t\t\t\t\tid: item.id,\n\t\t\t\t\tcategoryId: item.categoryId ? item.categoryId : this.props.categoryId,\n\t\t\t\t\tname: item.name,\n\t\t\t\t\tsummary: item.summary,\n\t\t\t\t\tlink: item.link,\n\t\t\t\t\tisHidden: item.isHidden,\n\t\t\t\t\tdateCreated: item.dateCreated,\n\t\t\t\t\tdescription: item.description,\n\t\t\t\t\tfileList: item.fileList,\n\t\t\t\t\tdescriptionFileList: item.descriptionFileList,\n\t\t\t\t});\n\t\t\t}\n\t\t\tPopup.spin.hide();\n\t\t});\n\t}\n\n\tonSubmit = async () => {\n\t\tPopup.spin.show();\n\t\tconst res = await ContentPostService.submit({\n\t\t\tid: this.state.id,\n\t\t\tcategoryId: this.state.categoryId,\n\t\t\tname: this.state.name,\n\t\t\tsummary: this.state.summary,\n\t\t\tisHidden: this.state.isHidden,\n\t\t\tdateCreated: this.state.dateCreated,\n\t\t\tdescription: this.state.description,\n\t\t\tlink: this.state.link,\n\t\t\tfileList: this.state.fileList,\n\t\t\tdescriptionFileList: this.state.descriptionFileList,\n\t\t});\n\t\tPopup.spin.hide();\n\t\tif (res.success) {\n\t\t\tPopup.info({ autoClose: true });\n\t\t\tthis.props.onOk();\n\t\t}\n\t\tthis.setState({ msgs: res.msgs });\n\t};\n\n\tonCancel = () => {\n\t\tthis.props.onCancel();\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t

{this.state.title}

\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ name: value })} />\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ categoryId: value })}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ isHidden: value })} />\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ dateCreated: value ? value.format() : null })}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ link: value })} />\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ summary: value })}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ fileList: value })} />\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ descriptionFileList: value })}\n\t\t\t\t\t\t\t\tfilePicker={(value) => this.setState({ filePicker: value })}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t this.setState({ description: value })} filePicker={this.state.filePicker} />\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport { Row, Col, Input, Select, Button, DatePicker, TreeSelect, Pagination, Menu, Dropdown, Drawer, Switch } from \"antd\";\n\nimport { Locale } from \"../../common/locale\";\nimport { Format } from \"../../common/format\";\nimport { Popup } from \"../../common/component\";\n\nimport { CategoryService, ContentManageService, ContentPostService } from \"./contentService\";\nimport { FileService } from \"../file/fileService\";\n\nimport ContentPost from \"./contentPost\";\n\nexport default class ContentManage extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tisItemDrawer: false,\n\t\t\tcategoryList: [],\n\t\t\titemList: [],\n\t\t\tpageIndex: 1,\n\t\t\tpageSize: 20,\n\t\t\ttotalPages: 0,\n\t\t\ttotalItems: 0,\n\t\t\tkeyword: null,\n\t\t\tdateFrom: null,\n\t\t\tdateTo: null,\n\t\t\tcategoryId: null,\n\t\t\torderBy: \"latest\",\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tContentManageService.init().then((res) => {\n\t\t\tif (res.success) this.setState({ categoryList: CategoryService.parseTree(res.categoryList) });\n\t\t});\n\n\t\tthis.getList();\n\t}\n\n\tgetList = () => {\n\t\tPopup.spin.show();\n\t\tContentManageService.getList({\n\t\t\tkeyword: this.state.keyword,\n\t\t\tcategoryId: this.state.categoryId,\n\t\t\tisHidden: this.state.isHidden,\n\t\t\tdateFrom: this.state.dateFrom,\n\t\t\tdateTo: this.state.dateTo,\n\t\t\torderBy: this.state.orderBy,\n\t\t\tpageIndex: this.state.pageIndex,\n\t\t}).then((res) => {\n\t\t\tif (res.success)\n\t\t\t\tthis.setState({\n\t\t\t\t\titemList: res.itemList,\n\t\t\t\t\tpageIndex: res.pageIndex,\n\t\t\t\t\ttotalPages: res.totalPages,\n\t\t\t\t\ttotalItems: res.totalItems,\n\t\t\t\t});\n\t\t\tPopup.spin.hide();\n\t\t});\n\t};\n\n\tdeleteItem = (item) => {\n\t\tPopup.spin.show();\n\t\tContentPostService.delete(item.id).then((res) => {\n\t\t\tPopup.spin.hide();\n\n\t\t\tthis.getList();\n\t\t});\n\t};\n\n\tonItemCancel = () => {\n\t\tthis.setState({\n\t\t\tisItemDrawer: false,\n\t\t});\n\t};\n\n\tonItemOk = () => {\n\t\tthis.getList();\n\n\t\tthis.setState({\n\t\t\tisItemDrawer: false,\n\t\t});\n\t};\n\n\tonAddItem = () => {\n\t\tthis.setState({\n\t\t\titemId: null,\n\t\t\tisItemDrawer: true,\n\t\t});\n\t};\n\n\tonEditItem = (item) => {\n\t\tthis.setState({\n\t\t\titemId: item.id,\n\t\t\tisItemDrawer: true,\n\t\t});\n\t};\n\n\tonDeleteItem = (item) => {\n\t\tPopup.confirm({\n\t\t\ttitle: Locale.getText(\"common.delete_confirm\"),\n\t\t\tcontent: item.name,\n\t\t\tonOk: () => this.deleteItem(item),\n\t\t});\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t

Quản lý nội dung

\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ keyword: value })}\n\t\t\t\t\t\t\tonSearch={() => this.getList()}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ dateFrom: value ? value.format(\"YYYY-MM-DD\") : null }, () => this.getList())}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ dateTo: value ? value.format(\"YYYY-MM-DD\") : null }, () => this.getList())}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ categoryId: value }, () => this.getList())}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ isHidden: value }, () => this.getList())} /> Ẩn đi\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{this.state.totalItems} Kết quả\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ orderBy: value }, () => this.getList())}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tMới nhất\n\t\t\t\t\t\t\tCũ nhất\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ pageIndex: value }, () => this.getList())}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
  1. #
  2. \n\t\t\t\t\t\t\t
  3. Hình ảnh
  4. \n\t\t\t\t\t\t\t
  5. Tên
  6. \n\t\t\t\t\t\t\t
  7. Danh mục
  8. \n\t\t\t\t\t\t\t
  9. Ngày đăng
  10. \n\t\t\t\t\t\t\t
  11. \n\t\t\t\t\t\t
\n\t\t\t\t\t\t{this.state.itemList.map((item) => (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
  • {item.id}
  • \n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t this.onEditItem(item)}>{item.name}\n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t
  • {item.categoryName}
  • \n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t{item.dateCreated && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t{Format.date(new Date(item.dateCreated))}\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{Format.time(new Date(item.dateCreated))}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t this.onEditItem(item)}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tSửa\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t this.onDeleteItem(item)}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tXoá\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t e.preventDefault()}>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t))}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ pageIndex: value }, () => this.getList())}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n","export const parseTree = (categoryList, parentId = 1) => {\r\n\tif (!categoryList) return null;\r\n\tcategoryList.sort((a, b) => a.orderNumber - b.orderNumber);\r\n\treturn CategoryParseTreeLoop(categoryList, parentId);\r\n};\r\n\r\nconst CategoryParseTreeLoop = (categoryList, parentId) => {\r\n\tlet childList = [];\r\n\tfor (var i = 0; i < categoryList.length; i++) {\r\n\t\tconst item = categoryList[i];\r\n\t\tif (item.parentId === parentId) {\r\n\t\t\tconst children = CategoryParseTreeLoop(categoryList, item.id);\r\n\t\t\tchildList.push({\r\n\t\t\t\tkey: item.id,\r\n\t\t\t\ttitle: item.name,\r\n\t\t\t\tvalue: item.id,\r\n\t\t\t\torderNumber: item.orderNumber,\r\n\t\t\t\tparentId: item.parentId,\r\n\t\t\t\tchildren,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\treturn childList;\r\n};\r\n","import React, { Component } from \"react\";\r\nimport { Tree } from \"antd\";\r\n\r\nexport class TreeView extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tconst { treeData } = this.props;\r\n\r\n\t\tthis.state = {\r\n\t\t\tkeyword: \"\",\r\n\t\t\texpandedKeys: [],\r\n\t\t\tautoExpandParent: true,\r\n\t\t\ttreeRendered: null,\r\n\t\t\tdataList: [],\r\n\t\t};\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tconst { treeData } = this.props;\r\n\t\tthis.init(treeData);\r\n\t}\r\n\r\n\tshouldComponentUpdate(nextProps) {\r\n\t\tconst { searchText, treeData } = nextProps;\r\n\t\tconst { dataList } = this.state;\r\n\r\n\t\tif (this.props.searchText !== searchText) {\r\n\t\t\tconst expandedKeys = dataList\r\n\t\t\t\t.map((item) => {\r\n\t\t\t\t\tif (item.title.indexOf(searchText.toLowerCase()) > -1) {\r\n\t\t\t\t\t\treturn this.getParentKey(item.key, this.props.treeData);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t})\r\n\t\t\t\t.filter((item, i, self) => item && self.indexOf(item) === i);\r\n\t\t\tthis.setState({\r\n\t\t\t\texpandedKeys,\r\n\t\t\t\tkeyword: searchText,\r\n\t\t\t\tautoExpandParent: true,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.props.treeData !== treeData) {\r\n\t\t\tthis.init(treeData);\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\tinit = (treeData) => {\r\n\t\tconst treeRendered = treeData;\r\n\t\tlet dataList = [];\r\n\t\tdataList = this.generateList(treeData, dataList);\r\n\t\tthis.setState({\r\n\t\t\ttreeRendered: treeRendered,\r\n\t\t\tdataList: dataList,\r\n\t\t});\r\n\t};\r\n\r\n\tloopFindKeywordAndFillColor = (data, keyword = \"\") => {\r\n\t\tvar treeRender = data.map((item) => {\r\n\t\t\tconst index = item.title.indexOf(keyword);\r\n\t\t\tconst beforeStr = item.title.substr(0, index);\r\n\t\t\tconst afterStr = item.title.substr(index + keyword.length);\r\n\t\t\tconst title =\r\n\t\t\t\tindex > -1 ? (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{beforeStr}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{keyword}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{afterStr}\r\n\t\t\t\t\t\r\n\t\t\t\t) : (\r\n\t\t\t\t\t{item.title}\r\n\t\t\t\t);\r\n\t\t\tif (item.children) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\ttitle,\r\n\t\t\t\t\tkey: item.key,\r\n\t\t\t\t\tvalue: item.value,\r\n\t\t\t\t\tchildren: this.loopFindKeyword(item.children, keyword),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\ttitle,\r\n\t\t\t\tkey: item.key,\r\n\t\t\t\tvalue: item.value,\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\treturn treeRender;\r\n\t};\r\n\r\n\tgenerateList = (data, dataList) => {\r\n\t\tfor (let i = 0; i < data.length; i++) {\r\n\t\t\tconst node = data[i];\r\n\t\t\tconst { key, title } = node;\r\n\t\t\tdataList.push({ key, title: title.toLowerCase() });\r\n\t\t\tif (node.children) {\r\n\t\t\t\tthis.generateList(node.children, dataList);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn dataList;\r\n\t};\r\n\r\n\tgetParentKey = (key, tree) => {\r\n\t\tlet parentKey;\r\n\t\tfor (let i = 0; i < tree.length; i++) {\r\n\t\t\tconst node = tree[i];\r\n\t\t\tif (node.children) {\r\n\t\t\t\tif (node.children.some((item) => item.key === key)) {\r\n\t\t\t\t\tparentKey = node.key;\r\n\t\t\t\t} else if (this.getParentKey(key, node.children)) {\r\n\t\t\t\t\tparentKey = this.getParentKey(key, node.children);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn parentKey;\r\n\t};\r\n\r\n\tonExpand = (expandedKeys) => {\r\n\t\tthis.setState({\r\n\t\t\texpandedKeys,\r\n\t\t\tautoExpandParent: false,\r\n\t\t});\r\n\t};\r\n\r\n\trender() {\r\n\t\tconst { ...attrs } = this.props;\r\n\t\tconst { treeRendered } = this.state;\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { Row, Col, Input, Button, TreeSelect, Select } from \"antd\";\r\n\r\nimport { Popup, Msg } from \"../../common/component\";\r\nimport * as TreeHelper from \"../../common/tree\";\r\nimport Editor from \"../../common/editor\";\r\nimport Upload from \"../file/upload\";\r\n\r\nimport { ContentCategoryPostService } from \"./contentService\";\r\n\r\nexport default class CategoryPost extends Component {\r\n\tstate = {\r\n\t\tisAdd: !this.props.itemId,\r\n\t\tparentList: [],\r\n\t\tid: this.props.itemId,\r\n\t\tname: null,\r\n\t\tparentId: this.props.itemParentId,\r\n\t\torderNumber: null,\r\n\t\torderList: [],\r\n\t};\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.init();\r\n\t}\r\n\r\n\tinit = () => {\r\n\t\tContentCategoryPostService.init({ id: this.state.id, parentId: this.state.parentId }).then((res) => {\r\n\t\t\tif (!res.success || !res.data || !res.data.categoryList) return;\r\n\t\t\tlet newState = {};\r\n\r\n\t\t\tconst treeData = res.data.categoryList;\r\n\t\t\tnewState.parentList = TreeHelper.parseTree(treeData, 0);\r\n\r\n\t\t\tif (this.state.isAdd) {\r\n\t\t\t\tnewState.name = \"\";\r\n\t\t\t\tnewState.summary = \"\";\r\n\t\t\t\tnewState.description = \"\";\r\n\t\t\t\tnewState.icon = \"\";\r\n\t\t\t\tnewState.orderList = this.buildOrderList(res.data.orderList);\r\n\t\t\t\tnewState.orderNumber = res.data.orderList.length;\r\n\t\t\t} else {\r\n\t\t\t\tconst category = res.data.category;\r\n\t\t\t\tconst parentId = category.parentId;\r\n\r\n\t\t\t\tnewState.orderList = this.buildOrderList(res.data.orderList);\r\n\t\t\t\tnewState.orderNumber = category.orderNumber;\r\n\t\t\t\tnewState.id = category.id;\r\n\t\t\t\tnewState.name = category.name;\r\n\t\t\t\tnewState.summary = category.summary;\r\n\t\t\t\tnewState.description = category.description;\r\n\t\t\t\tnewState.icon = category.icon;\r\n\t\t\t\tnewState.parentId = parentId;\r\n\t\t\t\tnewState.fileList = category.fileList;\r\n\t\t\t\tnewState.descriptionFileList = category.descriptionFileList;\r\n\t\t\t}\r\n\r\n\t\t\tthis.setState(newState);\r\n\t\t});\r\n\t};\r\n\r\n\tonSelectParent = (value, node, extra) => {\r\n\t\tthis.setState({\r\n\t\t\tparentId: value,\r\n\t\t\torderNumber: null,\r\n\t\t\torderList: [],\r\n\t\t});\r\n\r\n\t\tthis.getOrderList(value);\r\n\t};\r\n\r\n\tgetOrderList = (parentId) => {\r\n\t\tif (!parentId) return;\r\n\r\n\t\tContentCategoryPostService.getOrderList({ parentId }).then((res) => {\r\n\t\t\tthis.setState({\r\n\t\t\t\torderNumber: res.length,\r\n\t\t\t\torderList: this.buildOrderList(res),\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\r\n\tbuildOrderList = (orderList) => {\r\n\t\tconst orderListData = [...orderList];\r\n\t\tlet newOrderList = [];\r\n\t\tif (orderListData.length) {\r\n\t\t\torderListData.forEach((item) => {\r\n\t\t\t\tnewOrderList.push({\r\n\t\t\t\t\tlabel: item.name,\r\n\t\t\t\t\tvalue: item.orderNumber,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t\tnewOrderList.push({\r\n\t\t\tlabel: --- Vị trí cuối ---,\r\n\t\t\tvalue: orderList.length,\r\n\t\t});\r\n\t\treturn newOrderList;\r\n\t};\r\n\r\n\tonSubmit = async () => {\r\n\t\tPopup.spin.show();\r\n\t\tconst res = await ContentCategoryPostService.submit({\r\n\t\t\tid: this.state.id,\r\n\t\t\tname: this.state.name,\r\n\t\t\tsummary: this.state.summary,\r\n\t\t\tdescription: this.state.description,\r\n\t\t\tparentId: this.state.parentId,\r\n\t\t\torderNumber: this.state.orderNumber,\r\n\t\t\tfileList: this.state.fileList,\r\n\t\t\tdescriptionFileList: this.state.descriptionFileList,\r\n\t\t\ticon: this.state.icon,\r\n\t\t});\r\n\r\n\t\tPopup.spin.hide();\r\n\t\tif (res.success) {\r\n\t\t\tPopup.info({ autoClose: true });\r\n\t\t\tthis.props.onOk();\r\n\t\t}\r\n\r\n\t\tthis.setState({ msgs: res.msgs });\r\n\t};\r\n\r\n\tonSubmitAndContinues = async () => {\r\n\t\tPopup.spin.show();\r\n\t\tconst res = await ContentCategoryPostService.submit({\r\n\t\t\tname: this.state.name,\r\n\t\t\tsummary: this.state.summary,\r\n\t\t\tdescription: this.state.description,\r\n\t\t\tparentId: this.state.parentId,\r\n\t\t\torderNumber: this.state.orderNumber,\r\n\t\t\tfileList: this.state.fileList,\r\n\t\t\tdescriptionFileList: this.state.descriptionFileList,\r\n\t\t});\r\n\r\n\t\tPopup.spin.hide();\r\n\t\tif (res.success) {\r\n\t\t\tPopup.info({ autoClose: true });\r\n\t\t\tthis.props.onGetList();\r\n\t\t\tthis.init();\r\n\t\t}\r\n\r\n\t\tthis.setState({ msgs: res.msgs });\r\n\t};\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t

{this.state.isAdd ? \"Thêm\" : \"Sửa\"} danh mục

\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t this.setState({ name: value })} />\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t this.setState({ orderNumber: node.value })}\r\n\t\t\t\t\t\t\tfilterOption={(input, option) => option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{this.state.orderList.map((item) => (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{item.label}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t this.setState({ fileList: value })} />\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t this.setState({ icon: value })} />\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t this.setState({ summary: value })}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t this.setState({ descriptionFileList: value })}\r\n\t\t\t\t\t\t\tfilePicker={(value) => this.setState({ filePicker: value })}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t this.setState({ description: value })} filePicker={this.state.filePicker} />\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{this.state.isAdd ? (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t) : null}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { Row, Col, Input, Button, Tree, Modal } from \"antd\";\r\n\r\nimport * as TreeHelper from \"../../common/tree\";\r\nimport { Popup, PopMessage } from \"../../common/component\";\r\nimport { TreeView } from \"../../common/treeView\";\r\n\r\nimport { ContentCategoryManageService, ContentCategoryPostService } from \"./contentService\";\r\n\r\nimport CategoryPost from \"./categoryPost\";\r\n\r\nexport default class CategoryManage extends Component {\r\n\tstate = {\r\n\t\tkeyword: null,\r\n\t\tcategoryTree: null,\r\n\t\tisItemModel: false,\r\n\t\titemId: null,\r\n\t\titemParentId: null,\r\n\t};\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.getList();\r\n\t}\r\n\r\n\tgetList = () => {\r\n\t\tContentCategoryManageService.getList({}).then((res) => {\r\n\t\t\tif (!res.success) return;\r\n\r\n\t\t\tthis.setState({\r\n\t\t\t\tcategoryTree: TreeHelper.parseTree(res.itemList),\r\n\t\t\t\titemId: null,\r\n\t\t\t\titemParentId: null,\r\n\t\t\t\tselectedKeys: [],\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\r\n\tonAddItem = () => {\r\n\t\tthis.setState({\r\n\t\t\titemId: null,\r\n\t\t\tisItemModel: true,\r\n\t\t});\r\n\t};\r\n\r\n\tonEditItem = () => {\r\n\t\tif (!this.state.itemId) return;\r\n\r\n\t\tthis.setState({\r\n\t\t\tisItemModel: true,\r\n\t\t});\r\n\t};\r\n\r\n\tonDeleteItem = () => {\r\n\t\tif (!this.state.itemId) return;\r\n\r\n\t\tPopup.confirm({\r\n\t\t\tonOk: () => {\r\n\t\t\t\tContentCategoryPostService.delete(this.state.itemId).then((res) => {\r\n\t\t\t\t\tif (!res.success) {\r\n\t\t\t\t\t\tPopup.error();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tPopMessage.success();\r\n\r\n\t\t\t\t\tthis.getList();\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tonItemCancel = () => {\r\n\t\tthis.setState({\r\n\t\t\tisItemModel: false,\r\n\t\t});\r\n\t};\r\n\r\n\tonItemOk = () => {\r\n\t\tthis.getList();\r\n\r\n\t\tthis.setState({\r\n\t\t\tisItemModel: false,\r\n\t\t});\r\n\t};\r\n\r\n\tonSelectTreeNode = (value, info) => {\r\n\t\tconst itemId = value.length > 0 ? info.node.value : null;\r\n\r\n\t\tthis.setState({\r\n\t\t\titemId: itemId,\r\n\t\t\titemParentId: itemId,\r\n\t\t\tselectedKeys: value,\r\n\t\t});\r\n\t};\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t

Quản lý danh mục

\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t this.setState({ keyword: value })} />\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{this.state.categoryTree && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n}\r\n","import React, { Component } from \"react\";\nimport { Row, Col, Input, Button, TreeSelect, Switch, Tabs, Select, Divider } from \"antd\";\n\nimport { Popup, Msg, InputNumber, InputComp } from \"../../common/component\";\nimport Editor from \"../../common/editor\";\nimport Upload from \"../file/upload\";\n\nimport { CategoryService, ProductPostService } from \"./productService\";\n\nexport default class ProductPost extends Component {\n\tstate = {\n\t\ttitle: (this.props.id ? \"Sửa\" : \"Thêm\") + \" sản phẩm\",\n\t\tcategoryList: [],\n\t\tbrandList: [],\n\t\tcolorList: [],\n\t\tmemberTypeList: [],\n\t\tbrandId: this.props.brandId,\n\t\tcategoryId: this.props.categoryId\n\t};\n\n\tcomponentDidMount() {\n\t\tPopup.spin.show();\n\t\tProductPostService.init({ id: this.props.id }).then((res) => {\n\t\t\tif (res) {\n\t\t\t\tconst item = res.item ? res.item : { allowOrder: true };\n\n\t\t\t\tthis.setState({\n\t\t\t\t\tcategoryList: CategoryService.parseTree(res.categoryList),\n\t\t\t\t\tbrandList: res.brandList,\n\t\t\t\t\tcolorList: res.colorList,\n\t\t\t\t\tmemberTypeList: res.memberTypeList,\n\t\t\t\t\tid: item.id,\n\t\t\t\t\tname: item.name,\n\t\t\t\t\tcategoryId: item.categoryId ?? this.state.categoryId,\n\t\t\t\t\tbrandId: item.brandId ? item.brandId.toString() : this.state.brandId ? this.state.brandId.toString() : null,\n\t\t\t\t\tcolorId: item.colorId ? item.colorId.toString() : null,\n\t\t\t\t\tpriceType: item.priceType ? item.priceType : \"normal\",\n\t\t\t\t\tprice: item.price,\n\t\t\t\t\tpriceSource: item.priceSource,\n\t\t\t\t\tsaleOffPercent: item.saleOffPercent,\n\t\t\t\t\tpriceSaleOff: item.priceSaleOff,\n\t\t\t\t\tcolor: item.color,\n\t\t\t\t\twaist: item.waist,\n\t\t\t\t\twaistTo: item.waistTo,\n\t\t\t\t\thipLine: item.hipLine,\n\t\t\t\t\thipLineTo: item.hipLineTo,\n\t\t\t\t\tthigh: item.thigh,\n\t\t\t\t\tthighTo: item.thighTo,\n\t\t\t\t\tleg: item.leg,\n\t\t\t\t\tlegTo: item.legTo,\n\t\t\t\t\tpipe: item.pipe,\n\t\t\t\t\tpipeTo: item.pipeTo,\n\n\t\t\t\t\tisHidden: item.isHidden,\n\t\t\t\t\tallowOrder: item.allowOrder,\n\t\t\t\t\tsummary: item.summary,\n\t\t\t\t\tdescription: item.description,\n\t\t\t\t\tquantity: item.quantity,\n\t\t\t\t\tfileList: item.fileList,\n\t\t\t\t\tdescriptionFileList: item.descriptionFileList,\n\t\t\t\t\thighlightPriority: item.highlightPriority,\n\t\t\t\t\tisPopular: item.highlightPriority ? true : false,\n\t\t\t\t});\n\t\t\t}\n\t\t\tPopup.spin.hide();\n\t\t});\n\t}\n\n\tonPriceSaleOff = (tab) => {\n\t\tswitch (tab) {\n\t\t\tcase \"normal\":\n\t\t\t\tlet { price } = this.state;\n\t\t\t\tif (!price && this.state.priceSource) price = this.state.priceSource;\n\t\t\t\tthis.setState({ price: price, priceType: tab });\n\t\t\t\tbreak;\n\t\t\tcase \"saleoff\":\n\t\t\t\tlet { priceSource } = this.state;\n\t\t\t\tif (!priceSource && this.state.price) priceSource = this.state.price;\n\t\t\t\tthis.setState({ priceSource: priceSource, priceType: tab });\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tonSubmit = async () => {\n\t\tPopup.spin.show();\n\t\tconst res = await ProductPostService.submit({\n\t\t\tid: this.state.id,\n\t\t\tname: this.state.name,\n\t\t\tcategoryId: this.state.categoryId,\n\t\t\tbrandId: parseInt(this.state.brandId),\n\t\t\tcolorId: parseInt(this.state.colorId),\n\t\t\tpriceType: this.state.priceType,\n\t\t\tprice: this.state.price,\n\t\t\tpriceSource: this.state.priceSource,\n\t\t\tsaleOffPercent: this.state.saleOffPercent,\n\t\t\tpriceSaleOff: this.state.priceSaleOff,\n\t\t\tcolor: this.state.color,\n\t\t\twaist: this.state.waist,\n\t\t\twaistTo: this.state.waistTo,\n\t\t\thipLine: this.state.hipLine,\n\t\t\thipLineTo: this.state.hipLineTo,\n\t\t\tthigh: this.state.thigh,\n\t\t\tthighTo: this.state.thighTo,\n\t\t\tleg: this.state.leg,\n\t\t\tlegTo: this.state.legTo,\n\t\t\tpipe: this.state.pipe,\n\t\t\tpipeTo: this.state.pipeTo,\n\n\t\t\tisHidden: this.state.isHidden,\n\t\t\tallowOrder: this.state.allowOrder,\n\t\t\tsummary: this.state.summary,\n\t\t\tdescription: this.state.description,\n\t\t\tquantity: this.state.quantity,\n\t\t\tfileList: this.state.fileList,\n\t\t\tdescriptionFileList: this.state.descriptionFileList,\n\t\t\thighlightPriority: parseInt(this.state.highlightPriority),\n\t\t});\n\t\tPopup.spin.hide();\n\t\tif (res.success) {\n\t\t\tPopup.info({ autoClose: true });\n\t\t\tthis.props.onOk();\n\t\t}\n\n\t\tthis.setState({ msgs: res.msgs });\n\t};\n\n\tonCancel = () => {\n\t\tthis.props.onCancel();\n\t};\n\n\tonChangePopular = (value) => {\n\t\tif (value === false) {\n\t\t\tthis.setState({ highlightPriority: null });\n\t\t}\n\t\tthis.setState({ isPopular: value });\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t

{this.state.title}

\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ name: value })} />\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ categoryId: value })}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t option.children.toString().toLowerCase().includes(inputValue.toLowerCase())}\n\t\t\t\t\t\t\t\tvalue={this.state.brandId}\n\t\t\t\t\t\t\t\tonChange={(value) => this.setState({ brandId: value })}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{this.state.brandList.map((item) => (\n\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t option.children.toString().toLowerCase().includes(inputValue.toLowerCase())}\n\t\t\t\t\t\t\t\tvalue={this.state.colorId}\n\t\t\t\t\t\t\t\tonChange={(value) => this.setState({ colorId: value })}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{this.state.colorList.map((item) => (\n\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{/* \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ color: value })} />\n\t\t\t\t\t\t */}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ quantity: values.floatValue })} />\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ waist: values.floatValue })} />\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ waistTo: values.floatValue })} />\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ hipLine: values.floatValue })} />\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ hipLineTo: values.floatValue })} />\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ thigh: values.floatValue })} />\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ thighTo: values.floatValue })} />\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ leg: values.floatValue })} />\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ legTo: values.floatValue })} />\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ pipe: values.floatValue })} />\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ pipeTo: values.floatValue })} />\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t this.setState({ price: values.floatValue })} />\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t this.setState({ priceSource: values.floatValue })} />\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t this.setState({ saleOffPercent: values.floatValue })} />\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t this.setState({ priceSaleOff: values.floatValue })} />\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t

SẢN PHẨM NỔI BẬT

\n\t\t\t\t\t\t\t this.onChangePopular(value)} />\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ highlightPriority: value })}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ allowOrder: value })} />\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ isHidden: value })} />\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ fileList: value })} />\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ summary: value })}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ descriptionFileList: value })}\n\t\t\t\t\t\t\t\tfilePicker={(value) => this.setState({ filePicker: value })}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t this.setState({ description: value })} filePicker={this.state.filePicker} />\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport { Row, Col, Input, Select, Button, DatePicker, TreeSelect, Pagination, Menu, Dropdown, Drawer, Switch, Tag } from \"antd\";\n\nimport { Locale } from \"../../common/locale\";\nimport { Format } from \"../../common/format\";\nimport { Popup } from \"../../common/component\";\n\nimport { CategoryService, ProductManageService, ProductPostService } from \"./productService\";\nimport { FileService } from \"../file/fileService\";\n\nimport ProductPost from \"./productPost\";\n\nexport default class ProductManage extends Component {\n\tstate = {\n\t\tisItemDrawer: false,\n\t\tcategoryList: [],\n\t\tbrandList: [],\n\t\titemList: [],\n\t\tpageIndex: 1,\n\t\tpageSize: 20,\n\t\ttotalPages: 0,\n\t\ttotalItems: 0,\n\t\tkeyword: null,\n\t\tdateFrom: null,\n\t\tdateTo: null,\n\t\tcategoryId: null,\n\t\tbrandId: null,\n\t\torderBy: \"latest\",\n\t};\n\n\tcomponentDidMount() {\n\t\tProductManageService.init().then((res) => {\n\t\t\tif (res.success) {\n\t\t\t\tthis.setState({ categoryList: CategoryService.parseTree(res.categoryList), brandList: res.brandList });\n\t\t\t}\n\t\t});\n\n\t\tthis.getList();\n\t}\n\n\tgetList = () => {\n\t\tPopup.spin.show();\n\t\tProductManageService.getList({\n\t\t\tkeyword: this.state.keyword,\n\t\t\tcategoryId: this.state.categoryId,\n\t\t\tbrandId: this.state.brandId,\n\t\t\tisHidden: this.state.isHidden,\n\t\t\tallowOrder: this.state.allowOrder,\n\t\t\tdateFrom: this.state.dateFrom,\n\t\t\tdateTo: this.state.dateTo,\n\t\t\torderBy: this.state.orderBy,\n\t\t\tpageIndex: this.state.pageIndex,\n\t\t}).then((res) => {\n\t\t\tif (res.success)\n\t\t\t\tthis.setState({\n\t\t\t\t\titemList: res.itemList,\n\t\t\t\t\tpageIndex: res.pageIndex,\n\t\t\t\t\ttotalPages: res.totalPages,\n\t\t\t\t\ttotalItems: res.totalItems,\n\t\t\t\t});\n\t\t\tPopup.spin.hide();\n\t\t});\n\t};\n\n\tdeleteItem = (item) => {\n\t\tPopup.spin.show();\n\t\tProductPostService.delete(item.id).then((res) => {\n\t\t\tPopup.spin.hide();\n\n\t\t\tthis.getList();\n\t\t});\n\t};\n\n\tonItemCancel = () => {\n\t\tthis.setState({\n\t\t\tisItemDrawer: false,\n\t\t});\n\t};\n\n\tonItemOk = () => {\n\t\tthis.getList();\n\n\t\tthis.setState({\n\t\t\tisItemDrawer: false,\n\t\t});\n\t};\n\n\tonAddItem = () => {\n\t\tthis.setState({\n\t\t\titemId: null,\n\t\t\tisItemDrawer: true,\n\t\t});\n\t};\n\n\tonEditItem = (item) => {\n\t\tthis.setState({\n\t\t\titemId: item.id,\n\t\t\tisItemDrawer: true,\n\t\t});\n\t};\n\n\tonDeleteItem = (item) => {\n\t\tPopup.confirm({\n\t\t\ttitle: Locale.getText(\"common.delete_confirm\"),\n\t\t\tcontent: item.name,\n\t\t\tonOk: () => this.deleteItem(item),\n\t\t});\n\t};\n\n\trender() {\n\t\tconst itemList = this.state.itemList ? this.state.itemList : [];\n\n\t\treturn (\n\t\t\t\n\t\t\t\t

Quản lý sản phẩm

\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ keyword: value })}\n\t\t\t\t\t\t\tonSearch={() => this.getList()}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ dateFrom: value ? value.format(\"YYYY-MM-DD\") : null }, () => this.getList())}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ dateTo: value ? value.format(\"YYYY-MM-DD\") : null }, () => this.getList())}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t option.children.toString().toLowerCase().includes(inputValue.toLowerCase())}\n\t\t\t\t\t\t\tvalue={this.state.brandId}\n\t\t\t\t\t\t\tonChange={(value) => this.setState({ brandId: value }, () => this.getList())}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{this.state.brandList.map((item) => (\n\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ categoryId: value }, () => this.getList())}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ allowOrder: value }, () => this.getList())} /> Bỏ đặt hàng\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ isHidden: value }, () => this.getList())} /> Ẩn đi\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{this.state.totalItems} Kết quả\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ orderBy: value }, () => this.getList())}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tMới nhất\n\t\t\t\t\t\t\tCũ nhất\n\t\t\t\t\t\t\tNhiều nhất\n\t\t\t\t\t\t\tÍt nhất\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ pageIndex: value }, () => this.getList())}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
  1. #
  2. \n\t\t\t\t\t\t\t
  3. Hình ảnh
  4. \n\t\t\t\t\t\t\t
  5. Tên
  6. \n\t\t\t\t\t\t\t
  7. Giá
  8. \n\t\t\t\t\t\t\t
  9. SL
  10. \n\t\t\t\t\t\t\t
  11. Ngày đăng
  12. \n\t\t\t\t\t\t\t
  13. \n\t\t\t\t\t\t
\n\t\t\t\t\t\t{itemList.map((item) => (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
  • {item.id}
  • \n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t this.onEditItem(item)}>{item.name}\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t{item.isHidden && hidden}\n\t\t\t\t\t\t\t\t\t{!item.allowOrder && Not order}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\tThương hiệu: {item.brandName}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\tMàu sắc: {item.color}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\tDanh mục: {item.categoryName}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t{Format.number(item.price)}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{item.priceSource && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{Format.number(item.priceSource)} ({item.saleOffPercent}%)\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t
  • {Format.number(item.quantity)}
  • \n\t\t\t\t\t\t\t\t
  • {Format.date(new Date(item.dateCreated))}
  • \n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t this.onEditItem(item)}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tSửa\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t this.onDeleteItem(item)}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tXoá\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t e.preventDefault()}>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t))}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ pageIndex: value }, () => this.getList())}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\r\nimport { Row, Col, Input, Button, Switch, InputNumber } from \"antd\";\r\n\r\nimport { Popup, Msg } from \"../../common/component\";\r\nimport Upload from \"../file/upload\";\r\n\r\nimport { ProductBrandPostServices } from \"./productService\";\r\n\r\nexport default class BrandPost extends Component {\r\n\tstate = {\r\n\t\tisAdd: !this.props.itemId,\r\n\t\tid: this.props.itemId,\r\n\t\tname: null,\r\n\t\tisPopular: null,\r\n\t\tpopularOrderNumber: null,\r\n\t};\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.init();\r\n\t}\r\n\r\n\tinit = () => {\r\n\t\tif (!this.state.id) return;\r\n\r\n\t\tProductBrandPostServices.init({ id: this.state.id }).then((res) => {\r\n\t\t\tif (!res.success || !res.item) return;\r\n\r\n\t\t\tthis.setState({\r\n\t\t\t\tname: res.item.name,\r\n\t\t\t\tfileList: res.item.fileList,\r\n\t\t\t\tisPopular: res.item.popularOrderNumber !== null,\r\n\t\t\t\tpopularOrderNumber: res.item.popularOrderNumber\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\r\n\tonSubmit = async () => {\r\n\t\tPopup.spin.show();\r\n\t\tconst res = await ProductBrandPostServices.submit({\r\n\t\t\tid: this.state.id,\r\n\t\t\tname: this.state.name,\r\n\t\t\tfileList: this.state.fileList,\r\n\t\t\tpopularOrderNumber: this.state.popularOrderNumber\r\n\t\t});\r\n\r\n\t\tPopup.spin.hide();\r\n\t\tif (res.success) {\r\n\t\t\tPopup.info({ autoClose: true });\r\n\t\t\tthis.props.onOk();\r\n\t\t}\r\n\r\n\t\tthis.setState({ msgs: res.msgs });\r\n\t};\r\n\r\n\tonSubmitAndContinues = async () => {\r\n\t\tlet updateState = {};\r\n\t\tPopup.spin.show();\r\n\t\tconst res = await ProductBrandPostServices.submit({\r\n\t\t\tid: this.state.id,\r\n\t\t\tname: this.state.name,\r\n\t\t\tfileList: this.state.fileList,\r\n\t\t\tpopularOrderNumber: this.state.popularOrderNumber\r\n\t\t});\r\n\r\n\t\tupdateState.msgs = res.msgs;\r\n\t\tPopup.spin.hide();\r\n\t\tif (res.success) {\r\n\t\t\tPopup.info({ autoClose: true });\r\n\t\t\tthis.props.onItemOkAndContinue();\r\n\t\t\tthis.init();\r\n\t\t\tupdateState.name = \"\";\r\n\t\t}\r\n\r\n\t\tthis.setState(updateState);\r\n\t};\r\n\r\n\tonChangePopular = (value) => {\r\n\t\tif(value === false){\r\n\t\t\tthis.setState({ popularOrderNumber: null });\r\n\t\t}\r\n\t\tthis.setState({ isPopular: value });\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t

{this.state.isAdd ? \"Thêm\" : \"Sửa\"} thương hiệu

\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t this.setState({ fileList: value })} />\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t this.setState({ name: value })} autoFocus />\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t this.onChangePopular(value)}/>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t this.setState({ popularOrderNumber: value })} placeholder=\"Vị trí\"/>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{this.state.isAdd ? (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t) : null}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { Row, Col, Button, Input, Modal, Switch } from \"antd\";\r\n\r\nimport { Popup, PopMessage } from \"../../common/component\";\r\n\r\nimport { ProductBrandManageServices, ProductBrandPostServices } from \"./productService\";\r\n\r\nimport BrandPost from \"./brandPost\";\r\n\r\nexport default class BrandManage extends Component {\r\n\tstate = {\r\n\t\titemList: [],\r\n\t\tisShowModalItem: false,\r\n\t\titemId: null,\r\n\t\tisPopular: null,\r\n\t};\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.getList();\r\n\t}\r\n\r\n\tgetList = () => {\r\n\t\tProductBrandManageServices.getList({\r\n\t\t\tpopularOrderNumber: this.state.isPopular === true ? 1 : null,\r\n\t\t}).then((res) => {\r\n\t\t\tif (!res.success) return;\r\n\r\n\t\t\tthis.setState({\r\n\t\t\t\titemList: res.itemList,\r\n\t\t\t\titemId: null,\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\r\n\tonAddItem = () => {\r\n\t\tthis.setState({\r\n\t\t\titemId: null,\r\n\t\t\tisShowModalItem: true,\r\n\t\t});\r\n\t};\r\n\r\n\tonEditItem = (id) => {\r\n\t\tif (!id) return;\r\n\r\n\t\tthis.setState({\r\n\t\t\titemId: id,\r\n\t\t\tisShowModalItem: true,\r\n\t\t});\r\n\t};\r\n\r\n\tonDeleteItem = (id) => {\r\n\t\tif (!id) return;\r\n\r\n\t\tPopup.confirm({\r\n\t\t\tonOk: () => {\r\n\t\t\t\tProductBrandPostServices.delete(id).then((res) => {\r\n\t\t\t\t\tif (!res.success) {\r\n\t\t\t\t\t\tPopup.error();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tPopMessage.success();\r\n\r\n\t\t\t\t\tthis.getList();\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tonItemCancel = () => {\r\n\t\tthis.setState({\r\n\t\t\tisShowModalItem: false,\r\n\t\t});\r\n\t};\r\n\r\n\tonItemOk = () => {\r\n\t\tthis.getList();\r\n\r\n\t\tthis.setState({\r\n\t\t\tisShowModalItem: false,\r\n\t\t});\r\n\t};\r\n\r\n\tonItemOkAndContinue = () => {\r\n\t\tthis.getList();\r\n\t};\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t

Quản lý thương hiệu

\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t this.setState({ keyword: value })}\r\n\t\t\t\t\t\t\t\tonSearch={() => this.getList()}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t this.setState({ isPopular: value }, () => this.getList())} /> Nổi bật\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t{this.state.itemList\r\n\t\t\t\t\t\t\t\t.filter((item) => !this.state.keyword || item.name.toLowerCase().indexOf(this.state.keyword.toLowerCase()) >= 0)\r\n\t\t\t\t\t\t\t\t.map((item) => (\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t{this.state.isPopular == true &&
  • {item.popularOrderNumber}
  • }\r\n\t\t\t\t\t\t\t\t\t\t
  • \r\n\t\t\t\t\t\t\t\t\t\t\t this.onEditItem(item.id)}>{item.name}\r\n\t\t\t\t\t\t\t\t\t\t
  • \r\n\t\t\t\t\t\t\t\t\t\t
  • \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
  • \r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { Row, Col, Input, Button } from \"antd\";\r\n\r\nimport { Popup, Msg } from \"../../common/component\";\r\n\r\nimport { ProductColorPostServices } from \"./productService\";\r\n\r\nexport default class ColorPost extends Component {\r\n\tstate = {\r\n\t\tisAdd: !this.props.itemId,\r\n\t\tid: this.props.itemId,\r\n\t\tname: null\r\n\t};\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.init();\r\n\t}\r\n\r\n\tinit = () => {\r\n\t\tif (!this.state.id) return;\r\n\r\n\t\tProductColorPostServices.init({ id: this.state.id }).then((res) => {\r\n\t\t\tif (!res.success || !res.item) return;\r\n\r\n\t\t\tthis.setState({\r\n\t\t\t\tname: res.item.name,\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\r\n\tonSubmit = async () => {\r\n\t\tPopup.spin.show();\r\n\t\tconst res = await ProductColorPostServices.submit({\r\n\t\t\tid: this.state.id,\r\n\t\t\tname: this.state.name,\r\n\t\t});\r\n\r\n\t\tPopup.spin.hide();\r\n\t\tif (res.success) {\r\n\t\t\tPopup.info({ autoClose: true });\r\n\t\t\tthis.props.onOk();\r\n\t\t}\r\n\r\n\t\tthis.setState({ msgs: res.msgs });\r\n\t};\r\n\r\n\tonSubmitAndContinues = async () => {\r\n\t\tlet updateState = {};\r\n\t\tPopup.spin.show();\r\n\t\tconst res = await ProductColorPostServices.submit({\r\n\t\t\tid: this.state.id,\r\n\t\t\tname: this.state.name\r\n\t\t});\r\n\r\n\t\tupdateState.msgs = res.msgs;\r\n\t\tPopup.spin.hide();\r\n\t\tif (res.success) {\r\n\t\t\tPopup.info({ autoClose: true });\r\n\t\t\tthis.props.onItemOkAndContinue();\r\n\t\t\tthis.init();\r\n\t\t\tupdateState.name = \"\";\r\n\t\t}\r\n\r\n\t\tthis.setState(updateState);\r\n\t};\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t

{this.state.isAdd ? \"Thêm\" : \"Sửa\"} màu sắc

\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t this.setState({ name: value })} autoFocus />\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{this.state.isAdd ? (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t) : null}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { Row, Col, Button, Input, Modal, Switch } from \"antd\";\r\n\r\nimport { Popup, PopMessage } from \"../../common/component\";\r\n\r\nimport { ProductColorManageServices, ProductColorPostServices } from \"./productService\";\r\n\r\nimport ColorPost from \"./colorPost\";\r\n\r\nexport default class ColorManage extends Component {\r\n\tstate = {\r\n\t\titemList: [],\r\n\t\tisShowModalItem: false,\r\n\t\titemId: null,\r\n\t\tisPopular: null,\r\n\t};\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.getList();\r\n\t}\r\n\r\n\tgetList = () => {\r\n\t\tProductColorManageServices.getList().then((res) => {\r\n\t\t\tif (!res.success) return;\r\n\r\n\t\t\tthis.setState({\r\n\t\t\t\titemList: res.itemList,\r\n\t\t\t\titemId: null,\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\r\n\tonAddItem = () => {\r\n\t\tthis.setState({\r\n\t\t\titemId: null,\r\n\t\t\tisShowModalItem: true,\r\n\t\t});\r\n\t};\r\n\r\n\tonEditItem = (id) => {\r\n\t\tif (!id) return;\r\n\r\n\t\tthis.setState({\r\n\t\t\titemId: id,\r\n\t\t\tisShowModalItem: true,\r\n\t\t});\r\n\t};\r\n\r\n\tonDeleteItem = (id) => {\r\n\t\tif (!id) return;\r\n\r\n\t\tPopup.confirm({\r\n\t\t\tonOk: () => {\r\n\t\t\t\tProductColorPostServices.delete(id).then((res) => {\r\n\t\t\t\t\tif (!res.success) {\r\n\t\t\t\t\t\tPopup.error();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tPopMessage.success();\r\n\r\n\t\t\t\t\tthis.getList();\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tonItemCancel = () => {\r\n\t\tthis.setState({\r\n\t\t\tisShowModalItem: false,\r\n\t\t});\r\n\t};\r\n\r\n\tonItemOk = () => {\r\n\t\tthis.getList();\r\n\r\n\t\tthis.setState({\r\n\t\t\tisShowModalItem: false,\r\n\t\t});\r\n\t};\r\n\r\n\tonItemOkAndContinue = () => {\r\n\t\tthis.getList();\r\n\t};\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t

Quản lý màu sắc

\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t this.setState({ keyword: value })}\r\n\t\t\t\t\t\t\t\tonSearch={() => this.getList()}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t{this.state.itemList\r\n\t\t\t\t\t\t\t\t.filter((item) => !this.state.keyword || item.name.toLowerCase().indexOf(this.state.keyword.toLowerCase()) >= 0)\r\n\t\t\t\t\t\t\t\t.map((item) => (\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
  • \r\n\t\t\t\t\t\t\t\t\t\t\t this.onEditItem(item.id)}>{item.name}\r\n\t\t\t\t\t\t\t\t\t\t
  • \r\n\t\t\t\t\t\t\t\t\t\t
  • \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
  • \r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n}\r\n","import React, { Component } from \"react\";\nimport { Row, Col, Input, Button, TreeSelect, Select, Switch, InputNumber } from \"antd\";\n\nimport { Popup, Msg } from \"../../common/component\";\nimport * as TreeHelper from \"../../common/tree\";\nimport Upload from \"../file/upload\";\n\nimport { ProductCategoryPostService } from \"./productService\";\n\nexport default class CategoryPost extends Component {\n\tstate = {\n\t\tisAdd: !this.props.itemId,\n\t\tparentList: [],\n\t\tid: this.props.itemId,\n\t\tname: null,\n\t\tparentId: this.props.itemParentId,\n\t\torderNumber: null,\n\t\torderList: [],\n\t\tisPopular: null,\n\t\tpopularOrderNumber: null,\n\t\ticon: null,\n\t};\n\n\tcomponentDidMount() {\n\t\tthis.init();\n\t}\n\n\tinit = () => {\n\t\tProductCategoryPostService.init({ id: this.state.id, parentId: this.state.parentId }).then((res) => {\n\t\t\tif (!res.success || !res.data || !res.data.categoryList) return;\n\t\t\tlet newState = {};\n\n\t\t\tconst treeData = res.data.categoryList;\n\t\t\tnewState.parentList = TreeHelper.parseTree(treeData, 0);\n\n\t\t\tif (this.state.isAdd) {\n\t\t\t\tnewState.name = \"\";\n\t\t\t\tnewState.orderList = this.buildOrderList(res.data.orderList);\n\t\t\t\tnewState.orderNumber = res.data.orderList.length;\n\t\t\t} else {\n\t\t\t\tconst category = res.data.category;\n\t\t\t\tconst parentId = category.parentId;\n\n\t\t\t\tnewState.orderList = this.buildOrderList(res.data.orderList);\n\t\t\t\tnewState.orderNumber = category.orderNumber;\n\t\t\t\tnewState.id = category.id;\n\t\t\t\tnewState.fileList = category.fileList;\n\t\t\t\tnewState.name = category.name;\n\t\t\t\tnewState.parentId = parentId;\n\t\t\t\tnewState.isPopular = category.popularOrderNumber !== null;\n\t\t\t\tnewState.popularOrderNumber = category.popularOrderNumber;\n\t\t\t\tnewState.icon = category.icon;\n\t\t\t}\n\n\t\t\tthis.setState(newState);\n\t\t});\n\t};\n\n\tonSelectParent = (value, node, extra) => {\n\t\tthis.setState({\n\t\t\tparentId: value,\n\t\t\torderNumber: null,\n\t\t\torderList: [],\n\t\t});\n\n\t\tthis.getOrderList(value);\n\t};\n\n\tgetOrderList = (parentId) => {\n\t\tif (!parentId) return;\n\n\t\tProductCategoryPostService.getOrderList({ parentId }).then((res) => {\n\t\t\tthis.setState({\n\t\t\t\torderNumber: res.length,\n\t\t\t\torderList: this.buildOrderList(res),\n\t\t\t}, () => console.log(this.state.orderList));\n\t\t});\n\t};\n\n\tbuildOrderList = (orderList) => {\n\t\tconst orderListData = [...orderList];\n\t\tlet newOrderList = [];\n\t\tif (orderListData.length) {\n\t\t\torderListData.forEach((item) => {\n\t\t\t\tnewOrderList.push({\n\t\t\t\t\tlabel: item.name,\n\t\t\t\t\tvalue: item.orderNumber,\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\tnewOrderList.push({\n\t\t\tlabel: --- Vị trí cuối ---,\n\t\t\tvalue: orderList.length,\n\t\t});\n\t\treturn newOrderList;\n\t};\n\n\tonSubmit = async () => {\n\t\tPopup.spin.show();\n\t\tconst res = await ProductCategoryPostService.submit({\n\t\t\tid: this.state.id,\n\t\t\tname: this.state.name,\n\t\t\tfileList: this.state.fileList,\n\t\t\tparentId: this.state.parentId,\n\t\t\torderNumber: this.state.orderNumber,\n\t\t\tpopularOrderNumber: this.state.popularOrderNumber,\n\t\t\ticon: this.state.icon,\n\t\t});\n\n\t\tPopup.spin.hide();\n\t\tif (res.success) {\n\t\t\tPopup.info({ autoClose: true });\n\t\t\tthis.props.onOk();\n\t\t}\n\n\t\tthis.setState({ msgs: res.msgs });\n\t};\n\n\tonSubmitAndContinues = async () => {\n\t\tPopup.spin.show();\n\t\tconst res = await ProductCategoryPostService.submit({\n\t\t\tname: this.state.name,\n\t\t\tfileList: this.state.fileList,\n\t\t\tparentId: this.state.parentId,\n\t\t\torderNumber: this.state.orderNumber,\n\t\t\tpopularOrderNumber: this.state.popularOrderNumber,\n\t\t\ticon: this.state.icon,\n\t\t});\n\n\t\tPopup.spin.hide();\n\t\tif (res.success) {\n\t\t\tPopup.info({ autoClose: true });\n\t\t\tthis.props.onItemOkAndContinue();\n\t\t\tthis.init();\n\t\t}\n\n\t\tthis.setState({ msgs: res.msgs });\n\t};\n\n\tonChangePopular = (value) => {\n\t\tif(value === false){\n\t\t\tthis.setState({ popularOrderNumber: null });\n\t\t}\n\t\tthis.setState({ isPopular: value });\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t
\n\t\t\t\t

{this.state.isAdd ? \"Thêm\" : \"Sửa\"} danh mục

\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ fileList: value })} />\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ name: value })} autoFocus />\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ orderNumber: node.value })}\n\t\t\t\t\t\t\tfilterOption={(input, option) => option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{this.state.orderList.map((item) => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ icon: value })} />\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t this.onChangePopular(value)} />\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ popularOrderNumber: value })} placeholder=\"Vị trí\"/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{this.state.isAdd ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport { Row, Col, Input, Button, Tree, Modal, Switch } from \"antd\";\n\nimport * as TreeHelper from \"../../common/tree\";\nimport { Popup, PopMessage } from \"../../common/component\";\nimport { TreeView } from \"../../common/treeView\";\n\nimport { ProductCategoryManageService, ProductCategoryPostService } from \"./productService\";\n\nimport CategoryPost from \"./categoryPost\";\n\nexport default class CategoryManage extends Component {\n\tstate = {\n\t\tkeyword: null,\n\t\tcategoryTree: null,\n\t\tisItemModel: false,\n\t\titemId: null,\n\t\titemParentId: null,\n\t\tisPopular: null,\n\t};\n\n\tcomponentDidMount() {\n\t\tthis.getList();\n\t}\n\n\tgetList = () => {\n\t\tconst { isPopular } = this.state;\n\t\tProductCategoryManageService.getList({\n\t\t\tpopularOrderNumber: this.state.isPopular === true ? 1 : null,\n\t\t}).then((res) => {\n\t\t\tif (!res.success) return;\n\n\t\t\tlet categoryTree = [];\n\t\t\tif (isPopular === true) {\n\t\t\t\tres.itemList.sort((a, b) => a.popularOrderNumber - b.popularOrderNumber);\n\t\t\t\tres.itemList.forEach((item, i) => {\n\t\t\t\t\tcategoryTree.push({\n\t\t\t\t\t\tkey: item.id,\n\t\t\t\t\t\ttitle: `${item.popularOrderNumber} - ${item.name}`,\n\t\t\t\t\t\tvalue: item.id,\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t} else categoryTree = TreeHelper.parseTree(res.itemList);\n\n\t\t\tthis.setState({\n\t\t\t\tcategoryTree,\n\t\t\t\titemId: null,\n\t\t\t\titemParentId: null,\n\t\t\t\tselectedKeys: [],\n\t\t\t});\n\t\t});\n\t};\n\n\tonAddItem = () => {\n\t\tthis.setState({\n\t\t\titemId: null,\n\t\t\tisItemModel: true,\n\t\t});\n\t};\n\n\tonEditItem = () => {\n\t\tif (!this.state.itemId) return;\n\n\t\tthis.setState({\n\t\t\tisItemModel: true,\n\t\t});\n\t};\n\n\tonDeleteItem = () => {\n\t\tif (!this.state.itemId) return;\n\n\t\tPopup.confirm({\n\t\t\tonOk: () => {\n\t\t\t\tProductCategoryPostService.delete(this.state.itemId).then((res) => {\n\t\t\t\t\tif (!res.success) {\n\t\t\t\t\t\tPopup.error();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tPopMessage.success();\n\n\t\t\t\t\tthis.getList();\n\t\t\t\t});\n\t\t\t},\n\t\t});\n\t};\n\n\tonItemCancel = () => {\n\t\tthis.setState({\n\t\t\tisItemModel: false,\n\t\t});\n\t};\n\n\tonItemOk = () => {\n\t\tthis.getList();\n\n\t\tthis.setState({\n\t\t\tisItemModel: false,\n\t\t});\n\t};\n\n\tonItemOkAndContinue = () => {\n\t\tthis.getList();\n\t};\n\n\tonSelectTreeNode = (value, info) => {\n\t\tconst itemId = value.length > 0 ? info.node.value : null;\n\n\t\tthis.setState({\n\t\t\titemId: itemId,\n\t\t\titemParentId: itemId,\n\t\t\tselectedKeys: value,\n\t\t});\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t

Quản lý danh mục

\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ keyword: value })} />\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t this.setState({ isPopular: value }, () => this.getList())} /> Nổi bật\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{this.state.categoryTree && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport { Row, Col, Input, Select, DatePicker, Pagination, Drawer, Button } from \"antd\";\n\nimport { Locale } from \"../../common/locale\";\nimport { Format } from \"../../common/format\";\nimport { Popup } from \"../../common/component\";\n\nimport { OrdersManageService } from \"./productService\";\nimport { FileService } from \"../file/fileService\";\n\nexport default class Orders extends Component {\n\tstate = {\n\t\tisAdmin: false,\n\t\tstatusList: [],\n\t\tstateProvinceList: [],\n\t\tdistrictCityList: [],\n\t\titemList: [],\n\t\tpageIndex: 1,\n\t\tpageSize: 20,\n\t\ttotalPages: 0,\n\t\ttotalItems: 0,\n\t\ttype: this.props.match.params.type,\n\t\tkeyword: null,\n\t\tdateFrom: null,\n\t\tdateTo: null,\n\t\torderBy: \"dateCreatedDec\",\n\t\titemDetail: null,\n\t};\n\n\tcomponentDidMount() {\n\t\tOrdersManageService.init().then((res) => {\n\t\t\tif (res.success) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tisAdmin: res.isAdmin,\n\t\t\t\t\tstatusList: res.statusList,\n\t\t\t\t\tstateProvinceList: res.stateProvinceList,\n\t\t\t\t\tdistrictCityList: res.districtCityList,\n\t\t\t\t});\n\n\t\t\t\tthis.getList();\n\t\t\t}\n\t\t});\n\t}\n\n\tgetList = () => {\n\t\tPopup.spin.show();\n\t\tOrdersManageService.getList({\n\t\t\ttype: this.state.type,\n\t\t\tkeyword: this.state.keyword,\n\t\t\tdateFrom: this.state.dateFrom,\n\t\t\tdateTo: this.state.dateTo,\n\t\t\tstatusId: this.state.statusId,\n\t\t\tstateProvinceId: this.state.stateProvinceId,\n\t\t\tdistrictCityId: this.state.districtCityId,\n\t\t\torderBy: this.state.orderBy,\n\t\t\tpageIndex: this.state.pageIndex,\n\t\t}).then((res) => {\n\t\t\tif (res.success) {\n\t\t\t\tfor (var i = 0; i < res.itemList.length; i++) {\n\t\t\t\t\tconst item = res.itemList[i];\n\t\t\t\t\titem.dateCreated = new Date(item.dateCreated);\n\t\t\t\t\titem.date = Format.date(item.dateCreated);\n\t\t\t\t\titem.time = Format.time(item.dateCreated);\n\t\t\t\t\titem.statusName = this.state.statusList.find((m) => m.id === item.statusId).name;\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\titemList: res.itemList,\n\t\t\t\t\tpageIndex: res.pageIndex,\n\t\t\t\t\ttotalPages: res.totalPages,\n\t\t\t\t\ttotalItems: res.totalItems,\n\t\t\t\t});\n\t\t\t}\n\t\t\tPopup.spin.hide();\n\t\t});\n\t};\n\n\tonItemDetail = (item) => {\n\t\tconst itemDetail = item;\n\t\tthis.setState({\n\t\t\tisItemDrawer: true,\n\t\t\titemDetailStatusId: itemDetail.statusId,\n\t\t\titemDetailNote: itemDetail.note,\n\t\t});\n\n\t\tif (itemDetail.itemList) {\n\t\t\tthis.setState({ itemDetail });\n\t\t\treturn;\n\t\t}\n\n\t\tPopup.spin.show();\n\t\tOrdersManageService.getDetail({\n\t\t\tid: item.id,\n\t\t\ttype: this.state.type,\n\t\t}).then((res) => {\n\t\t\tif (res.success) {\n\t\t\t\titemDetail.address = res.address;\n\t\t\t\titemDetail.itemList = res.itemList;\n\t\t\t\titemDetail.statusList = res.statusList;\n\t\t\t\titemDetail.isCancel = res.isCancel;\n\t\t\t\titemDetail.isBuyerCancel = res.isBuyerCancel;\n\t\t\t\titemDetail.isSellerCancel = res.isSellerCancel;\n\t\t\t\titemDetail.isClose = res.isClose;\n\t\t\t\tthis.setState({ itemDetail });\n\t\t\t}\n\t\t\tPopup.spin.hide();\n\t\t});\n\t};\n\n\tonItemClose = () => {\n\t\tthis.setState({ isItemDrawer: false });\n\t};\n\n\tonItemDetailSubmit = async () => {\n\t\tPopup.spin.show();\n\t\tconst res = await OrdersManageService.update({\n\t\t\tid: this.state.itemDetail.id,\n\t\t\ttype: this.state.type,\n\t\t\tstatusId: this.state.itemDetailStatusId,\n\t\t});\n\t\tPopup.spin.hide();\n\n\t\tif (res.success) {\n\t\t\tthis.getList();\n\n\t\t\tPopup.info({ autoClose: true });\n\n\t\t\tthis.onItemClose();\n\t\t}\n\t};\n\n\tonItemDetailCancel = async () => {\n\t\tPopup.confirm({\n\t\t\ttitle: \"Bạn muốn huỷ đơn hàng đang chọn?\",\n\t\t\tonOk: async () => {\n\t\t\t\tPopup.spin.show();\n\t\t\t\tconst res = await OrdersManageService.cancel({\n\t\t\t\t\tid: this.state.itemDetail.id,\n\t\t\t\t\ttype: this.state.type,\n\t\t\t\t});\n\t\t\t\tPopup.spin.hide();\n\n\t\t\t\tif (res.success) {\n\t\t\t\t\tthis.getList();\n\n\t\t\t\t\tPopup.info({ autoClose: true });\n\n\t\t\t\t\tthis.onItemClose();\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\t};\n\n\tshouldComponentUpdate(nextProps) {\n\t\tlet hasChange = false;\n\t\tif (this.props.match.params.type != nextProps.match.params.type) {\n\t\t\tthis.state.type = nextProps.match.params.type;\n\t\t\thasChange = true;\n\t\t}\n\n\t\tif (hasChange) this.getList();\n\n\t\treturn true;\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t

{this.state.type === \"buyer\" ? \"Hoá đơn mua hàng\" : \"Đơn đặt hàng\"}

\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ keyword: value })}\n\t\t\t\t\t\t\tonSearch={this.getList}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ dateFrom: value ? value.format(\"YYYY-MM-DD\") : null }, this.getList)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ dateTo: value ? value.format(\"YYYY-MM-DD\") : null }, this.getList)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ stateProvinceId: value, districtCityId: null }, this.getList)}\n\t\t\t\t\t\t\tvalue={this.state.stateProvinceId}\n\t\t\t\t\t\t\tallowClear\n\t\t\t\t\t\t\tshowSearch\n\t\t\t\t\t\t\toptionFilterProp=\"children\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{this.state.stateProvinceList.map((item) => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ districtCityId: value }, this.getList)}\n\t\t\t\t\t\t\tvalue={this.state.districtCityId}\n\t\t\t\t\t\t\tallowClear\n\t\t\t\t\t\t\tshowSearch\n\t\t\t\t\t\t\toptionFilterProp=\"children\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{this.state.districtCityList.map(\n\t\t\t\t\t\t\t\t(item) =>\n\t\t\t\t\t\t\t\t\titem.stateProvinceId === this.state.stateProvinceId && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{this.state.totalItems} mục\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ orderBy: value }, () => this.getList())}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tMới nhất\n\t\t\t\t\t\t\tCũ nhất\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ pageIndex: value }, () => this.getList())}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
  1. #
  2. \n\t\t\t\t\t\t\t
  3. Ngày tạo
  4. \n\t\t\t\t\t\t\t
  5. Người mua
  6. \n\t\t\t\t\t\t\t
  7. Người bán
  8. \n\t\t\t\t\t\t\t
  9. Giá trị
  10. \n\t\t\t\t\t\t\t
  11. Trạng thái
  12. \n\t\t\t\t\t\t\t
  13. Ghi chú
  14. \n\t\t\t\t\t\t\t
  15. \n\t\t\t\t\t\t
\n\t\t\t\t\t\t{this.state.itemList.map((item) => (\n\t\t\t\t\t\t\t
    this.onItemDetail(item)}>\n\t\t\t\t\t\t\t\t
  • {item.id}
  • \n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t
    {Format.date(item.dateCreated)}
    \n\t\t\t\t\t\t\t\t\t{Format.time(item.dateCreated)}\n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t
    {item.buyer.userName}
    \n\t\t\t\t\t\t\t\t\t{item.buyer.fullName}\n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t
    {item.seller.userName}
    \n\t\t\t\t\t\t\t\t\t{item.seller.fullName}\n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t
    Tổng: {Format.number(item.value)}
    \n\t\t\t\t\t\t\t\t\t
    Ví HelpPay: {Format.number(item.primaryWallet)}
    \n\t\t\t\t\t\t\t\t\t
    Ví Dịch vụ: {Format.number(item.fundWallet)}
    \n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t{item.statusName}\n\t\t\t\t\t\t\t\t\t{item.isBuyerCancel &&
    Người mua huỷ bỏ
    }\n\t\t\t\t\t\t\t\t\t{item.isSellerCancel &&
    Người bán huỷ bỏ
    }\n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t
    {item.note}
    \n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t))}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ pageIndex: value }, () => this.getList())}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{this.state.itemDetail && this.state.itemDetail.statusList && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{this.state.type === \"buyer\" ? \"Hoá đơn mua hàng\" : \"Đơn đặt hàng\"} #{this.state.itemDetail.id}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\tNgày tạo\n\t\t\t\t\t\t\t\t\t\t
{this.state.itemDetail.date}
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\tNgười mua\n\t\t\t\t\t\t\t\t\t\t\t\t
{this.state.itemDetail.buyer.userName}
\n\t\t\t\t\t\t\t\t\t\t\t\t
{this.state.itemDetail.buyer.fullName}
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\tNgười bán\n\t\t\t\t\t\t\t\t\t\t\t\t
{this.state.itemDetail.seller.userName}
\n\t\t\t\t\t\t\t\t\t\t\t\t
{this.state.itemDetail.seller.fullName}
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\tTổng\n\t\t\t\t\t\t\t\t\t\t\t\t
{Format.number(this.state.itemDetail.value)}
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\tVí HelpPay\n\t\t\t\t\t\t\t\t\t\t\t\t
{Format.number(this.state.itemDetail.value - this.state.itemDetail.fundWallet)}
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\tVí DV\n\t\t\t\t\t\t\t\t\t\t\t\t
{Format.number(this.state.itemDetail.fundWallet)}
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\tĐịa chỉ\n\t\t\t\t\t\t\t\t\t\t
{this.state.itemDetail.address}
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tTrạng thái\n\t\t\t\t\t\t\t\t\t{this.state.itemDetail.isClose ? (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t
{this.state.itemDetail.statusName}
\n\t\t\t\t\t\t\t\t\t\t\t{this.state.itemDetail.isBuyerCancel &&
Người mua huỷ bỏ
}\n\t\t\t\t\t\t\t\t\t\t\t{this.state.itemDetail.isSellerCancel &&
Người bán huỷ bỏ
}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t this.setState({ itemDetailStatusId: value })}\n\t\t\t\t\t\t\t\t\t\t\tallowClear\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{this.state.itemDetail.statusList.map((item) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{item.id === 4 &&
Khi bạn đã nhận được sản phẩm
}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\tGhi chú\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{this.state.itemDetail.isClose == false && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{this.state.itemDetail.isCancel && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
  1. Hình ảnh
  2. \n\t\t\t\t\t\t\t\t\t
  3. Sản phẩm
  4. \n\t\t\t\t\t\t\t\t\t
  5. Giá / Ví DV
  6. \n\t\t\t\t\t\t\t\t\t
  7. SL
  8. \n\t\t\t\t\t\t\t\t\t
  9. Tổng
  10. \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{this.state.itemDetail.itemList &&\n\t\t\t\t\t\t\t\t\tthis.state.itemDetail.itemList.map((item, index) => (\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t\t\t{item.productName}\n\t\t\t\t\t\t\t\t\t\t\t\t{item.bonusPoint && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tNhận: {Format.number(item.bonusPoint)} / {item.numberOfReceive} tháng\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{item.memberTypeNameBonus && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tGói: {item.memberTypeNameBonus}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t\t\t
    {Format.number(item.price)}
    \n\t\t\t\t\t\t\t\t\t\t\t\t{item.fundWallet && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tVí DV: {Format.number(item.fundWallet)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t\t\t{item.qty}\n\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t\t\t
    {Format.number(item.price * item.qty)}
    \n\t\t\t\t\t\t\t\t\t\t\t\t{item.bonusPoint &&
    {Format.number(item.fundWallet * item.qty)}
    }\n\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport { Input, Button, message } from 'antd';\n\nimport { VerificationCodeService } from \"./userService\";\n\nexport default class VerificationCode extends Component {\n\tstate = {\n\t\tisGetCode: false,\n\t}\n\n\tonChange = ({ target: { value } }) => {\n\t\tif (this.props.onChange)\n\t\t\tthis.props.onChange(value);\n\t}\n\n\tonCodeGet = async () => {\n\t\tthis.setState({ isGetCode: true });\n\t\tconst res = await VerificationCodeService.get({ categoryId: this.props.category });\n\t\tthis.setState({ isGetCode: false });\n\t\t\n\t\tmessage.info(\"Mã xác thực đã gửi vào email của bạn\");\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\tLấy mã} />\n\t\t);\n\t}\n}","import React, { Component } from \"react\";\nimport { Row, Col, Input, Button, Select } from \"antd\";\n\nimport { Popup, Msg } from \"../../common/component\";\nimport Upload from \"../file/upload\";\n\nimport VerificationCode from \"./verificationCode\";\nimport { ProfileService } from \"./userService\";\nimport { CurrentUserService } from \"./currentUserService\";\n\nexport default class Profile extends Component {\n\tstate = {\n\t\tfullName: \"\",\n\t\temail: \"\",\n\t\tpassword: \"\",\n\t\tconfirmPassword: \"\",\n\t};\n\n\tcomponentDidMount() {\n\t\tPopup.spin.show();\n\t\tProfileService.init().then((res) => {\n\t\t\tif (res) {\n\t\t\t\tthis.setState({\n\t\t\t\t\thasVerificationCode: res.hasVerificationCode,\n\t\t\t\t\tisAdmin: res.isAdmin,\n\t\t\t\t\tuserName: res.userName,\n\t\t\t\t\tfullName: res.fullName,\n\t\t\t\t\tphoneNumber: res.phoneNumber,\n\t\t\t\t\temail: res.email,\n\t\t\t\t\tfileList: res.fileList,\n\t\t\t\t});\n\t\t\t}\n\t\t\tPopup.spin.hide();\n\t\t});\n\t}\n\n\tonIdCardLocationChange = (value) => {\n\t\tconst tradingFloor = this.state.tradingFloorList.find((m) => m.locationId == value);\n\t\tthis.setState({ idCardLocationId: value, originMarketId: tradingFloor.id, originMarketName: tradingFloor.name });\n\t};\n\n\tonSubmit = async () => {\n\t\tPopup.spin.show();\n\t\tconst res = await ProfileService.submit({\n\t\t\tfullName: this.state.fullName,\n\t\t\tphoneNumber: this.state.phoneNumber,\n\t\t\temail: this.state.email,\n\t\t\tpassword: this.state.password,\n\t\t\tconfirmPassword: this.state.confirmPassword,\n\t\t\tfileList: this.state.fileList,\n\t\t\tverificationCode: this.state.verificationCode,\n\t\t});\n\t\tPopup.spin.hide();\n\n\t\tconst newState = {\n\t\t\tmsgs: res.msgs,\n\t\t};\n\n\t\tif (res.success) {\n\t\t\tCurrentUserService.checkUser();\n\t\t\tPopup.info({ autoClose: true });\n\n\t\t\tnewState.verificationCode = \"\";\n\t\t}\n\n\t\tthis.setState(newState);\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t

    Thông tin thành viên

    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    Thông tin cơ bản
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({ email: event.target.value });\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({ fullName: event.target.value });\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({ phoneNumber: event.target.value });\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({ password: event.target.value });\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({ confirmPassword: event.target.value });\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t- Mật khẩu ít nhất 8 ký tự\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t- Phải có CHỮ HOA, chữ thường, con số\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t- Và các ký tự đặc biệt: ! @, #, $, %, ^, &, *
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{this.state.hasVerificationCode && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t
    Mã xác thực
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t this.setState({ verificationCode: value })}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    Hình ảnh đại diện
    \n\t\t\t\t\t\t\t\t this.setState({ fileList: value })} />\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\r\nimport { Row, Col, Input, Button, Select } from \"antd\";\r\n\r\nimport { Popup, Msg } from \"../../common/component\";\r\nimport VerificationCode from '../user/verificationCode';\r\n\r\nimport { BankService } from \"./userService\";\r\n\r\nexport default class Bank extends Component {\r\n\tstate = {\r\n\t\tvalue: null,\r\n\t\tmsgs: [],\r\n\t\titemList: [],\r\n\t\tbankId: null,\r\n\t\tbankBranch: null,\r\n\t\tbankAccountName: null,\r\n\t\tbankAccountNumber: null,\r\n\t\tverificationCode: \"\",\r\n\t};\r\n\r\n\tcomponentDidMount() {\r\n\t\tPopup.spin.show();\r\n\t\tBankService.init().then((res) => {\r\n\t\t\tif (res) {\r\n\t\t\t\tthis.setState({ \r\n\t\t\t\t\tbankId: res.bankId, \r\n\t\t\t\t\tbankBranch: res.bankBranch, \r\n\t\t\t\t\tbankAccountName: res.bankAccountName, \r\n\t\t\t\t\tbankAccountNumber: res.bankAccountNumber, \r\n\t\t\t\t\titemList: res.itemList,\r\n\t\t\t\t\thasVerificationCode: res.hasVerificationCode,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tPopup.spin.hide();\r\n\t\t});\r\n\t}\r\n\r\n\tonSubmit = async () => {\r\n\t\tPopup.spin.show();\r\n\t\tconst res = await BankService.submit({\r\n\t\t\tbankId: parseInt(this.state.bankId),\r\n\t\t\tbankBranch: this.state.bankBranch,\r\n\t\t\tbankAccountName: this.state.bankAccountName,\r\n\t\t\tbankAccountNumber: this.state.bankAccountNumber,\r\n\t\t\tverificationCode: this.state.verificationCode,\r\n\t\t});\r\n\t\tPopup.spin.hide();\r\n\r\n\t\tconst newState = {\r\n\t\t\tmsgs: res.msgs,\r\n\t\t};\r\n\r\n\t\tif (res.success) {\r\n\t\t\tPopup.info({ autoClose: true });\r\n\r\n\t\t\tnewState.verificationCode = \"\";\r\n\t\t}\r\n\r\n\t\tthis.setState(newState);\r\n\t};\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t

    Tài khoản ngân hàng

    \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}\r\n\t\t\t\t\t\t\t\t\tvalue={this.state.bankId}\r\n\t\t\t\t\t\t\t\t\tonChange={(value) => this.setState({ bankId: value })}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{this.state.itemList &&\r\n\t\t\t\t\t\t\t\t\t\tthis.state.itemList.map((item) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{item.name}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\tthis.setState({ bankBranch: event.target.value });\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\t\t\t\t\tbankAccountName: event.target.value,\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\t\t\t\t\tbankAccountNumber: event.target.value,\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{this.state.hasVerificationCode && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t this.setState({ verificationCode: value })} />\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t);\r\n\t}\r\n}\r\n","import React, { Component } from \"react\";\nimport { Row, Col, Input, Button, Select, Switch } from \"antd\";\n\nimport OwlCarousel from \"react-owl-carousel2\";\n\nimport { Popup, Msg } from \"../../common/component\";\nimport { Format } from \"../../common/format\";\n\nimport VerificationCode from \"./verificationCode\";\nimport { RegisterService, RepositoryService } from \"./userService\";\n\nexport default class Register extends Component {\n\tdefaultState = () => ({\n\t\tmsgs: [],\n\t\tmemberTypeList: [],\n\t\tstateProvinceList: [],\n\t\ttradingFloorList: [],\n\t\tsponsorInfo: null,\n\t\toriginMarketName: null,\n\t\tmemberTypeId: null,\n\t\tuserName: null,\n\t\temail: null,\n\t\tfullName: null,\n\t\tphoneNumber: null,\n\t\tpassword: null,\n\t\tconfirmPassword: null,\n\t\tsponsorName: null,\n\t\tidCardNumber: null,\n\t\tidCardLocationId: null,\n\t\toriginMarketId: null,\n\t\ttradingMarketId: null,\n\t\tisCompany: null,\n\t\tverificationCode: null,\n\t});\n\n\tmemverTypeOptions = {\n\t\tmargin: 16,\n\t\tautoWidth: true,\n\t\tdots: false,\n\t\tnav: true,\n\t\tnavText: ['', ''],\n\t\trewind: true,\n\t\tsmartSpeed: 500,\n\t};\n\n\tstate = this.defaultState();\n\n\tinit = () => {\n\t\tPopup.spin.show();\n\t\tRegisterService.init({ id: this.props.id }).then((res) => {\n\t\t\tif (res) {\n\t\t\t\tthis.setState({\n\t\t\t\t\thasVerificationCode: res.hasVerificationCode,\n\t\t\t\t\tisSponsor: res.isSponsor,\n\t\t\t\t\tmemberTypeList: res.memberTypeList,\n\t\t\t\t\tstateProvinceList: res.stateProvinceList,\n\t\t\t\t\ttradingFloorList: res.tradingFloorList,\n\t\t\t\t});\n\t\t\t}\n\t\t\tPopup.spin.hide();\n\t\t});\n\t};\n\n\tcomponentDidMount() {\n\t\tthis.init();\n\t}\n\n\tonSponsorCheck = (sponsorName) => {\n\t\tthis.setState({ sponsorName: sponsorName, isSponsorCheck: true });\n\n\t\tclearTimeout(this.sponsorCheckHandle);\n\t\tthis.sponsorCheckHandle = setTimeout(() => this.sponsorCheck(), 800);\n\t};\n\n\tsponsorCheck = () => {\n\t\tRepositoryService.userCheck({ userName: this.state.sponsorName }).then((res) => {\n\t\t\tvar msgs = this.state.msgs;\n\t\t\tvar sponsorInfo = null;\n\t\t\tif (res.success) {\n\t\t\t\tmsgs = msgs.filter((item) => item.target !== \"userCheck\");\n\t\t\t\tsponsorInfo = res.data;\n\t\t\t} else if (msgs.indexOf((item) => item.target === \"userCheck\") < 0) msgs.push(res.msgs[0]);\n\n\t\t\tthis.setState({ isSponsorCheck: false, msgs, sponsorInfo });\n\t\t});\n\t};\n\n\tonIdCardLocationChange = (value) => {\n\t\tconst tradingFloor = this.state.tradingFloorList.find((m) => m.locationId == value);\n\t\tthis.setState({ idCardLocationId: value, originMarketId: tradingFloor.id, originMarketName: tradingFloor.name });\n\t};\n\n\tonSubmit = async () => {\n\t\tPopup.spin.show();\n\t\tconst res = await RegisterService.submit({\n\t\t\tmemberTypeId: this.state.memberTypeId,\n\t\t\tuserName: this.state.userName,\n\t\t\t// email: this.state.email,\n\t\t\tfullName: this.state.fullName,\n\t\t\t// phoneNumber: this.state.phoneNumber,\n\t\t\t// password: this.state.password,\n\t\t\t// confirmPassword: this.state.confirmPassword,\n\t\t\tsponsorName: this.state.sponsorName,\n\t\t\t// idCardNumber: this.state.idCardNumber,\n\t\t\t// idCardLocationId: parseInt(this.state.idCardLocationId),\n\t\t\t// originMarketId: this.state.originMarketId,\n\t\t\t// tradingMarketId: parseInt(this.state.tradingMarketId),\n\t\t\t// email: this.state.userName + \"@domain.com\",\n\t\t\t// fullName: this.state.userName,\n\t\t\temail: \"info@helpbank.vn\",\n\t\t\tphoneNumber: \"-----\",\n\t\t\tpassword: \"123@Helpbank\",\n\t\t\tconfirmPassword: \"123@Helpbank\",\n\t\t\t// sponsorName: \"SGD-HCM\",\n\t\t\tidCardNumber: \"-----\",\n\t\t\tidCardLocationId: 79,\n\t\t\toriginMarketId: 18,\n\t\t\ttradingMarketId: 18,\n\t\t\tisCompany: this.state.isCompany,\n\t\t\tverificationCode: this.state.verificationCode,\n\t\t});\n\t\tPopup.spin.hide();\n\t\tif (res.success) {\n\t\t\tthis.setState(this.defaultState());\n\t\t\tthis.init();\n\t\t\tPopup.info({ autoClose: true });\n\t\t} else this.setState({ msgs: res.msgs });\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t

    Đăng ký

    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Thông tin cơ bản
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tthis.setState({ userName: event.target.value });\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tthis.setState({ email: event.target.value });\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tthis.setState({ fullName: event.target.value });\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tthis.setState({ phoneNumber: event.target.value });\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tthis.setState({ password: event.target.value });\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tthis.setState({ confirmPassword: event.target.value });\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t- Mật khẩu ít nhất 8 ký tự\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t- Phải có CHỮ HOA, chữ thường, con số\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t- Và các ký tự đặc biệt: ! @, #, $, %, ^, &, *
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t this.onSponsorCheck(value)}\n\t\t\t\t\t\t\t\t\tloading={this.state.isSponsorCheck}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{this.state.sponsorInfo &&
    Sponsor \"{this.state.sponsorInfo.userName}\" is valid
    }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport { Row, Col, Tag, Input, Select, DatePicker, Pagination, Menu, Dropdown, Switch } from \"antd\";\n\nimport { Locale } from \"../../common/locale\";\nimport { Format } from \"../../common/format\";\nimport { Popup } from \"../../common/component\";\n\nimport { UserManageService, LoginToUserService, LoginService } from \"./userService\";\nimport { FileService } from \"../file/fileService\";\n\nexport default class UserManage extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tmemberTypeList: [],\n\t\t\titemList: [],\n\t\t\tpageIndex: 1,\n\t\t\tpageSize: 20,\n\t\t\ttotalPages: 0,\n\t\t\ttotalItems: 0,\n\t\t\tkeyword: null,\n\t\t\tdateFrom: null,\n\t\t\tdateTo: null,\n\t\t\tmemberTypeId: null,\n\t\t\torderBy: \"dateCreatedDec\",\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tUserManageService.init().then((res) => {\n\t\t\tif (res.success) {\n\t\t\t\tthis.setState({ memberTypeList: res.memberTypeList });\n\t\t\t}\n\t\t});\n\t\tthis.getList();\n\t}\n\n\tgetList = () => {\n\t\tPopup.spin.show();\n\t\tUserManageService.getList({\n\t\t\tkeyword: this.state.keyword,\n\t\t\tisBanned: this.state.isBanned,\n\t\t\tdateFrom: this.state.dateFrom,\n\t\t\tdateTo: this.state.dateTo,\n\t\t\tmemberTypeId: this.state.memberTypeId,\n\t\t\torderBy: this.state.orderBy,\n\t\t\tpageIndex: this.state.pageIndex,\n\t\t}).then((res) => {\n\t\t\tif (res.success)\n\t\t\t\tthis.setState({\n\t\t\t\t\titemList: res.itemList,\n\t\t\t\t\tpageIndex: res.pageIndex,\n\t\t\t\t\ttotalPages: res.totalPages,\n\t\t\t\t\ttotalItems: res.totalItems,\n\t\t\t\t\tpageSize: res.pageSize,\n\t\t\t\t});\n\t\t\tPopup.spin.hide();\n\t\t});\n\t};\n\n\tbanItem = (item) => {\n\t\tPopup.spin.show();\n\t\tUserManageService.ban(item.id).then((res) => {\n\t\t\tPopup.spin.hide();\n\n\t\t\tthis.getList();\n\t\t});\n\t};\n\n\tonBanItem = (item) => {\n\t\tPopup.confirm({\n\t\t\ttitle: Locale.getText(item.isBanned ? \"common.remove_ban_confirm\" : \"common.ban_confirm\"),\n\t\t\tcontent: item.userName,\n\t\t\tonOk: () => this.banItem(item),\n\t\t});\n\t};\n\n\tloginToUser = async (item) => {\n\t\tPopup.spin.show();\n\t\tconst res = await LoginToUserService.login({ userId: item.id });\n\t\tPopup.spin.hide();\n\n\t\tif (res.success) {\n\t\t\tLoginService.tokenSet(res.data);\n\t\t\twindow.location = \"/office\";\n\t\t}\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t

    Quản lý thành viên

    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ keyword: value })}\n\t\t\t\t\t\t\tonSearch={() => this.getList()}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ dateFrom: value ? value.format(\"YYYY-MM-DD\") : null }, () => this.getList())}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ dateTo: value ? value.format(\"YYYY-MM-DD\") : null }, () => this.getList())}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ memberTypeId: value }, () => this.getList())}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{this.state.memberTypeList.map((item) => (\n\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ isBanned: value }, () => this.getList())} /> Bị cấm\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{this.state.totalItems} Thành viên\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ orderBy: value }, () => this.getList())}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tMới nhất\n\t\t\t\t\t\t\tCũ nhất\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ pageIndex: value }, () => this.getList())}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
    1. Ảnh
    2. \n\t\t\t\t\t\t\t
    3. Thành viên
    4. \n\t\t\t\t\t\t\t
    5. Tham gia
    6. \n\t\t\t\t\t\t\t
    7. Giới thiệu
    8. \n\t\t\t\t\t\t\t
    9. HelpPay
    10. \n\t\t\t\t\t\t\t
    11. HelpBank
    12. \n\t\t\t\t\t\t\t
    13. Dịch vụ
    14. \n\t\t\t\t\t\t\t
    15. Nhóm
    16. \n\t\t\t\t\t\t\t
    17. \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{this.state.itemList.map((item) => (\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t this.loginToUser(item)}>\n\t\t\t\t\t\t\t\t\t\t{item.userName}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t{item.isBanned && Cấm}\n\t\t\t\t\t\t\t\t\t{item.isSponsor && Tài trợ}\n\t\t\t\t\t\t\t\t\t{item.isCompany && Công ty}\n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t{item.fullName}\n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t{item.email}\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t{item.dateCreated && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t{Format.date(new Date(item.dateCreated))}\n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t{Format.time(new Date(item.dateCreated))}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t{item.sponsor && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{item.sponsor.userName}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t{item.sponsor.fullName}\n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t{item.sponsor.email}\n\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t
    • {Format.number(item.primaryWallet)}
    • \n\t\t\t\t\t\t\t\t
    • {Format.number(item.secondaryWallet)}
    • \n\t\t\t\t\t\t\t\t
    • {Format.number(item.fundWallet)}
    • \n\t\t\t\t\t\t\t\t
    • {Format.number(item.groupWallet)}
    • \n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t this.onBanItem(item)}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.isBanned ? \"Gỡ cấm\" : \"Cấm\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t e.preventDefault()}>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t))}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ pageIndex: value }, () => this.getList())}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport { Row, Col, Tooltip, Button } from \"antd\";\n\nimport { Popup } from \"../../common/component\";\nimport { Format } from \"../../common/format\";\nimport { FileService } from \"../file/fileService\";\n\nimport { MemberGroupService } from \"./userService\";\n\nexport default class MemberGroup extends Component {\n\tstate = {\n\t\tmemberList: [],\n\t\tgroup: {},\n\t};\n\n\tcomponentDidMount() {\n\t\tPopup.spin.show();\n\t\tMemberGroupService.init().then((res) => {\n\t\t\tif (res) {\n\t\t\t\tif (!res.memberList) res.memberList = [];\n\n\t\t\t\tlet mainMemberList = res.memberList.filter((item) => item.memberTypeId !== res.subMemberTypeId);\n\t\t\t\tconst mainMemberListLength = mainMemberList.length;\n\t\t\t\tfor (let i = 0; i < 30 - mainMemberListLength; i++) mainMemberList.push({});\n\t\t\t\tlet mainGroup_1 = {\n\t\t\t\t\tgroup: res.group\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t...res.group,\n\t\t\t\t\t\t\t\tsubMemberTypeSymbol: res.subMemberTypeSymbol,\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: null,\n\t\t\t\t\tmemberList: mainMemberList.filter((item, index) => index < 10),\n\t\t\t\t\titemHeight: 40,\n\t\t\t\t\tmaxItem: 10,\n\t\t\t\t\tmaxRadius: 110,\n\t\t\t\t\tminRadius: 110,\n\t\t\t\t\tclassName: \"group_1\",\n\t\t\t\t};\n\n\t\t\t\tlet mainGroup_2 = {\n\t\t\t\t\tmemberList: mainMemberList.filter((item, index) => index >= 10),\n\t\t\t\t\titemHeight: 40,\n\t\t\t\t\tmaxItem: 20,\n\t\t\t\t\tmaxRadius: 180,\n\t\t\t\t\tminRadius: 180,\n\t\t\t\t\tclassName: \"group_1\",\n\t\t\t\t};\n\n\t\t\t\tlet subMemberList = res.memberList.filter((item) => item.memberTypeId === res.subMemberTypeId);\n\t\t\t\tconst subMemberListLength = subMemberList.length;\n\t\t\t\tfor (let i = 0; i < 60 - subMemberListLength; i++) subMemberList.push({});\n\t\t\t\tlet mainGroup_3 = {\n\t\t\t\t\tmemberList: subMemberList,\n\t\t\t\t\tmaxItem: 60,\n\t\t\t\t\tmaxRadius: 320,\n\t\t\t\t\tminRadius: 320,\n\t\t\t\t\tclassName: \"group_2\",\n\t\t\t\t};\n\n\t\t\t\tthis.setState({ group: res.group, mainGroup_1, mainGroup_2, mainGroup_3 });\n\t\t\t}\n\t\t\tPopup.spin.hide();\n\t\t});\n\t}\n\n\tdrawCircle = (option) => {\n\t\tif (!option || !option.memberList) return;\n\n\t\tlet config = {\n\t\t\tgroup: option.group,\n\t\t\tmemberList: option.memberList,\n\t\t\titemHeight: option.itemHeight ? option.itemHeight : 24,\n\t\t\tmaxItem: option.maxItem ? option.maxItem : 200,\n\t\t\tmaxDeg: 360,\n\t\t\tstartDeg: 90,\n\t\t\tmaxRadius: option.maxRadius ? option.maxRadius : 260,\n\t\t\tminRadius: option.minRadius ? option.minRadius : 150,\n\t\t\titemRadius: 0,\n\t\t\tgroupHeight: option.groupHeight ? option.groupHeight : 0,\n\t\t\tclassName: option.className,\n\t\t\tpadding: 30,\n\t\t};\n\n\t\t// const degStep = config.maxDeg / config.memberList.length;\n\t\tconst degStep = config.maxDeg / config.maxItem;\n\n\t\tconfig.itemRadius = (config.maxRadius / config.maxItem) * config.memberList.length;\n\t\tif (config.itemRadius < config.minRadius) config.itemRadius = config.minRadius;\n\n\t\tif (!config.groupHeight) config.groupHeight = config.itemRadius * 2 + config.itemHeight + config.padding;\n\n\t\tfor (let i = 0; i < config.memberList.length; i++) {\n\t\t\tlet item = config.memberList[i];\n\t\t\titem.deg = degStep * i + config.startDeg;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{config.group && (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{config.group.name &&
    {config.group.mainMemberCount + \" \" + config.group.name}
    }\n\t\t\t\t\t\t\t\t\t
    {config.group.subMemberCount + \" \" + config.group.subMemberTypeSymbol}
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{config.memberList.map((item, index) => (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{item.userName ? (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{item.fullName}
    } color=\"#fff\">\n\t\t\t\t\t\t\t\t\t\t\t{item.imageId ? (\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t))}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t
    • Nhóm của bạn
    • \n\t\t\t\t\t
    • Nhóm bạn quản lý
    • \n\t\t\t\t\t
    • Chat nhóm
    • \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{this.state.group && (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    Nhóm {this.state.group.name}
    \n\t\t\t\t\t\t\t\t
    TK nhóm: 0
    \n\t\t\t\t\t\t\t\t
    Đồng hưởng nhóm: 0
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    Top 03 thu nhập tháng 07/2020
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{[1, 2, 3].map((item) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    Thành viênThu nhập hiện tạiThu nhập nhóm
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tĐang cập nhật\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    Top 03 quản lý nhóm
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{[1, 2, 3].map((item) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    Thành viênThu nhập 06/2020Thu nhập
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tĐang cập nhật\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{this.drawCircle(this.state.mainGroup_3)}\n\t\t\t\t\t\t\t\t{this.drawCircle(this.state.mainGroup_2)}\n\t\t\t\t\t\t\t\t{this.drawCircle(this.state.mainGroup_1)}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    Lịch sử thu nhập nhóm
    \n\t\t\t\t\t
    Đang cập nhật
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport { Row, Col, Tag, Input, Select, DatePicker, Pagination, Menu, Dropdown, Switch } from \"antd\";\n\nimport { Locale } from \"../../common/locale\";\nimport { Format } from \"../../common/format\";\nimport { Popup } from \"../../common/component\";\n\nimport { UserSponsorListService } from \"./userService\";\nimport { FileService } from \"../file/fileService\";\n\nexport default class UserSponsorList extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tmemberTypeList: [],\n\t\t\titemList: [],\n\t\t\tpageIndex: 1,\n\t\t\tpageSize: 20,\n\t\t\ttotalPages: 0,\n\t\t\ttotalItems: 0,\n\t\t\tkeyword: null,\n\t\t\tdateFrom: null,\n\t\t\tdateTo: null,\n\t\t\tmemberTypeId: null,\n\t\t\torderBy: \"dateCreatedDec\",\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tUserSponsorListService.init().then((res) => {\n\t\t\tif (res.success) {\n\t\t\t\tthis.setState({ memberTypeList: res.memberTypeList });\n\t\t\t}\n\t\t});\n\t\tthis.getList();\n\t}\n\n\tgetList = () => {\n\t\tPopup.spin.show();\n\t\tUserSponsorListService.getList({\n\t\t\tkeyword: this.state.keyword,\n\t\t\tisBanned: this.state.isBanned,\n\t\t\tdateFrom: this.state.dateFrom,\n\t\t\tdateTo: this.state.dateTo,\n\t\t\tmemberTypeId: this.state.memberTypeId,\n\t\t\torderBy: this.state.orderBy,\n\t\t\tpageIndex: this.state.pageIndex,\n\t\t}).then((res) => {\n\t\t\tif (res.success)\n\t\t\t\tthis.setState({\n\t\t\t\t\titemList: res.itemList,\n\t\t\t\t\tpageIndex: res.pageIndex,\n\t\t\t\t\ttotalPages: res.totalPages,\n\t\t\t\t\ttotalItems: res.totalItems,\n\t\t\t\t\tpageSize: res.pageSize,\n\t\t\t\t});\n\t\t\tPopup.spin.hide();\n\t\t});\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t

    Thành viên hỗ trợ

    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ keyword: value })}\n\t\t\t\t\t\t\tonSearch={() => this.getList()}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ dateFrom: value ? value.format(\"YYYY-MM-DD\") : null }, () => this.getList())}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ dateTo: value ? value.format(\"YYYY-MM-DD\") : null }, () => this.getList())}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ memberTypeId: value }, () => this.getList())}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{this.state.memberTypeList.map((item) => (\n\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{this.state.totalItems} Thành viên\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ orderBy: value }, () => this.getList())}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tMới nhất\n\t\t\t\t\t\t\tCũ nhất\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ pageIndex: value }, () => this.getList())}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
    1. Ảnh
    2. \n\t\t\t\t\t\t\t
    3. Thành viên
    4. \n\t\t\t\t\t\t\t
    5. Email / Điện thoại
    6. \n\t\t\t\t\t\t\t
    7. Tham gia
    8. \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{this.state.itemList.map((item) => (\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t this.loginToUser(item)}>\n\t\t\t\t\t\t\t\t\t\t{item.userName}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t{item.fullName}\n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t{item.email && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t {item.email}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t{item.phoneNumber && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t {item.phoneNumber}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t{item.dateCreated && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t{Format.date(new Date(item.dateCreated))}\n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t{Format.time(new Date(item.dateCreated))}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t))}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ pageIndex: value }, () => this.getList())}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n}\n","import * as Service from \"../../common/serviceHelper\";\n\nexport const DepositService = {\n\tinit: async () => await Service.get(\"api/wallet/deposit/init\"),\n\tgetList: async (param) => await Service.get(\"api/wallet/deposit/getList\", param),\n};\n\nexport const TransferService = {\n\tinit: async () => await Service.get(\"api/wallet/transfer/init\"),\n\tsubmit: async (param) => await Service.post(\"api/wallet/transfer/submit\", param),\n};\n\nexport const WithdrawService = {\n\tinit: async () => await Service.get(\"api/wallet/withdraw/init\"),\n\tsubmit: async (param) => await Service.post(\"api/wallet/withdraw/submit\", param),\n\tgetList: async (param) => await Service.get(\"api/wallet/withdraw/getList\", param),\n};\n","import React, { Component } from \"react\";\nimport { Row, Col, Input, Button, Select, Pagination, Radio } from \"antd\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\n\nimport { Popup, Msg, InputNumber, NumberFormat } from \"../../common/component\";\nimport { Format } from \"../../common/format\";\nimport VerificationCode from \"../user/verificationCode\";\n\nimport { CurrentUserService } from \"../user/currentUserService\";\nimport { WithdrawService } from \"./walletService\";\n\nexport default class Withdraw extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = this.defaultState();\n\t}\n\n\tdefaultState = () => ({\n\t\tuserCurrent: CurrentUserService.getUser(),\n\t\tvalue: null,\n\t\tverificationCode: \"\",\n\t\tmsgs: [],\n\t\tfeeVND: 0,\n\t\titemList: [],\n\t\tbankList:[],\t\n\t\tpageIndex: 1,\n\t\ttotalPages: 0,\n\t\ttotalItems: 0,\n\t\tpageSize: 20,\n\t\tbankId: null,\n\t\tbankBranch: null,\n\t\tbankAccountName: null,\n\t\tbankAccountNumber: null,\n\t\tkeyword: null,\n\t\tdateFrom: null,\n\t\tdateTo: null,\n\t\tstatusId: null,\n\t\torderBy: \"dateCreatedDec\",\t\t\n\t})\n\n\tinit = () => {\n\t\tPopup.spin.show();\n\t\tWithdrawService.init().then((res) => {\n\t\t\tif (res) {\n\t\t\t\tthis.setState({\n\t\t\t\t\twalletList: res.walletList,\n\t\t\t\t\twallet: res.walletList[0].id,\n\t\t\t\t\tbankList: res.bankList,\n\t\t\t\t\tbankId: res.userInfo.bankId,\n\t\t\t\t\tbankBranch: res.userInfo.bankBranch,\n\t\t\t\t\tbankAccountName: res.userInfo.bankAccountName,\n\t\t\t\t\tbankAccountNumber: res.userInfo.bankAccountNumber,\n\t\t\t\t\tfee: res.fee,\n\t\t\t\t\tmin: res.min,\n\t\t\t\t});\n\t\t\t}\n\t\t\tPopup.spin.hide();\n\t\t});\n\n\t\tthis.getList();\n\t};\n\n\tcomponentDidMount() {\n\t\tthis.init();\n\t}\n\n\tonValueChange = (value) => {\n\t\tif (!value) value = 0;\n\t\tlet feeVND = (value * this.state.fee) / 100;\n\t\tthis.setState({\n\t\t\tvalue: value > 0 ? value : null,\n\t\t\tfeeVND: Format.number(feeVND),\n\t\t});\n\t};\n\n\tonSubmit = async () => {\n\t\tPopup.spin.show();\n\t\tconst res = await WithdrawService.submit({\n\t\t\tvalue: this.state.value,\n\t\t\tverificationCode: this.state.verificationCode,\n\t\t\tbankId: this.state.bankId,\n\t\t\tbankBranch: this.state.bankBranch,\n\t\t\tbankAccountName: this.state.bankAccountName,\n\t\t\tbankAccountNumber: this.state.bankAccountNumber,\n\t\t});\n\t\tPopup.spin.hide();\n\t\tif (res.success) {\n\t\t\tPopup.info({ autoClose: true });\n\t\t\tthis.setState(this.defaultState());\n\t\t\tthis.init();\n\t\t} else this.setState({ msgs: res.msgs });\n\t};\n\n\tgetList = () => {\n\t\tconst isMounted = this.updater.isMounted(this);\n\t\tif (isMounted === false) return;\n\n\t\tPopup.spin.show();\n\t\tWithdrawService.getList({\n\t\t\tstatusId: this.state.statusId,\n\t\t\tdateFrom: this.state.dateFrom,\n\t\t\tdateTo: this.state.dateTo,\n\t\t\torderBy: this.state.orderBy,\n\t\t\tpageIndex: this.state.pageIndex,\n\t\t}).then((res) => {\n\t\t\tif (res.success && isMounted)\n\t\t\t\tthis.setState({\n\t\t\t\t\titemList: res.itemList,\n\t\t\t\t\tpageIndex: res.pageIndex,\n\t\t\t\t\tpageSize: res.pageSize,\n\t\t\t\t\ttotalPages: res.totalPages,\n\t\t\t\t\ttotalItems: res.totalItems,\n\t\t\t\t});\n\t\t\tPopup.spin.hide();\n\n\t\t\tif (isMounted) setTimeout(this.getList, 1000000);\n\t\t});\n\t};\n\n\tonChangeStatus = (e) => {\n\t\tthis.setState({statusId: e.target.value},\n\t\t\t() => this.getList()\n\t\t)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t

    Rút tiền

    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t this.onValueChange(result.floatValue)}/>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tGiá trị nhận tối thiểu: {this.state.min}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tPhí ({this.state.fee}%): {this.state.feeVND}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{this.state.hasVerificationCode && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t this.setState({ verificationCode: value, })}/>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}\n\t\t\t\t\t\t\t\t\t\t\tvalue={this.state.bankId}\n\t\t\t\t\t\t\t\t\t\t\tonChange={(value) => this.setState({ bankId: value })}>\n\t\t\t\t\t\t\t\t\t\t\t\t{this.state.bankList &&\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.state.bankList.map((item) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({ bankBranch: event.target.value });\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbankAccountName: event.target.value,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}}/>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t\tbankAccountNumber: event.target.value,\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{this.state.hasVerificationCode && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t this.setState({ verificationCode: value })} />\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tLịch sử rút tiền - {this.state.totalItems} giao dịch\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tTất Cả\n\t\t\t\t\t\t\t\tChờ Xử Lý\n\t\t\t\t\t\t\t\tĐang Xử Lý\n\t\t\t\t\t\t\t\tHoàn Tất\n\t\t\t\t\t\t\t\tHủy Bỏ\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tthis.setState({ orderBy: value }, () =>\n\t\t\t\t\t\t\t\t\t\tthis.getList()\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tMới nhất\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tCũ nhất\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tthis.setState({ pageIndex: value }, () =>\n\t\t\t\t\t\t\t\t\t\tthis.getList()\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
    1. Ngày
    2. \n\t\t\t\t\t\t\t\t{ this.state.userCurrent.isAdmin && (\n\t\t\t\t\t\t\t\t\t
    3. Thành viên
    4. \n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
    5. Giá trị nhận
    6. \n\t\t\t\t\t\t\t\t
    7. Thụ hưởng
    8. \n\t\t\t\t\t\t\t\t
    9. Ngân hàng
    10. \n\t\t\t\t\t\t\t\t
    11. Trạng thái
    12. \n\t\t\t\t\t\t\t\t
    13. Thao tác
    14. \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{this.state.itemList.map((item) => (\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t{Format.date(new Date(item.dateCreated))}{\" \"}\n\t\t\t\t\t\t\t\t\t\t{Format.time(new Date(item.dateCreated))}\n\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t{ this.state.userCurrent.isAdmin && (\n\t\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t\t {}}>{item.userName}\n\t\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t
      {Format.number(item.receiveValue)} VND
      \n\t\t\t\t\t\t\t\t\t\t
      ({Format.number(item.fees)} - {this.state.fee}%)
      \n\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t
      {item.bankAccountNumber}
      \n\t\t\t\t\t\t\t\t\t\t
      {item.bankAccountName}
      \n\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t
      {item.bankName}
      \n\t\t\t\t\t\t\t\t\t\t{item.bankBranch}\n\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t{item.statusName}\n\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => console.log(\"Huy\")}>\n\t\t\t\t\t\t\t\t\t\t\tHủy bỏ\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tthis.setState({ pageIndex: value }, () =>\n\t\t\t\t\t\t\t\t\t\tthis.getList()\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport { Row, Col, Input, Button, Select } from 'antd';\n\nimport { Popup, Msg, InputNumber, NumberFormat } from '../../common/component';\nimport VerificationCode from '../user/verificationCode';\nimport { RepositoryService } from \"../user/userService\";\n\nimport { TransferService } from \"./walletService\";\n\nexport default class Transfer extends Component {\n\tdefaultState = () => ({\n\t\tvalue: null,\n\t\tuserName: null,\n\t\tuserInfo: null,\n\t\tnote: null,\n\t\tverificationCode: \"\",\n\t\tmsgs: [],\n\t})\n\n\tstate = this.defaultState();\n\n\tcomponentDidMount() {\n\t\tPopup.spin.show();\n\t\tTransferService.init().then(res => {\n\t\t\tif (res) { \n\t\t\t\tthis.setState({ walletList: res.walletList, wallet: res.walletList[0].id });\n\t\t\t}\n\t\t\tPopup.spin.hide();\n\t\t});\n\t}\n\n\tonSubmit = async () => {\n\t\tPopup.spin.show();\n\t\tconst res = await TransferService.submit({\n\t\t\twallet: this.state.wallet,\n\t\t\tvalue: this.state.value,\n\t\t\tuserName: this.state.userName,\n\t\t\tnote: this.state.note,\n\t\t\tverificationCode: this.state.verificationCode,\n\t\t});\n\t\tPopup.spin.hide();\n\t\tif (res.success) {\n\t\t\tthis.setState(this.defaultState());\n\t\t\tPopup.info({ autoClose: true });\n\t\t} else\n\t\t\tthis.setState({ msgs: res.msgs });\n\t}\n\n\tonUserCheck = userName => {\n\t\tthis.setState({ userName: userName, isUserCheck: true });\n\n\t\tclearTimeout(this.userCheckHandle);\n\t\tthis.userCheckHandle = setTimeout(() => this.userCheck(), 800);\n\t}\n\n\tuserCheck = () => {\n\t\tRepositoryService.userCheck({ userName: this.state.userName, notCurrent: true }).then(res => {\n\t\t\tvar msgs = this.state.msgs;\n\t\t\tvar userInfo = null;\n\t\t\tif (res.success) {\n\t\t\t\tmsgs = msgs.filter(item => item.target !== \"userCheck\");\n\t\t\t\tuserInfo = res.data;\n\t\t\t}\n\t\t\telse\n\t\t\t\tif (msgs.indexOf(item => item.target === \"userCheck\") < 0)\n\t\t\t\t\tmsgs.push(res.msgs[0]);\n\n\t\t\tthis.setState({ isUserCheck: false, msgs, userInfo });\n\t\t});\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t

    Transfer

    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t this.setState({ value: result.floatValue })}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonChange={({ target: { value } }) => this.onUserCheck(value)}\n\t\t\t\t\t\t\t\t\tloading={this.state.isUserCheck}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{this.state.userInfo &&\n\t\t\t\t\t\t\t\t\t
    Member \"{this.state.userInfo.userName}\" is valid
    \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t this.setState({ note: value })}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t this.setState({ verificationCode: value })} />\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}","import React, { Component } from \"react\";\nimport { Route, Switch } from \"react-router\";\n\nimport * as Const from \"../../common/const\";\n\nimport { CurrentUserService } from \"../user/currentUserService\";\n\nimport Header from \"./header\";\nimport ContentManage from \"../content/contentManage\";\nimport ContentCategoryManage from \"../content/categoryManage\";\nimport ProductManage from \"../product/productManage\";\nimport BrandManage from \"../product/brandManage\";\nimport ColorManage from \"../product/colorManage\";\nimport CategoryManage from \"../product/categoryManage\";\nimport Orders from \"../product/orders\";\nimport Profile from \"../user/profile\";\nimport Bank from \"../user/bank\";\nimport Register from \"../user/register\";\nimport UserManage from \"../user/userManage\";\nimport MemberGroup from \"../user/memberGroup\";\nimport UserSponsorList from \"../user/userSponsorList\";\nimport Withdraw from \"../wallet/withdraw\";\nimport Transfer from \"../wallet/transfer\";\n\nexport default class Layout extends Component {\n\tstate = {\n\t\tisCurrentUser: false,\n\t};\n\n\tcomponentDidMount() {\n\t\tCurrentUserService.checkUser().then((res) => {\n\t\t\tif (res) this.setState({ isCurrentUser: true });\n\t\t\telse this.props.history.push(\"/login\");\n\t\t});\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\tthis.state.isCurrentUser && (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/* \n\t\t\t\t\t\t */}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t)\n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport { Link, } from \"react-router-dom\";\nimport { Affix, Input, Select, Row, Col, Dropdown, Menu } from \"antd\";\n\nimport * as Const from \"../../common/const\";\nimport * as TreeHelper from \"../../common/tree\";\n\nimport { MenuService as ContentMenuService, ContentURL } from \"../content/contentService\";\nimport { MenuService as ProductMenuService, ProductURL } from \"../product/productService\"\nimport { Format } from \"../../common/format\";\n\nexport default class MenuMain extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tcontentCategoryList: [],\n\t\t\tproductCategoryTree: [],\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tContentMenuService.categoryGetList({ parentId: Const.pageCategory, idList: Const.pageMainMenu }).then((res) => {\n\t\t\tif (!res.success) return;\n\n\t\t\tthis.setState({ contentCategoryList: res.itemList ? res.itemList : [] });\n\t\t});\n\n\t\tProductMenuService.categoryTree().then((res) => {\n\t\t\tif (!res.success) return;\n\n\t\t\tthis.setState({ productCategoryTree: TreeHelper.parseTree(res.itemList) });\n\t\t});\n\t}\n\n\trender() {\n\t\tconst { contentCategoryList, productCategoryTree } = this.state;\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\tTrang chủ\n\t\t\t\t\n\t\t\t\t{productCategoryTree.map((item_1) =>\n\t\t\t\t\titem_1.children.length > 0 ? (\n\t\t\t\t\t\t {item_1.children.map((item_2) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{item_2.title}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{item_1.title}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{item_1.title}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t{contentCategoryList.map((item) => (\n\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\n\t\t\t\t))}\n\t\t\t\t\n\t\t\t\t\tLiên hệ\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { Input, Select, Button, Row, Col } from 'antd';\nimport { Subject } from \"rxjs\";\n\nimport * as Const from \"../../common/const\";\nimport { InputNumber } from \"../../common/component\";\nimport { MinMaxToValue, MinMaxToText } from \"../../common/format\";\nimport { SearchBoxService, ProductURL } from \"../product/productService\";\n\nconst subject = new Subject();\nexport const searchBoxService = {\n\tsetParams: (params) => subject.next({ params: params }),\n\tvisible: (isVisible) => subject.next({ isVisible: isVisible }),\n\tgetObservable: () => subject.asObservable(),\n};\n\nclass SearchBox extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tisVisible: false,\n\t\t\tisDefault: true,\n\t\t\tkeyword: null,\n\t\t\tcategoryList: [],\n\t\t\tbrandList: [],\n\t\t\tcolorList: [],\n\t\t\twaistFilterList: Const.waistFilterList,\n\t\t\thipLineFilterList: Const.hipLineFilterList,\n\t\t\tthighFilterList: Const.thighFilterList,\n\t\t\tlegFilterList: Const.legFilterList,\n\t\t\tpipeFilterList: Const.pipeFilterList\n\t\t};\n\t}\n\n\tsetParam = (params) => {\n\t\tif (!params) {\n\t\t\tthis.setState({\n\t\t\t\tkeyword: null,\n\t\t\t\tcategoryId: undefined,\n\t\t\t\tbrandId: undefined,\n\t\t\t\tcolorId: undefined,\n\t\t\t\twaistSize: null,\n\t\t\t\thipLineSize: null,\n\t\t\t\tthighSize: null,\n\t\t\t\tlegSize: null,\n\t\t\t\tpipeSize: null\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst categoryId = parseInt(params.categoryId);\n\t\tconst brandId = parseInt(params.brandId);\n\t\tconst colorId = parseInt(params.colorId);\n\n\t\tlet waistText;\n\t\tif (params.waist && params.waist != 0) {\n\t\t\tconst waistFilter = this.state.waistFilterList.find((item) => item.value == params.waist);\n\t\t\tif (waistFilter) waistText = waistFilter.text;\n\t\t\telse {\n\t\t\t\tconst waistParse = params.waist.split(\"-\");\n\t\t\t\twaistText = MinMaxToText(waistParse[0], waistParse[1]);\n\t\t\t}\n\t\t}\n\n\t\tlet hipLineText;\n\t\tif (params.hipLine && params.hipLine != 0) {\n\t\t\tconst hipLineFilter = this.state.hipLineFilterList.find((item) => item.value == params.hipLine);\n\t\t\tif (hipLineFilter) hipLineText = hipLineFilter.text;\n\t\t\telse {\n\t\t\t\tconst hipLineParse = params.hipLine.split(\"-\");\n\t\t\t\thipLineText = MinMaxToText(hipLineParse[0], hipLineParse[1]);\n\t\t\t}\n\t\t}\n\n\t\tlet thighText;\n\t\tif (params.thigh && params.thigh != 0) {\n\t\t\tconst thighFilter = this.state.thighFilterList.find((item) => item.value == params.thigh);\n\t\t\tif (thighFilter) thighText = thighFilter.text;\n\t\t\telse {\n\t\t\t\tconst thighParse = params.thigh.split(\"-\");\n\t\t\t\tthighText = MinMaxToText(thighParse[0], thighParse[1]);\n\t\t\t}\n\t\t}\n\n\t\tlet legText;\n\t\tif (params.leg && params.leg != 0) {\n\t\t\tconst legFilter = this.state.legFilterList.find((item) => item.value == params.leg);\n\t\t\tif (legFilter) legText = legFilter.text;\n\t\t\telse {\n\t\t\t\tconst legParse = params.leg.split(\"-\");\n\t\t\t\tlegText = MinMaxToText(legParse[0], legParse[1]);\n\t\t\t}\n\t\t}\n\n\t\tlet pipeText;\n\t\tif (params.pipe && params.pipe != 0) {\n\t\t\tconst pipeFilter = this.state.pipeFilterList.find((item) => item.value == params.pipe);\n\t\t\tif (pipeFilter) pipeText = pipeFilter.text;\n\t\t\telse {\n\t\t\t\tconst pipeParse = params.leg.split(\"-\");\n\t\t\t\tpipeText = MinMaxToText(pipeParse[0], pipeParse[1]);\n\t\t\t}\n\t\t}\n\n\t\tthis.setState({\n\t\t\tkeyword: params.keyword,\n\t\t\tcategoryId: categoryId > 0 ? categoryId : undefined,\n\t\t\tbrandId: brandId > 0 ? brandId : undefined,\n\t\t\tcolorId: colorId > 0 ? colorId : undefined,\n\t\t\twaist: waistText,\n\t\t\thipLine: hipLineText,\n\t\t\tthigh: thighText,\n\t\t\tleg: legText,\n\t\t\tpipe: pipeText\n\t\t});\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.searchBoxSubscription = searchBoxService.getObservable().subscribe((option) => {\n\t\t\tif (typeof option.isVisible !== \"undefined\") this.setState({ isVisible: option.isVisible });\n\n\t\t\tif (option.params) {\n\t\t\t\tthis.setParam(option.params);\n\t\t\t}\n\t\t});\n\n\t\tSearchBoxService.init().then((res) => {\n\t\t\tif (!res.success) return;\n\n\t\t\tthis.setState({\n\t\t\t\tcategoryList: res.categoryList ?? [],\n\t\t\t\tbrandList: res.brandList ?? [],\n\t\t\t\tcolorList: res.colorList ?? [],\n\t\t\t});\n\t\t});\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.searchBoxSubscription.unsubscribe();\n\t}\n\n\tonChangeWaist = (value) => {\n\t\tif (!value) {\n\t\t\tconsole.log('this.state.waistFrom', this.state.waistFrom, this.state.waistTo);\n\t\t\tlet waistText = MinMaxToText(this.state.waistFrom, this.state.waistTo);\n\t\t\tif (waistText) {\n\t\t\t\tthis.setState({\n\t\t\t\t\twaist: waistText,\n\t\t\t\t\twaistValue: MinMaxToValue(this.state.waistFrom, this.state.waistTo),\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.setState({ waist: null, waistValue: null });\n\t\t\t}\n\t\t} else {\n\t\t\tthis.setState({ waist: value, waistValue: value });\n\t\t}\n\t}\n\n\tonChangeHipLine = (value) => {\n\t\tif (!value) {\n\t\t\tlet hipLineText = MinMaxToText(this.state.hipLineFrom, this.state.hipLineTo);\n\t\t\tif (hipLineText) {\n\t\t\t\tthis.setState({\n\t\t\t\t\thipLine: hipLineText,\n\t\t\t\t\thipLineValue: MinMaxToValue(this.state.hipLineFrom, this.state.hipLineTo),\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.setState({ hipLine: null, hipLineValue: null });\n\t\t\t}\n\t\t} else {\n\t\t\tthis.setState({ hipLine: value, hipLineValue: value });\n\t\t}\n\t}\n\n\tonChangeHipLine = (value) => {\n\t\tif (!value) {\n\t\t\tlet hipLineText = MinMaxToText(this.state.hipLineFrom, this.state.hipLineTo);\n\t\t\tif (hipLineText) {\n\t\t\t\tthis.setState({\n\t\t\t\t\thipLine: hipLineText,\n\t\t\t\t\thipLineValue: MinMaxToValue(this.state.hipLineFrom, this.state.hipLineTo),\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.setState({ hipLine: null, hipLineValue: null });\n\t\t\t}\n\t\t} else {\n\t\t\tthis.setState({ hipLine: value, hipLineValue: value });\n\t\t}\n\t}\n\n\tonChangeThigh = (value) => {\n\t\tif (!value) {\n\t\t\tlet thighText = MinMaxToText(this.state.thighFrom, this.state.thighTo);\n\t\t\tif (thighText) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tthigh: thighText,\n\t\t\t\t\tthighValue: MinMaxToValue(this.state.thighFrom, this.state.thighTo),\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.setState({ thigh: null, thighValue: null });\n\t\t\t}\n\t\t} else {\n\t\t\tthis.setState({ thigh: value, thighValue: value });\n\t\t}\n\t}\n\n\tonChangeLeg = (value) => {\n\t\tif (!value) {\n\t\t\tlet legText = MinMaxToText(this.state.legFrom, this.state.legTo);\n\t\t\tif (legText) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tleg: legText,\n\t\t\t\t\tlegValue: MinMaxToValue(this.state.legFrom, this.state.legTo),\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.setState({ leg: null, legValue: null });\n\t\t\t}\n\t\t} else {\n\t\t\tthis.setState({ leg: value, legValue: value });\n\t\t}\n\t}\n\n\tonChangePipe = (value) => {\n\t\tif (!value) {\n\t\t\tlet pipeText = MinMaxToText(this.state.pipeFrom, this.state.pipeTo);\n\t\t\tif (pipeText) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tpipe: pipeText,\n\t\t\t\t\tpipeValue: MinMaxToValue(this.state.pipeFrom, this.state.pipeTo),\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.setState({ pipe: null, pipeValue: null });\n\t\t\t}\n\t\t} else {\n\t\t\tthis.setState({ pipe: value, pipeValue: value });\n\t\t}\n\t}\n\n\tonSearch = () => {\n\t\tlet name = \"\";\n\t\tif (this.state.categoryId) name += (name ? \"-\" : \"\") + this.state.categoryList.find((item) => item.id == this.state.categoryId).name;\n\t\tif (this.state.brandId) name += (name ? \"-\" : \"\") + this.state.brandList.find((item) => item.id == this.state.brandId).name;\n\t\tif (this.state.colorId) name += (name ? \"-\" : \"\") + this.state.colorList.find((item) => item.id == this.state.colorId).name;\n\n\t\tthis.props.history.push(\n\t\t\tProductURL.productListURL(\n\t\t\t\t{},\n\t\t\t\t{\n\t\t\t\t\tkeyword: this.state.keyword,\n\t\t\t\t\tname: name,\n\t\t\t\t\tcategoryId: this.state.categoryId,\n\t\t\t\t\tbrandId: this.state.brandId,\n\t\t\t\t\tcolorId: this.state.colorId,\n\t\t\t\t\twaist: this.state.waistValue,\n\t\t\t\t\thipLine: this.state.hipLineValue,\n\t\t\t\t\tthigh: this.state.thighValue,\n\t\t\t\t\tleg: this.state.legValue,\n\t\t\t\t\tpipe: this.state.pipeValue\n\t\t\t\t}\n\t\t\t)\n\t\t);\n\t};\n\n\tchangeWaySearch = () => {\n\t\tthis.setState({\n\t\t\tisDefault: !this.state.isDefault\n\t\t});\n\t}\n\n\trender() {\n\t\tif (!this.state.isVisible) return null;\n\t\tconst { categoryList, brandList, colorList, waistFilterList, hipLineFilterList, thighFilterList, legFilterList, pipeFilterList } = this.state;\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{this.state.isDefault ?\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({ keyword: event.target.value });\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tonSearch={(value) => this.setState({ keyword: value }, () => this.onSearch())}\n\t\t\t\t\t\t\t\t\t\tenterButton\n\t\t\t\t\t\t\t\t\t\tallowClear\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    Tìm kiếm nâng cao
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    :\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({ keyword: event.target.value });\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tonSearch={(value) => this.setState({ keyword: value }, () => this.onSearch())}\n\t\t\t\t\t\t\t\t\t\tenterButton\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t option.children.toString().toLowerCase().includes(inputValue.toLowerCase())}\n\t\t\t\t\t\t\t\t\t\tvalue={this.state.categoryId}\n\t\t\t\t\t\t\t\t\t\tonChange={(value) => this.setState({ categoryId: value })}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{categoryList.map((item) => (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t option.children.toString().toLowerCase().includes(inputValue.toLowerCase())}\n\t\t\t\t\t\t\t\t\t\tvalue={this.state.brandId}\n\t\t\t\t\t\t\t\t\t\tonChange={(value) => this.setState({ brandId: value })}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{brandList.map((item) => (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t option.children.toString().toLowerCase().includes(inputValue.toLowerCase())}\n\t\t\t\t\t\t\t\t\t\tvalue={this.state.colorId}\n\t\t\t\t\t\t\t\t\t\tonChange={(value) => this.setState({ colorId: value })}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{colorList.map((item) => (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t this.setState({ waistFrom: e.target.value }, this.onChangeWaist)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t - \n\t\t\t\t\t\t\t\t\t\t\t\t\t this.setState({ waistTo: e.target.value }, this.onChangeWaist)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t{menu}\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{waistFilterList.map((item, index) => (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{item.text}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t this.setState({ hipLineFrom: e.target.value }, this.onChangeHipLine)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t - \n\t\t\t\t\t\t\t\t\t\t\t\t\t this.setState({ hipLineTo: e.target.value }, this.onChangeHipLine)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t{menu}\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{hipLineFilterList.map((item, index) => (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{item.text}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t this.setState({ thighFrom: e.target.value }, this.onChangeThigh)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t - \n\t\t\t\t\t\t\t\t\t\t\t\t\t this.setState({ thighTo: e.target.value }, this.onChangeThigh)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t{menu}\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{thighFilterList.map((item, index) => (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{item.text}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t this.setState({ legFrom: e.target.value }, this.onChangeLeg)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t - \n\t\t\t\t\t\t\t\t\t\t\t\t\t this.setState({ legTo: e.target.value }, this.onChangeLeg)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t{menu}\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{legFilterList.map((item, index) => (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{item.text}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t this.setState({ pipeFrom: e.target.value }, this.onChangePipe)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t - \n\t\t\t\t\t\t\t\t\t\t\t\t\t this.setState({ pipeTo: e.target.value }, this.onChangePipe)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t{menu}\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{pipeFilterList.map((item, index) => (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{item.text}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    Thu gọn
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t}\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\nexport default withRouter(SearchBox);","import React, { Component } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Menu, Row, Col } from \"antd\";\nimport getSlug from \"speakingurl\";\n\nimport * as Const from \"../../common/const\";\nimport * as Service from \"../../common/serviceHelper\";\nimport * as TreeHelper from \"../../common/tree\";\n\nimport { siderService } from \"../../common/siderBase\";\n\nimport { CurrentUserService } from \"../user/currentUserService\";\nimport { LoginService } from \"../user/userService\";\nimport { ProductHomeService, ProductURL } from \"../product/productService\";\nimport { MenuService, ContentURL } from \"../content/contentService\";\n\nexport default class Sider extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tuserCurrent: CurrentUserService.getUser(),\n\t\t\tcategoryTree: [],\n\t\t\tcategoryList: [],\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.userCurrentSubscription = CurrentUserService.getObservable().subscribe(\n\t\t\t(user) => {\n\t\t\t\tthis.setState({ userCurrent: user });\n\t\t\t}\n\t\t);\n\n\t\tProductHomeService.categoryTree().then((res) => {\n\t\t\tif (!res.success) return;\n\n\t\t\tthis.setState({ categoryTree: TreeHelper.parseTree(res.itemList) });\n\t\t});\n\n\t\tMenuService.categoryGetList({\n\t\t\tparentId: Const.pageCategory,\n\t\t\tidList: Const.pageSiderMenu,\n\t\t}).then((res) => {\n\t\t\tif (!res.success) return;\n\n\t\t\tthis.setState({ categoryList: res.itemList ? res.itemList : [] });\n\t\t});\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.userCurrentSubscription.unsubscribe();\n\t}\n\n\tonOffice = () => {\n\t\tconst token = Service.tokenGet();\n\t\tif (token) window.location = Const.apiURL + \"/login/\" + token;\n\t};\n\n\tonLogout = () => {\n\t\tLoginService.logoutSubmit();\n\t\twindow.location = \"/\";\n\t};\n\n\trender() {\n\t\tconst categoryTree = this.state.categoryTree\n\t\t\t? this.state.categoryTree\n\t\t\t: [];\n\t\tconst { categoryList } = this.state;\n\n\t\treturn (\n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t siderService.visible()}\n\t\t\t\t>\n\t\t\t\t\tDanh mục sản phẩm}\n\t\t\t\t\t>\n\t\t\t\t\t\t{categoryTree.map((item_1) =>\n\t\t\t\t\t\t\titem_1.children.length > 0 ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{item_1.title}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{item_1.children.map((item_2) =>\n\t\t\t\t\t\t\t\t\t\titem_2.children.length > 0 ? (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item_2.title}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{item_2.children.map((item_3) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item_3.title}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{item_2.title}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{item_1.title}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tTrang chủ\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{categoryList.map((item) => (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tLiên hệ\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Affix } from \"antd\";\nimport Media from \"react-media\";\n\nimport * as Const from \"../../common/const\";\n\nimport { CurrentUserService } from \"../user/currentUserService\";\nimport { LoginService } from \"../user/userService\";\nimport { CartService } from \"../product/productService\";\n\nimport MenuMain from \"./menuMain\";\nimport Searchbox from \"./searchbox\";\nimport SiderBase, { siderService } from \"../../common/siderBase\";\nimport Sider from \"./sider\";\n\nexport default class Header extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tconst cart = CartService.getCart();\n\t\tlet cartQty = 0;\n\t\tcart.forEach((item) => (cartQty += item.qty));\n\n\t\tthis.state = {\n\t\t\tuserCurrent: CurrentUserService.getUser(),\n\t\t\tmainbarAffix: \"\",\n\t\t\tcart: cart,\n\t\t\tcartQty: cartQty,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.userCurrentSubscription = CurrentUserService.getObservable().subscribe((user) => {\n\t\t\tthis.setState({ userCurrent: user });\n\t\t});\n\n\t\tthis.cartSubscription = CartService.getObservable().subscribe((cart) => {\n\t\t\tlet cartQty = 0;\n\t\t\tcart.forEach((item) => (cartQty += item.qty));\n\t\t\tthis.setState({ cart: cart, cartQty });\n\t\t});\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.userCurrentSubscription.unsubscribe();\n\t}\n\n\tmainbarAffixChange = (affixed) => this.setState({ mainbarAffix: affixed ? \"affix\" : \"un-affix\" });\n\n\tonLogout = () => {\n\t\tLoginService.logoutSubmit();\n\t\twindow.location = \"/\";\n\t};\n\n\trender() {\n\t\tconst { mainbarAffix } = this.state;\n\n\t\treturn (\n\t\t\t
    \n\t\t\t (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t093.358.9015\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tInstagram\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tĐăng ký\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tĐăng nhập\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tsiderService.visible();\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t } />\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{this.state.cartQty > 0 ? (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
    {this.state.cartQty}
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Row, Col } from \"antd\";\n\nimport * as Const from \"../../common/const\";\nimport { MenuService, HomeContentService, ContentURL } from \"../content/contentService\";\nimport { MenuService as ProductMenuService, ProductURL } from \"../product/productService\"\n\nexport default class Footer extends Component {\n\tstate = {\n\t\tcategoryList: [],\n\t\tproductMenuList: [],\n\t\tcontactInfo: {},\n\t};\n\n\tcomponentDidMount() {\n\t\tMenuService.categoryGetList({ parentId: Const.pageCategory, idList: Const.pageMainMenu }).then((res) => {\n\t\t\tif (!res.success) return;\n\n\t\t\tthis.setState({ categoryList: res.itemList ? res.itemList : [] });\n\t\t});\n\n\t\tHomeContentService.getList({ idList: [1], hasDescription: true }).then((res) => {\n\t\t\tif (!res.success) return;\n\n\t\t\tthis.setState({\n\t\t\t\tcontactInfo: res.itemList[0],\n\t\t\t});\n\t\t});\n\n\t\tProductMenuService.categoryTree({level: 1}).then((res) => {\n\t\t\tif (!res.success) return;\n\n\t\t\tthis.setState({\n\t\t\t\tproductMenuList: res.itemList\n\t\t\t});\n\t\t});\n\t}\n\n\trender() {\n\t\tconst { categoryList, contactInfo, productMenuList } = this.state;\n\n\t\treturn (\n\t\t\t\n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Row, Col } from \"antd\";\r\n\r\nimport { FileService } from \"../../file/fileService\";\r\nimport * as Const from \"../../../common/const\";\r\nimport { Format } from \"../../../common/format\";\r\nimport getSlug from \"speakingurl\";\r\nimport { ProductURL } from \"../productService\";\r\n\r\nexport default class ProductGrid extends Component {\r\n constructor(props){\r\n super(props);\r\n }\r\n\trender() {\r\n return (\r\n
    \r\n \r\n {this.props.productList.map((item) => (\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {item.name}\r\n
    \r\n
    \r\n \r\n Hiệu: {item.brandName}\r\n \r\n
    \r\n
    \r\n \r\n Màu: {item.color}\r\n \r\n
    \r\n {item.waistText && (\r\n
    \r\n \r\n {\" \"}\r\n Eo: {item.waistText}\r\n \r\n
    \r\n )}\r\n {item.hipLineText && (\r\n
    \r\n \r\n Mông: {item.hipLineText}\r\n \r\n
    \r\n )}\r\n {item.thighText && (\r\n
    \r\n \r\n Đùi: {item.thighText}\r\n \r\n
    \r\n )}\r\n {item.legText && (\r\n
    \r\n \r\n Dài quần: {item.legText}\r\n \r\n
    \r\n )}\r\n {item.pipeText && (\r\n
    \r\n \r\n Ống: {item.pipeText}\r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {item.priceSource && (\r\n \r\n \r\n {Format.number(item.priceSource)}\r\n \r\n \r\n -{item.saleOffPercent}%\r\n \r\n \r\n )}\r\n
    \r\n đ\r\n \r\n {Format.number(item.price)}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n ))}\r\n
    \r\n
    \r\n )\r\n\t}\r\n}\r\n","import React, { Component } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport Media from \"react-media\";\nimport { Row, Col, Modal, Button } from \"antd\";\nimport OwlCarousel from \"react-owl-carousel2\";\nimport * as Const from \"../../common/const\";\nimport getSlug from \"speakingurl\";\n\nimport { Format } from \"../../common/format\";\nimport { ProductHomeService, ProductURL } from \"../product/productService\";\nimport { searchBoxService } from \"./searchbox\";\nimport ProductGrid from \"../product/component/productGrid\"\n\nexport default class Home extends Component {\n\tstate = {\n\t\tisPopup: false,\n\t\tbannerList: [],\n\t\tlatestProductList: [],\n\t\tproductCategoryHighlightList: []\n\t};\n\n\tcomponentDidMount() {\n\t\tsearchBoxService.visible(true);\n\t\tsearchBoxService.setParams({});\n\t\tthis.init();\n\t}\n\n\tinit = () => {\n\t\tProductHomeService.init().then((res) => {\n\t\t\tthis.setState({\n\t\t\t\tlatestProductList: res.latestProductList ?? [],\n\t\t\t});\n\t\t});\n\n\t\tProductHomeService.productCategoryHighlightGetList().then((res) => {\n\t\t\tthis.setState({\n\t\t\t\tproductCategoryHighlightList: res.productCategoryHighlightList ?? [],\n\t\t\t});\n\t\t});\n\t};\n\n\n\tonClosePopup = () => {\n\t\tthis.setState({ isPopup: false });\n\t};\n\n\trender() {\n\t\tconst { latestProductList, productCategoryHighlightList, bannerList } = this.state;\n\t\tconst bannerOptions = {\n\t\t\titems: 1,\n\t\t\trewind: true,\n\t\t\tautoplay: true,\n\t\t\tsmartSpeed: 800,\n\t\t\tautoplayHoverPause: true,\n\t\t};\n\n\t\tconst partnerOptions = {\n\t\t\tmargin: 20,\n\t\t\tautoWidth: true,\n\t\t\tdots: false,\n\t\t\tnav: true,\n\t\t\tnavText: ['', ''],\n\t\t\trewind: true,\n\t\t\tsmartSpeed: 500,\n\t\t};\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{/*
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    */}\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    Sản phẩm mới nhất
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tXem tất cả\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t{productCategoryHighlightList.map((category) => (\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    {category.categoryName}
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tXem tất cả\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\"Levi\"\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\"Lee\"\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\"cK\"\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\"Edwin\"\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\"Guess\"\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Row, Col, Input, Button } from \"antd\";\n\nimport { LoginService } from \"./userService\";\nimport { CurrentUserService } from \"./currentUserService\";\nimport { searchBoxService } from \"../frontend/searchbox\";\n\nimport { Popup, Msg } from \"../../common/component\";\n\nexport default class Login extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tsearchBoxService.visible(false);\n\t\tconst token = this.props.match.params.token;\n\t\tif (token) {\n\t\t\tLoginService.tokenSet(token);\n\t\t\tCurrentUserService.checkUser().then(() => this.props.history.push(\"/office\"));\n\t\t}\n\n\t\tthis.state = {\n\t\t\tuserName: \"\",\n\t\t\tpassword: \"\",\n\t\t\tmsgs: [],\n\t\t};\n\t}\n\n\tonSubmit = async () => {\n\t\tPopup.spin.show();\n\t\tconst res = await LoginService.loginSubmit({\n\t\t\tuserName: this.state.userName,\n\t\t\tpassword: this.state.password,\n\t\t});\n\t\tPopup.spin.hide();\n\t\tif (res.success && res.data != null) {\n\t\t\tLoginService.tokenSet(res.data);\n\t\t\tCurrentUserService.checkUser().then(() => this.props.history.push(\"/office\"));\n\t\t}\n\t\tthis.setState({ msgs: res.msgs });\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t

    Đăng nhập

    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    }\n\t\t\t\t\t\t\t\tonChange={(event) => {\n\t\t\t\t\t\t\t\t\tthis.setState({ userName: event.target.value });\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonPressEnter={this.onSubmit}\n\t\t\t\t\t\t\t\tautoFocus={true}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    }\n\t\t\t\t\t\t\t\tonChange={(event) => {\n\t\t\t\t\t\t\t\t\tthis.setState({ password: event.target.value });\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonPressEnter={this.onSubmit}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Row, Col, Input, Button } from \"antd\";\nimport ReCAPTCHA from \"react-google-recaptcha\";\n\nimport * as Const from \"../../common/const\";\n\nimport { Popup, Msg } from \"../../common/component\";\nimport { HomeContentService } from \"../content/contentService\";\nimport { ContactService } from \"../user/userService\";\n\nexport default class Contact extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tfullName: null,\n\t\t\temail: null,\n\t\t\ttitle: null,\n\t\t\tcontent: null,\n\t\t};\n\n\t\tthis.reCaptchaRef = React.createRef();\n\t}\n\n\tcomponentDidMount() {\n\t\tHomeContentService.getList({ idList: [2], hasDescription: true }).then((res) => {\n\t\t\tif (!res.success) return;\n\n\t\t\tthis.setState({\n\t\t\t\tcontactInfo: res.itemList[0],\n\t\t\t});\n\t\t});\n\t}\n\n\tonSubmit = async () => {\n\t\tconst token = await this.reCaptchaRef.current.executeAsync();\n\t\tPopup.spin.show();\n\n\t\tlet { title } = this.state;\n\t\tif (title) title += \" - \" + Const.domainName;\n\n\t\tconst res = await ContactService.submit({\n\t\t\tfullName: this.state.fullName,\n\t\t\temail: this.state.email,\n\t\t\ttitle,\n\t\t\tcontent: this.state.content,\n\t\t\trecaptchaToken: token,\n\t\t});\n\t\tPopup.spin.hide();\n\t\tif (res.success) {\n\t\t\tPopup.info({ autoClose: true });\n\t\t} else {\n\t\t\tthis.reCaptchaRef.current.reset();\n\t\t}\n\t\tthis.setState({ msgs: res.msgs });\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{this.state.contactInfo && (\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t

    Thông tin liên hệ

    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t

    Gửi email

    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t this.setState({ fullName: value })}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t this.setState({ email: value })} />\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t this.setState({ title: value })} />\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t this.setState({ content: value })}\n\t\t\t\t\t\t\t\t\t\t\t\tautoSize={{ minRows: 3, maxRows: 10 }}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Col, Row, Breadcrumb } from \"antd\";\n\nimport * as Const from \"../../common/const\";\nimport { ContentListService, ContentDetailService, ContentURL } from \"./contentService\";\nimport { FileService } from \"../file/fileService\";\n\nimport { Popup } from \"../../common/component\";\n\nexport default class ContentDetail extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tlet id = parseInt(this.props.match.params.id);\n\t\tif (isNaN(id)) id = 0;\n\n\t\tthis.state = {\n\t\t\tcategoryList: [],\n\t\t\tid,\n\t\t\titem: {},\n\t\t\titemList: [],\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.getDetail();\n\t\tthis.categoryGetList();\n\t}\n\n\tgetDetail = () => {\n\t\tPopup.spin.show();\n\t\tContentDetailService.init({ id: this.state.id }).then((res) => {\n\t\t\tif (!res.success) return;\n\n\t\t\tthis.setState({ item: res.item, itemList: res.itemList ? res.itemList : [] });\n\n\t\t\tPopup.spin.hide();\n\t\t});\n\t};\n\n\tshouldComponentUpdate(nextProps) {\n\t\tif (this.props.match.params.id !== nextProps.match.params.id) {\n\t\t\tthis.state.id = nextProps.match.params.id;\n\t\t\tthis.getDetail();\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tcategoryGetList = () => {\n\t\tContentListService.categoryGetList({ parentId: Const.pageCategory }).then((res) => {\n\t\t\tif (!res.success) return;\n\n\t\t\tthis.setState({ categoryList: res.itemList ? res.itemList : [] });\n\t\t});\n\t};\n\n\trender() {\n\t\tconst item = this.state.item ? this.state.item : {};\n\t\tconst { categoryList, itemList } = this.state;\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{categoryList\n\t\t\t\t\t\t.filter((category) => category.id == item.categoryId)\n\t\t\t\t\t\t.map((category) =>\n\t\t\t\t\t\t\tcategory.imageId > 0 ? (\n\t\t\t\t\t\t\t\t{category.name}\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    {item.categoryName}
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tTrang chủ\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{item.categoryName}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{categoryList.map((category) => (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{category.name}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t

    {item.name}

    \n\t\t\t\t\t\t\t\t

    {item.categoryName}

    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{itemList.length > 0 && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t

    Bài viết mới nhất

    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{itemList.map((item) => (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    {item.summary}
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Row, Col, Select, Pagination, Breadcrumb } from \"antd\";\r\n\r\nimport * as Const from \"../../common/const\";\r\nimport { ContentListService, ContentURL } from \"./contentService\";\r\nimport { FileService } from \"../file/fileService\";\r\n\r\nimport { Popup } from \"../../common/component\";\r\n\r\nexport default class ContentList extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tthis.state = {\r\n\t\t\tcategoryList: [],\r\n\t\t\tcategoryName: null,\r\n\t\t\titemList: null,\r\n\t\t\tpageIndex: this.props.match.params.pageIndex,\r\n\t\t\ttotalPages: 0,\r\n\t\t\ttotalItems: 0,\r\n\t\t\tpageSize: 0,\r\n\t\t\tcategoryId: this.props.match.params.categoryId,\r\n\t\t\torderBy: this.props.match.params.orderBy ? this.props.match.params.orderBy : \"latest\",\r\n\t\t};\r\n\t}\r\n\r\n\tgetQuery = () => ({\r\n\t\tcategoryName: this.state.categoryName,\r\n\t\tcategoryId: this.state.categoryId,\r\n\t\tpageIndex: this.state.pageIndex,\r\n\t\torderBy: this.state.orderBy,\r\n\t});\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.getList();\r\n\t\tthis.categoryGetList();\r\n\t}\r\n\r\n\tshouldComponentUpdate(nextProps) {\r\n\t\tlet hasChange = false;\r\n\t\tif (this.props.match.params.categoryId != nextProps.match.params.categoryId) {\r\n\t\t\tthis.state.categoryId = nextProps.match.params.categoryId;\r\n\t\t\thasChange = true;\r\n\t\t}\r\n\t\tif (this.props.match.params.pageIndex != nextProps.match.params.pageIndex) {\r\n\t\t\tthis.state.pageIndex = nextProps.match.params.pageIndex;\r\n\t\t\thasChange = true;\r\n\t\t}\r\n\t\tif (this.props.match.params.orderBy != nextProps.match.params.orderBy) {\r\n\t\t\tthis.state.orderBy = nextProps.match.params.orderBy;\r\n\t\t\thasChange = true;\r\n\t\t}\r\n\r\n\t\tif (hasChange) this.getList();\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\tcategoryGetList = () => {\r\n\t\tContentListService.categoryGetList({ parentId: Const.pageCategory }).then((res) => {\r\n\t\t\tif (!res.success) return;\r\n\r\n\t\t\tthis.setState({ categoryList: res.itemList });\r\n\t\t});\r\n\t};\r\n\r\n\tgetList = () => {\r\n\t\tPopup.spin.show();\r\n\t\tContentListService.getList({\r\n\t\t\tcategoryId: this.state.categoryId,\r\n\t\t\torderBy: this.state.orderBy,\r\n\t\t\tpageIndex: this.state.pageIndex,\r\n\t\t}).then((res) => {\r\n\t\t\tif (res.totalItems === 1) this.props.history.push(ContentURL.contentDetailURL({}, { name: res.itemList[0].name, id: res.itemList[0].id }));\r\n\t\t\telse\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tcategoryName: res.categoryName,\r\n\t\t\t\t\titemList: res.itemList,\r\n\t\t\t\t\tpageIndex: res.pageIndex,\r\n\t\t\t\t\ttotalPages: res.totalPages,\r\n\t\t\t\t\ttotalItems: res.totalItems,\r\n\t\t\t\t\tpageSize: res.pageSize,\r\n\t\t\t\t});\r\n\t\t\tPopup.spin.hide();\r\n\t\t});\r\n\t};\r\n\r\n\trender() {\r\n\t\tconst { categoryName, categoryId, totalItems, itemList, categoryList } = this.state;\r\n\r\n\t\tif (!itemList) return null;\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t{categoryList\r\n\t\t\t\t\t\t\t.filter((item) => item.id == categoryId)\r\n\t\t\t\t\t\t\t.map((category) =>\r\n\t\t\t\t\t\t\t\tcategory.imageId > 0 ? (\r\n\t\t\t\t\t\t\t\t\t{category.name}\r\n\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    {categoryName}
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tTrang chủ\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{categoryName}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t{categoryList.map((item) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{item.name}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t

    {categoryName}

    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{totalItems > 0 && (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t this.props.history.push(ContentURL.contentListURL(this.getQuery(), { pageIndex: value }))}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{itemList.map((item) => (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    {item.summary}
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t{totalItems > 0 && (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t this.props.history.push(ContentURL.contentListURL(this.getQuery(), { pageIndex: value }))}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t);\r\n\t}\r\n}\r\n","import React, { Component } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Row, Col, Select, Pagination, Breadcrumb } from \"antd\";\nimport getSlug from \"speakingurl\";\n\nimport { Format } from \"../../common/format\";\nimport { Popup } from \"../../common/component\";\nimport OwlCarousel from \"react-owl-carousel2\";\n\nimport ProductGrid from \"../product/component/productGrid\";\nimport { ProductListService, ProductURL } from \"./productService\";\nimport { FileService } from \"../file/fileService\";\nimport { searchBoxService } from \"../frontend/searchbox\";\n\nexport default class ProductList extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\titemList: [],\n\t\t\tpageIndex: this.props.match.params.pageIndex,\n\t\t\ttotalPages: 0,\n\t\t\ttotalItems: 0,\n\t\t\tpageSize: 0,\n\t\t\tkeyword: this.props.match.params.keyword,\n\t\t\tcategoryId: this.props.match.params.categoryId,\n\t\t\tbrandId: this.props.match.params.brandId,\n\t\t\tcolorId: this.props.match.params.colorId,\n\t\t\twaist: this.props.match.params.waist,\n\t\t\thipLine: this.props.match.params.hipLine,\n\t\t\tthigh: this.props.match.params.thigh,\n\t\t\tleg: this.props.match.params.leg,\n\t\t\tpipe: this.props.match.params.pipe,\n\t\t\torderBy: this.props.match.params.orderBy ? this.props.match.params.orderBy : \"latest\",\n\t\t\tcategorySider: null,\n\t\t\tbrandList: [],\n\t\t};\n\t}\n\n\tgetQuery = () => ({\n\t\tcategoryId: this.state.categoryId,\n\t\tcategoryName: this.state.categorySider.name,\n\t\tbrandId: this.state.brandId,\n\t\tcolorId: this.state.colorId,\n\t\twaist: this.state.waist,\n\t\thipLine: this.state.hipLine,\n\t\tthigh: this.state.thigh,\n\t\tleg: this.state.leg,\n\t\tpipe: this.state.pipe,\n\t\tpageIndex: this.state.pageIndex,\n\t\torderBy: this.state.orderBy,\n\t\tkeyword: this.state.keyword\n\t});\n\n\tcomponentDidMount() {\n\t\tsearchBoxService.visible(true);\n\t\tProductListService.init().then((res) => { });\n\t\tthis.categoryGetList();\n\t\tthis.setParamSearchBox();\n\t}\n\n\tsetParamSearchBox = () => {\n\t\tsearchBoxService.setParams({\n\t\t\tkeyword: this.state.keyword,\n\t\t\tcategoryId: this.state.categoryId,\n\t\t\tbrandId: this.state.brandId,\n\t\t\tcolorId: this.state.colorId,\n\t\t\twaistSize: this.state.waist,\n\t\t\thipLineSize: this.state.hipLine,\n\t\t\tthighSize: this.state.thigh,\n\t\t\tlegSize: this.state.leg,\n\t\t\tpipeSize: this.state.pipe,\n\t\t});\n\t}\n\n\tcategoryGetList = () => {\n\t\tProductListService.categoryGetList({\n\t\t\tcategoryId: this.state.categoryId,\n\t\t}).then((res) => {\n\t\t\tthis.setState(\n\t\t\t\t{\n\t\t\t\t\tcategorySider: {\n\t\t\t\t\t\tname: res.categoryName,\n\t\t\t\t\t\tchildrenList: res.childrenList,\n\t\t\t\t\t},\n\t\t\t\t\tnavList: res.parentList,\n\t\t\t\t\tbrandList: res.brandList,\n\t\t\t\t},\n\t\t\t\tthis.getList\n\t\t\t);\n\t\t});\n\t};\n\n\tgetList = () => {\n\t\tPopup.spin.show();\n\t\tProductListService.getList({\n\t\t\tkeyword: this.state.keyword,\n\t\t\tcategoryId: this.state.categoryId != 0 ? this.state.categoryId : null,\n\t\t\tbrandId: this.state.brandId != 0 ? this.state.brandId : null,\n\t\t\tcolorId: this.state.colorId != 0 ? this.state.colorId : null,\n\t\t\twaist: this.state.waist,\n\t\t\thipLine: this.state.hipLine,\n\t\t\tthigh: this.state.thigh,\n\t\t\tleg: this.state.leg,\n\t\t\tpipe: this.state.pipe,\n\t\t\torderBy: this.state.orderBy,\n\t\t\tpageIndex: this.state.pageIndex,\n\t\t}).then((res) => {\n\t\t\tthis.setState({\n\t\t\t\tcategoryName: res.categoryName,\n\t\t\t\titemList: res.itemList ? res.itemList : [],\n\t\t\t\tpageIndex: res.pageIndex,\n\t\t\t\ttotalPages: res.totalPages,\n\t\t\t\ttotalItems: res.totalItems,\n\t\t\t\tpageSize: res.pageSize,\n\t\t\t});\n\t\t\tPopup.spin.hide();\n\t\t});\n\t};\n\n\tonBrandClick = (brandId) => {\n\t\tthis.setState({ brandId }, this.getList);\n\t};\n\n\tonBrandClear = (e) => {\n\t\tthis.setState({ brandId: null }, this.getList);\n\t};\n\n\tshouldComponentUpdate(nextProps) {\n\t\tlet hasChange = false;\n\t\tif (this.props.match.params.categoryId != nextProps.match.params.categoryId) {\n\t\t\tthis.state.categoryId = nextProps.match.params.categoryId;\n\t\t\thasChange = true;\n\t\t}\n\n\t\tif (this.props.match.params.brandId != nextProps.match.params.brandId) {\n\t\t\tthis.state.brandId = nextProps.match.params.brandId;\n\t\t\thasChange = true;\n\t\t}\n\n\t\tif (this.props.match.params.colorId != nextProps.match.params.colorId) {\n\t\t\tthis.state.colorId = nextProps.match.params.colorId;\n\t\t\thasChange = true;\n\t\t}\n\n\t\tif (this.props.match.params.waist != nextProps.match.params.waist) {\n\t\t\tthis.state.waist = nextProps.match.params.waist;\n\t\t\thasChange = true;\n\t\t}\n\n\t\tif (this.props.match.params.hipLine != nextProps.match.params.hipLine) {\n\t\t\tthis.state.hipLine = nextProps.match.params.hipLine;\n\t\t\thasChange = true;\n\t\t}\n\n\t\tif (this.props.match.params.thigh != nextProps.match.params.thigh) {\n\t\t\tthis.state.thigh = nextProps.match.params.thigh;\n\t\t\thasChange = true;\n\t\t}\n\n\t\tif (this.props.match.params.leg != nextProps.match.params.leg) {\n\t\t\tthis.state.leg = nextProps.match.params.leg;\n\t\t\thasChange = true;\n\t\t}\n\n\t\tif (this.props.match.params.pipe != nextProps.match.params.pipe) {\n\t\t\tthis.state.pipe = nextProps.match.params.pipe;\n\t\t\thasChange = true;\n\t\t}\n\n\t\tif (this.props.match.params.pageIndex != nextProps.match.params.pageIndex) {\n\t\t\tthis.state.pageIndex = nextProps.match.params.pageIndex;\n\t\t\thasChange = true;\n\t\t}\n\n\t\tif (this.props.match.params.orderBy != nextProps.match.params.orderBy) {\n\t\t\tthis.state.orderBy = nextProps.match.params.orderBy;\n\t\t\thasChange = true;\n\t\t}\n\n\t\tif (this.props.match.params.keyword != nextProps.match.params.keyword) {\n\t\t\tthis.state.keyword = nextProps.match.params.keyword;\n\t\t\thasChange = true;\n\t\t}\n\n\t\tif (hasChange) this.categoryGetList();\n\n\t\treturn true;\n\t}\n\n\trender() {\n\t\tconst itemList = this.state.itemList ? this.state.itemList : [];\n\t\tconst bannerOptions = {\n\t\t\titems: 1,\n\t\t\trewind: true,\n\t\t\tautoplay: true,\n\t\t\tsmartSpeed: 800,\n\t\t\tautoplayHoverPause: true,\n\t\t};\n\n\t\treturn (\n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tTrang chủ\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{this.state.navList &&\n\t\t\t\t\t\t\t\tthis.state.navList.map((item) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{this.state.categorySider && (\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    {this.state.categorySider.name}
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{this.state.categorySider.childrenList.map((item) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{this.state.brandList.length > 0 && (\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    Thương hiệu
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{this.state.brandList.map((item) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{this.state.categorySider && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t{this.state.categoryId == 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>

    Tất cả

    : {this.state.totalItems} kết quả\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{this.state.categoryId != 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>

    {this.state.categorySider.name}

    : {this.state.totalItems} kết quả\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t this.props.history.push(ProductURL.productListURL(this.getQuery(), { orderBy: value }))}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\tMới nhất\n\t\t\t\t\t\t\t\t\t\t\t\t\tCũ nhất\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t this.props.history.push(ProductURL.productListURL(this.getQuery(), { pageIndex: value }))}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{this.state.totalItems > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t this.props.history.push(ProductURL.productListURL(this.getQuery(), { pageIndex: value }))}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\n\nimport ScrollBooster from \"scrollbooster\";\n\nexport default class ScrollBox extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.thisElement = React.createRef();\n\t}\n\n\tcomponentDidMount() {\n\t\tsetTimeout(() => {\n\t\t\tif (this.updater.isMounted(this))\n\t\t\t\tnew ScrollBooster({\n\t\t\t\t\tviewport: this.thisElement.current,\n\t\t\t\t\tscrollMode: \"native\",\n\t\t\t\t\tpointerMode: \"mouse\",\n\t\t\t\t\tbounce: false,\n\t\t\t\t});\n\t\t}, 1000);\n\t}\n\n\trender() {\n\t\tlet { className, scrollbar, ...attrs } = this.props;\n\n\t\tclassName = (className ? className : \"\") + \" scrollbox\";\n\n\t\tif (!scrollbar) className += \" scrollbar-hidden\";\n\n\t\treturn
    ;\n\t}\n}\n","import React, { Component } from \"react\";\nimport { Row, Col, Input, Button, Spin, Breadcrumb, Tabs } from \"antd\";\nimport { Link } from \"react-router-dom\";\nimport ReactImageMagnify from \"react-image-magnify\";\n\nimport { Popup } from \"../../common/component\";\nimport ScrollBox from \"../../common/scrollBox\";\nimport { Format } from \"../../common/format\";\n\nimport { ProductDetailService, CartService, ProductURL } from \"./productService\";\nimport { FileService } from \"../file/fileService\";\nimport { searchBoxService } from \"../frontend/searchbox\";\n\nexport default class ProductDetail extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tlet id = parseInt(this.props.match.params.id);\n\t\tif (isNaN(id)) id = 0;\n\n\t\tthis.state = {\n\t\t\tid,\n\t\t\titem: {},\n\t\t\tqty: 1,\n\t\t\timageMagnify: {\n\t\t\t\tsmallImage: {\n\t\t\t\t\tisFluidWidth: true,\n\t\t\t\t\tsrc: FileService.imageURL(0, 1024, true),\n\t\t\t\t\tonLoad: () => this.setState({ isImageMagnify: false }),\n\t\t\t\t},\n\t\t\t\tlargeImage: {\n\t\t\t\t\tsrc: FileService.imageURL(0, 2048, true),\n\t\t\t\t\twidth: 1024,\n\t\t\t\t\theight: 1024,\n\t\t\t\t},\n\t\t\t},\n\t\t\tisImageMagnify: true,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tsearchBoxService.visible(false);\n\t\tPopup.spin.show();\n\t\tProductDetailService.init({ id: this.state.id }).then((res) => {\n\t\t\tif (res.item) {\n\t\t\t\tlet item = res.item;\n\t\t\t\tlet mainImageId = 0;\n\t\t\t\tif (item.imageList && item.imageList.length > 0) mainImageId = item.imageList[0].id;\n\n\t\t\t\tthis.setState({\n\t\t\t\t\titem,\n\t\t\t\t\timageMagnify: this.setImageMagnify(mainImageId),\n\t\t\t\t});\n\t\t\t}\n\t\t\tPopup.spin.hide();\n\t\t});\n\n\t\tthis.categoryGetList();\n\t}\n\n\tcategoryGetList = () => {\n\t\tProductDetailService.categoryGetList({\n\t\t\tproductId: this.state.id,\n\t\t}).then((res) => {\n\t\t\tthis.setState({\n\t\t\t\tnavList: res.parentList,\n\t\t\t}); \n\t\t});\n\t};\n\n\tsetImageMagnify = (id) => {\n\t\tlet { imageMagnify } = this.state;\n\t\timageMagnify.smallImage.src = FileService.imageURL(id, 1024, true);\n\t\timageMagnify.largeImage.src = FileService.imageURL(id, 2048, true);\n\n\t\treturn imageMagnify;\n\t};\n\n\tonImageThumbChange = (item) => {\n\t\tthis.setState({ imageMagnify: this.setImageMagnify(item.id), isImageMagnify: true });\n\t};\n\n\tonAddToCart = async () => {\n\t\tlet qty = parseInt(this.state.qty);\n\t\tif (isNaN(qty) || qty < 1) qty = 1;\n\t\tconst addCartRes = await CartService.addCart({ id: this.state.id, qty: qty });\n\n\t\tconsole.log('addCartRes', addCartRes);\n\n\t\tif (addCartRes.enough === false) {\n\t\t\tPopup.error({ title: \"Quá số lượng hiện có là: \" + addCartRes.inStock });\n\t\t} else Popup.info({ title: \"Sản phẩm đã được thêm vào giỏ hàng\", autoClose: true });\n\n\t\treturn addCartRes.enough && addCartRes.onlyBuyOne === false;\n\t};\n\n\tonBuyNow = async () => {\n\t\tCartService.clearCart();\n\t\tconst isOK = await this.onAddToCart();\n\t\tif (isOK) this.props.history.push(\"/cart\");\n\t};\n\n\trender() {\n\t\tconst item = this.state.item ? this.state.item : {};\n\t\tlet itemThumbList = [];\n\t\tif (item.imageList && item.imageList.length > 0) itemThumbList = item.imageList;\n\n\t\treturn (\n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tTrang chủ\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{this.state.navList &&\n\t\t\t\t\t\t\t\tthis.state.navList.map((item) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{itemThumbList.map((item) => (\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t this.onImageThumbChange(item)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t

    {item.name}

    \n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t
      \n
      \n
      \n \n Hiệu: {item.brandName}\n \n
      \n
      \n \n Màu: {item.color}\n \n
      \n {item.waistText && (\n
      \n \n {\" \"}\n Eo: {item.waistText}\n \n
      \n )}\n {item.hipLineText && (\n
      \n \n Mông: {item.hipLineText}\n \n
      \n )}\n {item.thighText && (\n
      \n \n Đùi: {item.thighText}\n \n
      \n )}\n {item.legText && (\n
      \n \n Dài quần: {item.legText}\n \n
      \n )}\n {item.pipeText && (\n
      \n \n Ống: {item.pipeText}\n \n
      \n )}\n
      \n
      \n\t\t\t\t\t\t\t\t\t{/*
      \n\t\t\t\t\t\t\t\t\t\tHiệu: {item.brandName}\n\t\t\t\t\t\t\t\t\t\tMàu: {item.color}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t{item.waistText && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t Eo: {item.waistText} \n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{item.hipLineText && (\n\t\t\t\t\t\t\t\t\t\t\t\t\tMông: {item.hipLineText} \n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{item.thighText && (\n\t\t\t\t\t\t\t\t\t\t\t\t\tĐùi: {item.thighText} \n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{item.legText && (\n\t\t\t\t\t\t\t\t\t\t\t\t\tDài quần: {item.legText} \n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{item.pipeText && (\n\t\t\t\t\t\t\t\t\t\t\t\t\tỐng: {item.pipeText} \n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t
      */}\n\t\t\t\t\t\t\t\t\t{item.price && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\tGiá: \n\t\t\t\t\t\t\t\t\t\t\t\t{Format.number(item.price)}\n\t\t\t\t\t\t\t\t\t\t\t\t{item.priceSource && đ{Format.number(item.priceSource)}}\n\t\t\t\t\t\t\t\t\t\t\t\t{item.saleOffPercent && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tSALEOFF: {item.saleOffPercent}%\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t{item.allowOrder && (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t this.setState({ qty: value })}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t
      \n\t\t\t\n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\r\nimport { Input, Button } from \"antd\";\r\n\r\nimport { Format } from \"../../common/format\";\r\nimport { Popup } from \"../../common/component\";\r\n\r\nimport { CartService } from \"./productService\";\r\nimport { FileService } from \"../file/fileService\";\r\nimport { searchBoxService } from \"../frontend/searchbox\";\r\n\r\nexport default class Cart extends Component {\r\n\tstate = {\r\n\t\tcart: [],\r\n\t};\r\n\r\n\tcomponentDidMount() {\r\n\t\tsearchBoxService.visible(false);\r\n\t\tPopup.spin.show();\r\n\t\tCartService.getItemList().then((res) => {\r\n\t\t\tconsole.log('res', res);\r\n\t\t\tif (res.itemList.length > 0) this.setState({ cart: res.itemList });\r\n\t\t\telse this.props.history.push(\"/\");\r\n\t\t\tPopup.spin.hide();\r\n\t\t});\r\n\t}\r\n\r\n\tonItemQtyChange = async (item, qty) => {\r\n\t\tlet qtyNew = parseInt(qty);\r\n\t\tif (isNaN(qtyNew) || qtyNew < 1) qtyNew = null;\r\n\t\tif (qtyNew > 0) {\r\n\t\t\tclearTimeout(this.itemQtyChangeHandle);\r\n\t\t\tthis.itemQtyChangeHandle = setTimeout(async () => {\r\n\t\t\t\tconst qtyCheckRes = await CartService.quantityCheck({ id: item.id, quantity: qty });\r\n\t\t\t\titem.enough = qtyCheckRes.enough;\r\n\t\t\t\titem.inStock = qtyCheckRes.inStock;\r\n\t\t\t\tif (qtyCheckRes.enough === false) {\r\n\t\t\t\t\tPopup.error({ title: \"Quá số lượng hiện có là: \" + qtyCheckRes.inStock });\r\n\t\t\t\t}\r\n\t\t\t\tlet cart = this.state.cart;\r\n\t\t\t\tCartService.setCart(cart);\r\n\t\t\t\tthis.setState({ cart });\r\n\t\t\t}, 800);\r\n\t\t}\r\n\r\n\t\titem.qty = qtyNew;\r\n\r\n\t\tlet cart = this.state.cart;\r\n\t\tCartService.setCart(cart);\r\n\t\tthis.setState({ cart });\r\n\t};\r\n\r\n\tonItemDelete = (index, id) => {\r\n\t\tlet cart = this.state.cart;\r\n\r\n\t\tcart.splice(index, 1);\r\n\r\n\t\tCartService.deleteCart(id);\r\n\r\n\t\tif (cart.length > 0) this.setState({ cart });\r\n\t\telse this.props.history.push(\"/\");\r\n\t};\r\n\r\n\tonCheckout = async () => {\r\n\t\tlet isOK = true;\r\n\t\tconst cart = this.state.cart;\r\n\t\tconst res = await CartService.quantityCheckList();\r\n\t\tconst { stockList } = res;\r\n\r\n\t\tfor (let index = 0; index < cart.length; index++) {\r\n\t\t\tconst item = cart[index];\r\n\t\t\tconst stock = stockList.find((m) => m.id === item.id);\r\n\t\t\tif (!stock) {\r\n\t\t\t\titem.isDeleted = true;\r\n\t\t\t\tisOK = false;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\titem.enough = stock.enough;\r\n\t\t\titem.inStock = stock.inStock;\r\n\r\n\t\t\tif (!stock.enough) isOK = false;\r\n\t\t}\r\n\r\n\t\tif (isOK && res.isError) isOK = false;\r\n\r\n\t\tif (isOK) this.props.history.push(\"/checkout\");\r\n\t\telse this.setState({ cart });\r\n\t};\r\n\r\n\trender() {\r\n\t\tconst { cart } = this.state;\r\n\t\tlet sumPrice = 0;\r\n\t\tif (cart && cart.length > 0) {\r\n\t\t\tcart.forEach((item) => {\r\n\t\t\t\tsumPrice += item.price * item.qty;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t
      \r\n\t\t\t\t

      Giỏ hàng

      \r\n\t\t\t\t
      \r\n\t\t\t\t\t
      \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t
      1. Hình ảnh
      2. \r\n\t\t\t\t\t\t\t
      3. Tên
      4. \r\n\t\t\t\t\t\t\t
      5. Giá
      6. \r\n\t\t\t\t\t\t\t
      7. SL
      8. \r\n\t\t\t\t\t\t\t
      9. Tổng
      10. \r\n\t\t\t\t\t\t\t
      11. \r\n\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t{cart.map((item, index) => (\r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
      • \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
      • \r\n\t\t\t\t\t\t\t\t
      • \r\n\t\t\t\t\t\t\t\t\t{item.name}\r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t{item.isDeleted &&
        Sản phẩm không tồn tại.
        }\r\n\t\t\t\t\t\t\t\t
      • \r\n\t\t\t\t\t\t\t\t
      • \r\n\t\t\t\t\t\t\t\t\t
        {Format.number(item.price)}
        \r\n\t\t\t\t\t\t\t\t
      • \r\n\t\t\t\t\t\t\t\t
      • \r\n\t\t\t\t\t\t\t\t\t this.onItemQtyChange(item, value)} />\r\n\t\t\t\t\t\t\t\t\t{(item.enough === false || item.onlyBuyOne) &&
        Tối đa: {item.inStock}
        }\r\n\t\t\t\t\t\t\t\t
      • \r\n\t\t\t\t\t\t\t\t
      • \r\n\t\t\t\t\t\t\t\t\t
        {Format.number(item.price * item.qty)}
        \r\n\t\t\t\t\t\t\t\t
      • \r\n\t\t\t\t\t\t\t\t
      • \r\n\t\t\t\t\t\t\t\t\t this.onItemDelete(index, item.id)}>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
      • \r\n\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t
      \r\n\t\t\t\t\t{sumPrice > 0 && (\r\n\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
      Tổng cộng: {Format.number(sumPrice)}
      \r\n\t\t\t\t\t\t
      \r\n\t\t\t\t\t)}\r\n\t\t\t\t
      \r\n\t\t\t
      \r\n\t\t);\r\n\t}\r\n}\r\n","import React, { Component } from \"react\";\nimport { Route, Switch } from \"react-router\";\n\nimport { CurrentUserService } from \"../user/currentUserService\";\n\nimport Header from \"./header\";\nimport Footer from \"./footer\";\nimport Home from \"./home\";\nimport Login from \"../user/login\";\nimport Contact from \"./contact\";\nimport ContentDetail from \"../content/contentDetail\";\nimport ContentList from \"../content/contentList\";\nimport ProductList from \"../product/productList\";\nimport ProductDetail from \"../product/productDetail\";\nimport Cart from \"../product/cart\";\n\nexport default class Layout extends Component {\n\tcomponentDidMount() {\n\t\tCurrentUserService.checkUser();\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t
      \n\t\t\t
      \n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport { Route, Switch } from \"react-router\";\nimport { Spin, BackTop } from \"antd\";\n\nimport * as Const from \"./common/const\";\n\nimport { Popup } from \"./common/component\";\n\nimport { default as LayoutBE } from \"./component/backend/layout\";\nimport { default as LayoutFE } from \"./component/frontend/layout\";\n\nimport \"react-owl-carousel2/lib/styles.css\";\nimport \"react-owl-carousel2/src/owl.theme.default.css\";\nimport \"./theme/style-frontend.scss\";\nimport \"./theme/style-backend.scss\";\n\nexport default class App extends Component {\n\tstate = {\n\t\tisSpinVisible: false,\n\t};\n\n\tcomponentDidMount() {\n\t\tthis.spinSubscription = Popup.spin.getObservable().subscribe((option) => {\n\t\t\tif (!option || option.isVisible == null) option = { isVisible: !this.state.isSpinVisible };\n\n\t\t\tif (option.isVisible !== this.state.isSpinVisible) this.setState({ isSpinVisible: option.isVisible });\n\t\t});\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.spinSubscription.unsubscribe();\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter } from 'react-router-dom';\nimport ScrollToTop from \"./common/scrollToTop\";\nimport App from './app';\nimport * as serviceWorker from './serviceWorker';\n\nimport \"antd/dist/antd.min.css\";\nimport \"./theme/antd.scss\";\nimport \"./theme/common.scss\";\n\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\nReactDOM.render(\n\t\n\t\t\n\t\t\n\t,\n\tdocument.getElementById('root')\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}