tplus-components-touch 3.27.39 → 3.27.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -16
- package/dist/components/acCitySelect/CitySelect.js +18 -18
- package/dist/components/acCitySelect/CitySelect.js.map +1 -1
- package/dist/components/acCitySelect/CitySelect.less +9 -9
- package/dist/components/acCitySelect/citys.js.map +1 -1
- package/dist/components/acCitySelect/index.js.map +1 -1
- package/dist/components/acCitySelect/provinceData.js +7 -7
- package/dist/components/acCitySelect/provinceData.js.map +1 -1
- package/dist/components/addLog/AddLogProcessor.js +6 -6
- package/dist/components/addLog/AddLogProcessor.js.map +1 -1
- package/dist/components/addLog/OperationLogApi.js +3 -3
- package/dist/components/addLog/OperationLogApi.js.map +1 -1
- package/dist/components/autoComplete/index.js +14 -14
- package/dist/components/autoComplete/index.js.map +1 -1
- package/dist/components/autoComplete/index.less +89 -89
- package/dist/components/autoComplete/option.js.map +1 -1
- package/dist/components/autoCompleteWithKeyboard/index.js +14 -14
- package/dist/components/autoCompleteWithKeyboard/index.js.map +1 -1
- package/dist/components/autoCompleteWithKeyboard/index.less +7 -7
- package/dist/components/billSearch/api.js +29 -29
- package/dist/components/billSearch/api.js.map +1 -1
- package/dist/components/billSearch/index.js +6 -6
- package/dist/components/billSearch/index.js.map +1 -1
- package/dist/components/billSearch/index.less +376 -376
- package/dist/components/cloudPrint/BTPrintFormatUtil.js +17 -17
- package/dist/components/cloudPrint/BTPrintFormatUtil.js.map +1 -1
- package/dist/components/cloudPrint/api.js.map +1 -1
- package/dist/components/cloudPrint/index.js.map +1 -1
- package/dist/components/cloudPrint/printDispatch.js +7 -7
- package/dist/components/cloudPrint/printDispatch.js.map +1 -1
- package/dist/components/commonForm/addressPicker/index.js +7 -7
- package/dist/components/commonForm/addressPicker/index.js.map +1 -1
- package/dist/components/commonForm/addressPicker/style.less +10 -10
- package/dist/components/commonForm/autoComplete/index.js.map +1 -1
- package/dist/components/commonForm/autoComplete/style.less +2 -2
- package/dist/components/commonForm/datePicker/index.js.map +1 -1
- package/dist/components/commonForm/datePicker/style.less +4 -4
- package/dist/components/commonForm/formControl/index.js.map +1 -1
- package/dist/components/commonForm/index.js +4 -4
- package/dist/components/commonForm/index.js.map +1 -1
- package/dist/components/commonForm/inputNumber/index.js.map +1 -1
- package/dist/components/commonForm/inputNumber/style.less +10 -10
- package/dist/components/commonForm/radio/index.js.map +1 -1
- package/dist/components/commonForm/style.less +1 -1
- package/dist/components/deliverySearch/api.js +21 -21
- package/dist/components/deliverySearch/api.js.map +1 -1
- package/dist/components/deliverySearch/index.js +6 -6
- package/dist/components/deliverySearch/index.js.map +1 -1
- package/dist/components/deliverySearch/index.less +553 -553
- package/dist/components/form/index.js.map +1 -1
- package/dist/components/hardwareAPI/index.js.map +1 -1
- package/dist/components/hotKey/config.js +23 -23
- package/dist/components/hotKey/config.js.map +1 -1
- package/dist/components/hotKey/hotKeyModal.js.map +1 -1
- package/dist/components/hotKey/index.js +26 -26
- package/dist/components/hotKey/index.js.map +1 -1
- package/dist/components/hotKey/localConfig.js.map +1 -1
- package/dist/components/hotKey/style.less +96 -96
- package/dist/components/hotKey/utils.js.map +1 -1
- package/dist/components/input/index.js +6 -6
- package/dist/components/input/index.js.map +1 -1
- package/dist/components/input/scanInput.js.map +1 -1
- package/dist/components/input/scanInput.less +27 -27
- package/dist/components/input/style.less +106 -106
- package/dist/components/input/tplusInput/index.js +30 -30
- package/dist/components/input/tplusInput/index.js.map +1 -1
- package/dist/components/input/tplusInput/inputContent.js.map +1 -1
- package/dist/components/input/tplusInput/inputs.js.map +1 -1
- package/dist/components/input/tplusInput/style.less +132 -132
- package/dist/components/input/utils/index.js.map +1 -1
- package/dist/components/inventorySearch/api.js +58 -58
- package/dist/components/inventorySearch/api.js.map +1 -1
- package/dist/components/inventorySearch/index.js +3 -3
- package/dist/components/inventorySearch/index.js.map +1 -1
- package/dist/components/inventorySearch/index.less +119 -119
- package/dist/components/inventorySearch/store.js.map +1 -1
- package/dist/components/inventorySearch/tab.js.map +1 -1
- package/dist/components/keyboard/index.js.map +1 -1
- package/dist/components/keyboard/index.less +469 -469
- package/dist/components/keyboard/letterKeyboard.js +2 -2
- package/dist/components/keyboard/letterKeyboard.js.map +1 -1
- package/dist/components/keyboard/numKeyboard.js +4 -4
- package/dist/components/keyboard/numKeyboard.js.map +1 -1
- package/dist/components/keyboard/numKeyboardScan.js.map +1 -1
- package/dist/components/keyboard/numberButton_input.js +5 -5
- package/dist/components/keyboard/numberButton_input.js.map +1 -1
- package/dist/components/keyboard/numkeyboardPassword.js +4 -4
- package/dist/components/keyboard/numkeyboardPassword.js.map +1 -1
- package/dist/components/keyboard/onlyKeyboard.js +7 -7
- package/dist/components/keyboard/onlyKeyboard.js.map +1 -1
- package/dist/components/keyboard/onlyLetterButton.js +2 -2
- package/dist/components/keyboard/onlyLetterButton.js.map +1 -1
- package/dist/components/keyboard/onlyLetterButton2.js +2 -2
- package/dist/components/keyboard/onlyLetterButton2.js.map +1 -1
- package/dist/components/keyboard/onlyLetterButton2.less +156 -156
- package/dist/components/keyboard/onlyNumberButton.js +2 -2
- package/dist/components/keyboard/onlyNumberButton.js.map +1 -1
- package/dist/components/keyboard/onlyNumberButton2.js +3 -3
- package/dist/components/keyboard/onlyNumberButton2.js.map +1 -1
- package/dist/components/keyboard/textKeyboard.js.map +1 -1
- package/dist/components/layout/hamburger.js.map +1 -1
- package/dist/components/layout/index.js +10 -10
- package/dist/components/layout/index.js.map +1 -1
- package/dist/components/layout/layout.js.map +1 -1
- package/dist/components/layout/sider.js +12 -12
- package/dist/components/layout/sider.js.map +1 -1
- package/dist/components/layout/style.less +82 -82
- package/dist/components/loading/index.js +15 -15
- package/dist/components/loading/index.js.map +1 -1
- package/dist/components/loading/loadingContent.js.map +1 -1
- package/dist/components/loading/style.less +72 -72
- package/dist/components/loading/utils.js.map +1 -1
- package/dist/components/message/index.js +8 -8
- package/dist/components/message/index.js.map +1 -1
- package/dist/components/message/index.less +101 -101
- package/dist/components/modal/index.js.map +1 -1
- package/dist/components/modal/index.less +19 -19
- package/dist/components/modalVertical/index.js +7 -7
- package/dist/components/modalVertical/index.js.map +1 -1
- package/dist/components/modalVertical/style.less +60 -60
- package/dist/components/modalWraper/index.js +15 -15
- package/dist/components/modalWraper/index.js.map +1 -1
- package/dist/components/modalWraper/style.less +257 -257
- package/dist/components/modalWraper/utils.js.map +1 -1
- package/dist/components/notification/index.js +4 -4
- package/dist/components/notification/index.js.map +1 -1
- package/dist/components/notification/index.less +51 -51
- package/dist/components/overflowTip/index.js +15 -15
- package/dist/components/overflowTip/index.js.map +1 -1
- package/dist/components/overflowTip/style.less +66 -66
- package/dist/components/page/index.js.map +1 -1
- package/dist/components/page/index.less +21 -21
- package/dist/components/presale/pickup.js.map +1 -1
- package/dist/components/presale/style.less +58 -58
- package/dist/components/product/detail.js +7 -7
- package/dist/components/product/detail.js.map +1 -1
- package/dist/components/product/getCard.js +5 -5
- package/dist/components/product/getCard.js.map +1 -1
- package/dist/components/product/index.less +128 -128
- package/dist/components/progressState/EmptyAndErrorView.js.map +1 -1
- package/dist/components/progressState/ProgressState.js +10 -10
- package/dist/components/progressState/ProgressState.js.map +1 -1
- package/dist/components/progressState/index.js.map +1 -1
- package/dist/components/progressState/style.less +65 -65
- package/dist/components/scan/index.js.map +1 -1
- package/dist/components/scan/index.less +33 -33
- package/dist/components/select/index.js.map +1 -1
- package/dist/components/select/index.less +11 -11
- package/dist/components/settlement/asyncModal.js.map +1 -1
- package/dist/components/settlement/index.js +1 -1
- package/dist/components/settlement/index.js.map +1 -1
- package/dist/components/settlement/moreCzkTable/index.js.map +1 -1
- package/dist/components/settlement/moreCzkTable/style.less +6 -6
- package/dist/components/settlement/prototypeTable/index.js.map +1 -1
- package/dist/components/settlement/prototypeTable/style.less +58 -58
- package/dist/components/settlement/prototypeTable/utils.js.map +1 -1
- package/dist/components/settlement/settlement.js +38 -26
- package/dist/components/settlement/settlement.js.map +1 -1
- package/dist/components/settlement/settlement.less +1702 -1702
- package/dist/components/settlement/settlementStore.js +100 -73
- package/dist/components/settlement/settlementStore.js.map +1 -1
- package/dist/components/settlement/utils.js +2 -2
- package/dist/components/settlement/utils.js.map +1 -1
- package/dist/components/socket/index.js +11 -11
- package/dist/components/socket/index.js.map +1 -1
- package/dist/components/spin/index.js +6 -6
- package/dist/components/spin/index.js.map +1 -1
- package/dist/components/spin/spin-style.less +436 -436
- package/dist/components/test/index.js +3 -3
- package/dist/components/test/index.js.map +1 -1
- package/dist/components/ticon/iconfont/demo.css +539 -539
- package/dist/components/ticon/iconfont/demo_index.html +5248 -5248
- package/dist/components/ticon/iconfont/iconfont.css +895 -895
- package/dist/components/ticon/iconfont/iconfont.json +1549 -1549
- package/dist/components/ticon/iconfont/iconfont.svg +593 -593
- package/dist/components/ticon/index.js.map +1 -1
- package/dist/components/touchScroll/index.js +9 -9
- package/dist/components/touchScroll/index.js.map +1 -1
- package/dist/components/touchTable/AuthProcess.js.map +1 -1
- package/dist/components/touchTable/generateWater.js.map +1 -1
- package/dist/components/touchTable/index.js +9 -9
- package/dist/components/touchTable/index.js.map +1 -1
- package/dist/components/touchTable/index.less +376 -376
- package/dist/components/touchTable/utils.js.map +1 -1
- package/dist/demo/PopOverDemo.js.map +1 -1
- package/dist/index.js +7 -7
- package/dist/index.js.map +1 -1
- package/dist/util/tools.js.map +1 -1
- package/locales/zh/tplus-components-touch.json +1 -1
- package/locales/zh-CN/tplus-components-touch.json +1 -1
- package/mocks/memberInfo.json +79 -79
- package/package.json +35 -35
- package/tsconfig.json +26 -26
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["tplus-components-touch/components/settlement/settlement.js"],"names":["hasElectron","env","platform","constant","electron","Settlement","observer","props","state","visible","czkVisible","djqVisible","jfdxVisible","moreCzkVisible","showSetPwdModal","prototypeVisible","currentIndex","connectCardStatus","connectCardError","amountChanged","type","isManualIntoAmount","isXianjin","newPass","newPassConfirm","noAlreadyWarn","btnDissabled","confirmPwd","settleDisabled","protytypeCount","isPrototypeClick","dataSource","memberdata1","discountTotalAmount","discountRetailTotalAount","discountPrototypeTotalAmount","bquick","currentKey","couponLight","storageValue","czkValue","isInputMember","selectedRowIndex","compoundHotkeysList","window","$","operationControl","control","map","key","toLocaleUpperCase","hotkeydebounced","hotkeydebouncedPayMode","currentInput","store","stores","settlementStore","resizeSettlementToolBtns","newStyle","isMemberStorePage","b","billingSettlementDocumnet","bWidth","offsetWidth","cWidth","firstChild","lastChild","childNodes","forEach","v","className","handleReadICard","readRfCard","updateInput","currentMode","paymode","member","exchangable","undefined","inputkey","input","value","Math","min","maxamount","setCurrentModeValue","inputJfdxAmount","balance","inputCzkAmount","storageCardNo","parseFloat","amount","Message","error","duration","setTimeout","handleCzkCancel","czkKeyboardOnClose","payQuick","enumController","getEnumOj","PayStyle","init","context","onHandleAmount","Code_02","storeInfo","dto","settleZero","hyczk","isProhibitMeStorageCard","warn","showCzkModal","quickSettle","handleSettle","handleGuestShow","isAutoShowCouponWhenCash","setState","isReturn","resolve","onValidate","isNotAutoFocus","fn","data","isNoProductTip","then","result","count","handleShowPrototype","checkIsIntegralExchange","IdbusiType","viewModel","payFun","handleDefault","brefund","boriginReturn","JSON","getCellValue","thePaymodes","m","checkModeDisabled","paymentType","setFocusAndSelectionMode","pricePrecision","quantityPrecision","RetailDetails","TotalTaxAmount","o","item","count1","ShowFreeItem","i","test","Name","FreeItem","IsPresent","badge","text","position","IsGWPBuyGift","PromotionDetails","length","RetailPrice","Quantity","InventoryName","Inventory","Discount","TaxPrice","TotalDiscount","DetailDiscountAmount","nAmount","TaxAmount","UnitName","Unit","nQuantity","nTaxPrice","nRetailPrice","console","log","showModal","that","ModalWraper","confirm","title","content","onOk","onCancel","handleOk","e","handleCancel","onCancelSettle","cancelState","setInventoryFocus","clean","handleCzkMoreData","params","_val","value11","czkInput","focus","setSelectionRange","id","append","connectRfCard","setCurrentMode","memberId","updateCurrentMode","handleCzkData","handleMoreCzkCancel","setMoreCzkIndex","index","handleMoreCzkOk","updateCardInfo","loadCzk","mode","paymethodId","closeRfCard","calcMemberBalance","handleCzk","handleCzkOk","walletEnabled","cardTypeEnum","freePaymentPasswordStore","isNeedPassword","Keyboard","close","handleSetPwdCancel","handleSetModal","updataMemberInfo","queryPwd","ID","updateMemberInfo","resp","onPressEnterCzk","field","inputConfirmAmount","setPwdValue","handleBlur","isHorizontalPad","doms","document","getElementsByClassName","getElementById","showDjqModal","djq","calcCheckList","inputdjq","isNewRetailBCPos","getCouponList","handleDjqOk","Differentiate","handleDjqCancel","djqs","checked","COUPON","setCurrentFocusAndAddPay","showJfdxModal","jid","djqmode","themode","IsRepelWithPoints","code","jfdx","handleJfdxOk","handleJfdxCancel","checkOfflineEnable","paymodes","isOffline","offlineSys","currentPayMode","find","offlineDisable","onTabsClick2","bookType","memberInfo","hasmember","Code","omc","initData","wx","zfb","smzf","checkScanDisabled","bdisabled","onTabsClick","MultiPay","shouldSettlement","exchangeRate","forign","setCurrentFocusOnly","FORBIDDEN","NOTIFICATION","editModal","payId","changeFocusAndAddPay","setFocusAndSelection","onDelPay","info","delPay","handleChange","currentFocus","target","amountMaxLength","parseInt","isNaN","changeValue","val","max","reg","value1","split","onBlur","changeFocusOnly","onFocus","onFocusHack","appendCzkmode","bappend","djqChecked","q","calcDjqCheckValue","calcDjqValue","addDjq","checkCoupon","finally","ele","czkdebounced","cancel","onHotKeyClick1","onHotKeyClickModal","onHotKeyClick2","changeClickFocusOnly","onHotKeyEnter","notsettle","checkSettleDisabled","payIndex","displayPayModeList","SaoMaPayMode","filter","paymodeOb","findHaveNoModlePayType","findModlePayBySplice","currenIndex","symbol","findIndex","endCurrentMode","endCurrentModeOb","startCurrentModeOb","settleUnReturn","__queryingModal","querySettleResult","destroy","Flag","setDtoID","settleSuccess","settleCanceled","clearVoucherData","received","charge","openCashBox","xianjin","_this","showTwoScreen","getScreenType","flag","isHorizontalSunMi","localStore","get","shift","Value","step","screenType","sunMi_PresentationManager","sendMessageToSecondScreen","nativeMs","setIpcRendererMethod","onSettleSuccess","getSettleGift","resp1","__loadingModal","MemberPoints","isMemberPointsReturn","message","Number","__successModal","onModalClose","dtype","dt","guestshow_enable","guestshow_clear","guestshow_welcome","guestshow_collect","guestshow_refund","guestshow_change","hasSuccess","other","replace","abs","price","qty","total","inv","wel","HardwareAPI","sendDataCusDisp","dataType","ret","args","promises","results","p","push","commit","handleUserInputs","isQuickPay","status","checkCharge","receivable","zeromode","value2","name","quickmode","SQBPAY","CSYH","inputConfirm","values","bTest","indexOf","reject","curmode","inputPwd","needPwd","validePwd","fKeyboardOnOk","paymethodeId","blur","fKeyboardOnClose","keyboardOnOk","keyboardOnClose","changefn","setConfirmPwdValue","modal","onPressEnter","authCode","pwd","onPressEsc","maskClosable","keyboard","closable","width","isMobileEnvironment","height","inputAmount","btnDebounced","CustomerPhone","DistributionMode","Address","Id","Member","Mobilephone","syncMemberInfoProcessor","openBuyerModal","btndebounced","onCzkChange","setCardNo","czkKeyboardOnOk","onDjqChange","isKeyBorad","debounced","djqKeyboardOnOk","djqKeyboardOnClose","xianjinChange","inputTarget","inputTarget2","innerHTML","isNotFullBook","bookMaxValue","changeScanProduct","scanObj","startScan","onScanResult","el","setStateValue","submitHandler","onScanCzkResult","onScanDjqResult","getXianjinPayment","payType","getXianjinBalance","isStoredValueCard","BuyerPayFreight","PayIcon2","zl","getAttribute","isCancelFun","backdropStyle","prototypeDetailedClick","scan","checkCurrentModeHaveMutex","payTypeList","payTypeFilterList","filterType","disableUserMode","haveUseTypeList","xj","enabled","changeDecimalBuZero","number","bitNum","f_x","newBitNum","pow","round","s_x","toString","pos_decimal","editCzkModal","paymodesCarouselList","carouselStart","CarouseOut","CarouselTp","newParams","mapList","floor","modeList","modeIndex","renderToolbtn","handleprototypeCancel","select","couponClick","user","options","MemberMeStorageCardInputByKeyBoard","ICCardServer","ICCardPassword","PreSellOrBook","PercentageWhenBook","isStorageCardInputType","iCCardServer","iCCardPassword","isBook","percentageWhenBook","bind","setTimer","keypressStime","initPaymodes","nextProps","clear","cardPsw","cardSec","cardKm","nonProductMap","temphtml","columns","dataIndex","ellipsis","product","Idinventory","reason","y","paymentType1","getNewValue","PayIcon","hasSMZF","hotkeyIndex","theArr","t","paymodeDisabled","paymodeSelected","checkThepaymode","omission","totalVariety","totalQuantity","quantityDetail","memberDisabled","noIsMinAmount","totalTaxAmount","drawerStore","thisWaitPaidAmount","settle","ExchangeIntegral","_hasSMZF","quickPay","isQuick","productsIsEmpty","moreToolbtns","pagination","spaceBetween","carouselStart2","quantity1","quantity2","quantity3","quantity4","sumQuantity","buyQuantity","returnQuantity","showAmount","sumRetailDetails","themodeHyczk","r","iconclass","OnlinePaymentAmount","isMemberPoints","hotKey","hotKeyBindClass","maxHeight","body","clientHeight","hotKeyNotFilter","display","overchargesAmount","onlineamount","onKeyboardChange","mindex","tm","sum","Add","cardNo","errinfo","keyCode","time","Date","parse","czkvalue","open","event","ref","inputNewAmount","promoMethodEnum","IsEnable","nominalAmount","tools","cutZero","discountPct","displayText","doorsill","expired","backgroundColor","buttonVisible","imgStyle","bonusPoints","React","Component","contextTypes","PropTypes","object"],"mappings":"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","file":"settlement.js","sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react'\nimport _filter from 'lodash/filter';\nimport _map from 'lodash/map';\nimport _find from 'lodash/find';\nimport _findIndex from 'lodash/findIndex';\nimport _sortBy from 'lodash/sortBy';\nimport _forEach from 'lodash/forEach';\nimport _trim from 'lodash/trim';\nimport _truncate from 'lodash/truncate';\nimport _debounce from 'lodash/debounce';\nimport _ from 'lodash'\nimport _reduce from 'lodash/reduce';\nimport classnames from 'classnames'\nimport { Drawer, Modal, Carousel, Input, Button, Table } from 'antd';\nimport Message from '../message';\nimport asyncModal from './asyncModal';\nimport ModalWraper from '../modalWraper';\nimport { openLoadingModal,openQueryingModal,showSuccessModal, getRoundValue, getFixedNumber } from './utils';\nimport Keyboard from '../keyboard';\nimport NumKeyboard from '../keyboard/numKeyboard';\nimport NumKeyboardScan from '../keyboard/numKeyboardScan';\nimport NumkeyboardPassword from '../keyboard/numkeyboardPassword'\nimport Ticon from '../ticon';\nimport PropTypes from 'prop-types';\nimport Scan from '../scan';\nimport HardwareAPI from '../hardwareAPI';\nimport { nativeMs, env, localStore, stores } from 'mutants-microfx';\nimport { platform,enumController,tools} from 'mutants-util';\nimport { hotKey } from '../../index';\nimport { PosInitData } from 'tplus-poslogin';\nimport PrototypeTableModal from './prototypeTable/index';\nimport { ProgressState } from 'tplus-components-touch';\nimport MoreCzkTable from './moreCzkTable'\nconst hasElectron = (env.platform === env.constant.platform.electron);\n\n@observer\nclass Settlement extends React.Component {\n state = {\n visible: false ,\n czkVisible:false,\n djqVisible:false,\n jfdxVisible:false,\n moreCzkVisible: false,\n showSetPwdModal: false,\n prototypeVisible: false, // 优惠明细弹出框\n currentIndex:0,\n connectCardStatus: false, //连接IC卡状态\n connectCardError: '', //连接IC卡错误后记录错误信息\n amountChanged:false,\n type:0,\n isManualIntoAmount: PosInitData(\"IsManualIntoAmount\"),\n isXianjin: false,\n newPass: '',\n newPassConfirm: '',\n noAlreadyWarn: true,\n btnDissabled: true,\n confirmPwd: '',\n settleDisabled: false,\n protytypeCount: null,\n isPrototypeClick: false,\n dataSource: [],\n memberdata1: [],\n discountTotalAmount: null,\n discountRetailTotalAount: null,\n discountPrototypeTotalAmount: null,\n bquick: false,\n currentKey: null,\n couponLight: true,\n storageValue: '0.00',\n czkValue: null,\n isInputMember: false,\n selectedRowIndex: 0\n }\n // 复核结算方式快捷键列表\n compoundHotkeysList = (window.$.operationControl[5]? (window.$.operationControl[5].control || []):[]).map((key)=>{\n return key.toLocaleUpperCase();\n })\n\n hotkeydebounced = null;\n hotkeydebouncedPayMode = \"\";\n\n static contextTypes = {\n viewModel: PropTypes.object,\n stores: PropTypes.object,\n }\n\n currentInput = null;\n\n store = stores.settlementStore;\n\n constructor(props) {\n super(props);\n this.hasElectron = hasElectron;\n const { MemberMeStorageCardInputByKeyBoard, ICCardServer, ICCardPassword, PreSellOrBook, PercentageWhenBook} = stores.user.options.get('loginInfo') || {};\n this.isStorageCardInputType = MemberMeStorageCardInputByKeyBoard; // 仅储值卡是否禁用键盘输入,'0'为不禁用 '1'为禁用\n this.iCCardServer = parseInt(ICCardServer); // 启用IC卡:0为禁用 1为启用\n this.iCCardPassword = ICCardPassword; //IC卡密码\n this.isBook = PreSellOrBook == 'BOOK';\n this.percentageWhenBook = PercentageWhenBook;\n //移动端环境下,没有读取IC卡的方式。\n const { isHorizontalPad, isHorizontalSunMi } = platform || {};\n this.isHorizontalPad = !!isHorizontalPad;\n this.isHorizontalSunMi= !!isHorizontalSunMi;\n this.isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi;\n this.handleReadICard = this.handleReadICard.bind(this);\n this.setTimer = null;\n this.keypressStime = null;\n }\n\n componentDidMount() {\n this.store.initPaymodes(this.updateInput, this.props.type, this.props.MemberPoints);\n }\n\n componentDidUpdate() {\n this.resizeSettlementToolBtns()\n }\n\n componentWillReceiveProps(nextProps) {\n if (nextProps.amount != this.props.amount) {\n this.store.amountChanged(nextProps.amount);\n this.setState({ amountChanged: !this.state.amountChanged });\n }\n\n // 增加积分兑换和普通模式切换 重新获取支付方式\n if(nextProps.MemberPoints != this.props.MemberPoints){\n this.store.paymode.clear();\n this.store.initPaymodes(this.updateInput,this.props.type,nextProps.MemberPoints);\n }\n }\n\n //对结算按钮超出的处理\n resizeSettlementToolBtns = () => {\n const { newStyle } = this.store;\n const { isMemberStorePage } = this.props;\n let b = this.billingSettlementDocumnet;\n if (b && newStyle && !isMemberStorePage) {\n let bWidth = b.offsetWidth;\n let cWidth = 0;\n if (b.firstChild) {\n cWidth += b.firstChild.offsetWidth;\n }\n if (b.lastChild && b.lastChild.childNodes) {\n b.lastChild.childNodes.forEach(v => {\n cWidth += v.offsetWidth;\n })\n }\n if (b.lastChild) {\n // 原来bWidth < cWidth,过渡过程中右边按钮会隐藏,+20之后解决\n if (bWidth < cWidth + 20) {\n b.lastChild.className = 'btns voucherMode';\n } else {\n b.lastChild.className = 'btns';\n }\n }\n }\n }\n\n //IC卡连接\n connectRfCard() {\n //客户端环境下,并开启了启用IC卡。\n if (this.hasElectron === true && this.iCCardServer === 1) {\n nativeMs.setIpcRendererMethod('ConnectRfCard', null, ret => {\n let result = {}\n if (ret.status === 0) {\n result = { connectCardStatus: false, connectCardError: ret.value }\n } else {\n result = { connectCardStatus: true, connectCardError: '' };\n }\n this.setState(result)\n })\n }\n }\n //IC卡读取\n readRfCard() {\n //客户端环境下,并开启了启用IC卡。\n if (this.hasElectron === true && this.iCCardServer === 1) {\n const { connectCardStatus, connectCardError } = this.state;\n if (connectCardStatus === false) {\n Message.error(connectCardError ? connectCardError : '读取IC卡失败');\n this.connectRfCard(); //读取失败后,重新连接一下。\n return;\n }\n let params = { cardPsw: this.iCCardPassword, cardSec: 13, cardKm: 0 }\n nativeMs.setIpcRendererMethod('ReadRfCard', { ...params }, ret => {\n if (ret.status === 0) {\n Message.error(ret.value);\n this.connectRfCard(); //读取失败后,重新连接一下。\n return;\n } else if (ret.status === 1) {\n // this.searchMember(ret.value);\n // this.czkInput.input[\"value\"]=ret.value;\n this.setState({\n czkValue: ret.value\n })\n this.loadCzk(ret.value);\n }\n })\n }\n }\n\n //IC卡关闭\n closeRfCard(){\n if (this.hasElectron === true && this.iCCardServer === 1) {\n nativeMs.setIpcRendererMethod('CloseRfCard')\n }\n }\n handleReadICard = () => {\n this.readRfCard();\n }\n\n updateInput=()=>{\n let {currentMode}=this.store.paymode;\n if(this.state.jfdxVisible &¤tMode && currentMode.member.exchangable !== undefined ){\n this.inputkey=\"inputJfdxAmount\";\n this[\"inputJfdxAmount\"].input.value=currentMode && getFixedNumber(Math.min(currentMode.value,currentMode.maxamount,currentMode.member.exchangable))\n this.setCurrentModeValue(this.inputJfdxAmount.input.value,Math.min(currentMode.maxamount,currentMode.member.exchangable));\n }else if(this.state.czkVisible && currentMode && currentMode.value>=0 && currentMode.balance !== undefined){\n this.inputkey=\"inputCzkAmount\";\n this[\"inputCzkAmount\"] && this[\"inputCzkAmount\"].input && (this[\"inputCzkAmount\"].input.value=getFixedNumber(Math.min(currentMode.value,currentMode.maxamount,currentMode.balance)));\n const maxamount=Math.min(currentMode.maxamount,currentMode.balance);\n this.inputCzkAmount && this.inputCzkAmount.input && this.setCurrentModeValue(this.inputCzkAmount.input.value,maxamount);\n if(this.store.bquick && currentMode.storageCardNo && parseFloat(this.store.paymode.amount)>parseFloat(maxamount)){\n Message.error(\"本单最大可用储值卡结算金额为:\"+getFixedNumber(maxamount)+\",请使用复合结算!\", {\n duration: 4\n });\n setTimeout(() => {\n this.handleCzkCancel();\n setTimeout(() => { this.czkKeyboardOnClose() }, 150)\n }, 50);\n }\n }\n }\n\n payQuick = () => {\n const { currentKey } = this.state;\n const { PayStyle } = enumController.getEnumOj();\n this.store.init(this.props.type == 1 ? null : this.context, this.props.onHandleAmount, this.props.dataSource.Code_02, this.props.storeInfo, true, this.props.amount, this.props.type, this.props.dto,currentKey);\n let amount = this.store.paymode.amount;\n if (amount == 0) {\n this.settleZero();\n return;\n }\n if (currentKey == PayStyle.hyczk) {\n const { isProhibitMeStorageCard } = this.props;\n if (isProhibitMeStorageCard) {\n Message.warn('储值卡不可键盘录入,请刷卡!');\n return;\n }\n this.showCzkModal();\n } else {\n this.store.quickSettle(currentKey);\n this.handleSettle(\"quickPay\");\n }\n this.handleGuestShow(amount < 0 ? 2 : 3, amount);\n }\n\n quickSettle = (key)=>{\n const isAutoShowCouponWhenCash = PosInitData('IsAutoShowCouponWhenCash');\n this.setState({\n currentKey: key\n })\n const { isReturn, type } = this.props;\n Promise.resolve(!this.props.onValidate || this.props.onValidate({isNotAutoFocus: true, fn: (data)=>this.isNoProductTip(data)})).then(result=>{\n if (result) {\n this.setState({\n settleDisabled: false\n })\n if (type !== 1) {\n let count = this.handleShowPrototype();\n if (!isReturn && isAutoShowCouponWhenCash && count > 0) {\n this.setState({\n prototypeVisible: true,\n })\n } else {\n this.payQuick();\n }\n } else {\n this.payQuick();\n }\n }\n })\n }\n\n checkIsIntegralExchange = () => {\n let { IdbusiType } = this.context.viewModel.data;\n return (IdbusiType === 37 || IdbusiType === 36);\n }\n\n payFun = () => {\n this.store.init(this.props.type == 1 ? null : this.context, this.props.onHandleAmount, this.props.dataSource.Code_02, this.props.storeInfo, false, this.props.amount, this.props.type, this.props.dto);\n let amount = this.store.paymode.amount;\n if (amount == 0) {\n this.settleZero();\n return;\n }\n this.setState({ visible: true });\n this.handleGuestShow(amount < 0 ? 2 : 3, amount);\n setTimeout(() => {\n this.handleDefault()\n // // 单据模式 临时性获取第一个结算方式焦点\n // // document.querySelector('.modeItem:nth-child(1) .content input').focus()\n let { paymode, brefund, newStyle } = this.store;\n let boriginReturn = this.context && this.context.viewModel && this.context.viewModel.data && JSON.getCellValue(this.context.viewModel.data, \"IsOriginalReturn\");\n let thePaymodes = newStyle ? _filter(paymode.thePaymodes, (m) => { return !(this.checkModeDisabled(m.paymentType, brefund, boriginReturn) && parseFloat(m.value) == 0); }) : paymode.thePaymodes;\n this.setFocusAndSelectionMode(thePaymodes,-1);\n }, 100)\n }\n\n handleShowPrototype = () => {\n const pricePrecision = PosInitData(\"PricePrecision\");\n const quantityPrecision = PosInitData ('QuantityPrecision')\n const { RetailDetails, TotalTaxAmount } = this.context.viewModel.data;\n let dataSource = RetailDetails.map(o => Object.assign({}, o));\n let discountRetailTotalAount = null;\n let count = 0;\n dataSource && dataSource.forEach((item) => {\n let count1 = 0;\n item.ShowFreeItem = false;\n for (let i in item) {\n if (/FreeItem/.test(i)) {\n if (item[i] && item[i].Name) {\n count1++;\n item.ShowFreeItem = true;\n count1 === 1 ? item.FreeItem = item[i].Name : item.FreeItem += '/' + item[i].Name;\n }\n }\n }\n //有赠品的情况,不在考虑是否促销\n if (item.IsPresent) {\n item.badge = { text: '赠', position: 'leftTop', className: '' }\n } else if(item.IsGWPBuyGift) {\n item.badge = { text: '换', position: 'leftTop', className: '' }\n }else if (item.PromotionDetails && item.PromotionDetails.length > 0) {\n item.badge = { text: '促', position: 'leftTop', className: '' }\n } else {\n item.badge = { text: '', position: '', className: '' }\n }\n if (!item.IsPresent) {\n discountRetailTotalAount += item.RetailPrice * item.Quantity;\n }\n if (item.PromotionDetails && item.PromotionDetails.length > 0) {\n count++;\n }\n item.InventoryName = item.Inventory.Name;\n item.Discount = getRoundValue(item.RetailPrice - item.TaxPrice, pricePrecision);\n //item.TotalDiscount = getFixedNumber(item.Discount * item.Quantity);\n item.TotalDiscount = item.DetailDiscountAmount;\n item.nAmount = getFixedNumber(item.TaxAmount);\n item.UnitName = item.Unit.Name;\n item.nQuantity = getRoundValue(item.Quantity, quantityPrecision);\n item.nTaxPrice = getRoundValue(item.TaxPrice, pricePrecision);\n item.nRetailPrice = getRoundValue(item.RetailPrice, pricePrecision);\n })\n this.setState({\n dataSource,\n discountTotalAmount: getFixedNumber(TotalTaxAmount),\n discountRetailTotalAount: getFixedNumber(discountRetailTotalAount),\n discountPrototypeTotalAmount: getFixedNumber(discountRetailTotalAount - TotalTaxAmount)\n })\n console.log(RetailDetails, 'RetailDetails-----')\n return count;\n }\n\n showModal = () => {\n const { isReturn, type } = this.props;\n const isAutoShowCouponWhenCash = PosInitData('IsAutoShowCouponWhenCash')\n // 支持异步验证过程\n Promise.resolve( !this.props.onValidate || this.props.onValidate((data)=>this.isNoProductTip(data))).then(result => {\n if (result) {\n this.setState({\n settleDisabled: false\n })\n if (type !== 1) {\n let count = this.handleShowPrototype();\n if (!isReturn && isAutoShowCouponWhenCash && count > 0) {\n this.setState({\n prototypeVisible: true,\n })\n } else {\n this.payFun();\n }\n } else {\n this.payFun();\n }\n }\n })\n }\n\n settleZero=()=>{\n const that = this;\n ModalWraper.confirm({\n className: 'tplus-confirm-modal',\n title: '结算',\n content: '当前收款金额为0,确认结算?',\n onOk() {\n setTimeout(() => { that.handleSettle(\"zero\") }, 300)\n },\n onCancel() {\n\n },\n });\n }\n\n handleDefault=()=>{\n // let dmode=_find(this.store.paymode.paymodes,(mode)=>{return mode.isDefault});\n // if(dmode){\n // if(dmode.paymentType==PayStyle.hyczk){\n // this.onTabsClick(PayStyle.hyczk);\n // }else{\n // this.store.quickSettle(dmode.paymentType);\n // this.onTabsClick(dmode.paymentType);\n // }\n // }else if(this.store.member && this.store.member.ID && parseFloat(this.store.member.BalanceStorage)>0 &&\n // _find(this.store.paymode.paymodes,{'paymentType':PayStyle.hyczk})){\n // this.onTabsClick(PayStyle.hyczk);\n // // this.showCzkModal();\n // }\n\n // else if(_find(this.store.paymode.paymodes,{'paymentType':PayStyle.xianjin})){\n // this.store.quickSettle(PayStyle.xianjin);\n // this.onTabsClick(PayStyle.xianjin);\n // }\n if(this.store.newStyle){\n // this.onHotKeyEnter(null,true);\n }\n }\n\n handleOk = (e) => {\n this.setState({\n visible: false,\n });\n }\n\n handleCancel = (e) => {\n this.props.onCancelSettle && this.props.onCancelSettle();\n this.cancelState();\n this.setInventoryFocus();\n }\n cancelState=()=>{\n this.store.clean();\n this.setState({\n visible: false,\n });\n }\n\n handleCzkMoreData = (params) => {\n this._val=this.store.paymode.currentMode.value;\n let {currentMode}=this.store.paymode;\n const maxamount=Math.min(currentMode.maxamount,currentMode.balance);\n if(this.store.bquick && currentMode.storageCardNo && parseFloat(this.store.paymode.amount)>parseFloat(maxamount)){\n Message.error(\"本单最大可用储值卡结算金额为:\"+getFixedNumber(maxamount)+\",请使用复合结算!\",{\n duration: 4\n });\n } else {\n if (params) {\n this.setState({\n czkVisible: true,\n });\n }\n const { brefund } = this.store;\n let value11 = currentMode && getFixedNumber(brefund?currentMode.value:Math.min(currentMode.value,currentMode.maxamount,currentMode.balance));\n this.setState({\n storageValue: value11\n })\n if (currentMode.storageCardNo) {\n this.setState({\n czkValue: currentMode.storageCardNo\n })\n } else {\n this.setState({\n czkValue: null\n })\n }\n }\n if (params) {\n setTimeout(() => {\n if(!currentMode.storageCardNo){\n this.czkInput && this.czkInput.input.focus()\n }else{\n if(this.inputCzkAmount && this.inputCzkAmount.input){\n this.inputCzkAmount.input.focus();\n this.inputCzkAmount.input.setSelectionRange(0, this.inputCzkAmount.input.value.length);\n }\n }\n }, 500)\n }\n }\n\n //czk\n showCzkModal = async (id,append) => {\n this.connectRfCard();\n const { PayStyle } = enumController.getEnumOj();\n this.store.setCurrentMode(id,PayStyle.hyczk,append);\n const { isInputMember } = this.state || {};\n let memberdata1 = (isInputMember && this.store.paymode.currentMode.memberId && await this.store.updateCurrentMode(this.store.paymode.currentMode.memberId));\n this.setState({\n czkVisible: true\n });\n if (memberdata1 && memberdata1.length === 1) {\n this.handleCzkMoreData(true);\n this.store.handleCzkData(memberdata1[0]);\n } else if (memberdata1 && memberdata1.length >= 1) {\n this.setState({\n moreCzkVisible: true,\n memberdata1: memberdata1\n });\n } else {\n this.setState({\n });\n setTimeout(() => {\n this.czkInput && this.czkInput.input.focus()\n }, 300)\n }\n }\n\n handleMoreCzkCancel = () => {\n this.setState({\n moreCzkVisible: false,\n selectedRowIndex: 0\n });\n setTimeout(() =>{\n this.czkInput && this.czkInput.input.focus();\n }, 300)\n }\n\n setMoreCzkIndex = (index) => {\n this.setState({\n selectedRowIndex: index\n })\n }\n\n handleMoreCzkOk = () => {\n const { memberdata1, selectedRowIndex } = this.state;\n this.store.paymode.updateCardInfo(memberdata1[selectedRowIndex]);\n this.handleCzkMoreData();\n this.store.handleCzkData(memberdata1[selectedRowIndex]);\n this.setState({\n moreCzkVisible: false,\n selectedRowIndex: 0\n })\n }\n\n handleCzkData = async () => {\n this.setState({\n isInputMember: false\n })\n const { PayStyle } = enumController.getEnumOj();\n if(!this.store.paymode.currentMode.storageCardNo){\n await this.store.loadCzk(this.czkInput.input.value);\n }\n\n if(!this.store.paymode.currentMode.storageCardNo ){\n Message.error(\"请录入储值卡!\");\n return ;\n }\n if(_find(this.store.paymode.thePaymodes,(mode)=>{\n return mode.paymethodId!=this.store.paymode.currentMode.paymethodId &&\n mode.paymentType==PayStyle.hyczk &&\n mode.storageCardNo==this.store.paymode.currentMode.storageCardNo\n })){\n Message.error(\"该储值卡已使用。\");\n return;\n }\n if(this.store.bquick && this.store.paymode.amount!=this.store.paymode.currentMode.value){\n Message.error(\"实收金额应等于应收金额。\");\n return;\n }\n\n this.setState({\n czkVisible: false,\n storageValue: '0.00',\n czkValue: null\n });\n this.closeRfCard();\n this.store.paymode.calcMemberBalance();\n this.handleCzk();\n }\n\n\n handleCzkOk = async (e) => {\n // 判断是否有密码\n const { walletEnabled, cardTypeEnum, freePaymentPasswordStore, isNeedPassword } = this.store.paymode.currentMode;\n if (cardTypeEnum === 'BALANCE_CARD' && freePaymentPasswordStore) {\n this.handleCzkData();\n } else if (cardTypeEnum === 'BALANCE_CARD' && !walletEnabled) {\n this.setState({\n showSetPwdModal: true,\n btnDissabled: true\n })\n } else {\n this.handleCzkData();\n }\n }\n\n handleCzkCancel = (e) => {\n if(this.store.bquick){\n this.props.onCancelSettle && this.props.onCancelSettle();\n this.store.clean();\n }\n this.setState({\n czkVisible: false,\n storageValue: '0.00',\n czkValue: null\n });\n this.closeRfCard();\n Keyboard.close();\n this.setInventoryFocus();\n }\n\n handleSetPwdCancel = () => {\n this.setState({\n showSetPwdModal: false\n })\n }\n\n handleSetModal = async () => {\n const { newPass, newPassConfirm, isInputMember } = this.state;\n const { updataMemberInfo } = this.props;\n const result = await this.store.queryPwd(newPass, newPassConfirm)\n const { cardTypeEnum } = this.store.paymode.currentMode;\n if (result) {\n this.setState({\n showSetPwdModal: false,\n czkVisible: true,\n newPass: '',\n newPassConfirm: ''\n })\n Message.warn('设置成功')\n this.handleCzkData();\n setTimeout(() => {\n if(this.inputCzkAmount && this.inputCzkAmount.input){\n this.inputCzkAmount.input.focus();\n this.inputCzkAmount.input.setSelectionRange(0, this.inputCzkAmount.input.value.length);\n }\n }, 350)\n if (isInputMember && this.store.member.ID) {\n let resp = await this.store.updateMemberInfo(this.store);\n updataMemberInfo(resp);\n }\n if (cardTypeEnum === 'BALANCE_CARD') {\n this.store.paymode.updateCardInfo();\n }\n this.setState({\n isInputMember: false\n })\n }\n }\n\n onPressEnterCzk = (field) => {\n const { newPass = '', newPassConfirm = '' } = this.state || {};\n if (field === 'newPass' && newPass.length === 6) {\n this.inputConfirmAmount.input.focus();\n }\n if (field === 'newPassConfirm' && newPassConfirm.length === 6 && newPass.length === 6 && newPass === newPassConfirm) {\n this.handleSetModal();\n }\n }\n\n setPwdValue = (field, value) => {\n if (!/^[0-9]*$/.test(value)) {\n return;\n }\n this.setState({\n [field]: value\n }, () => {\n const { newPass = '', newPassConfirm = '' } = this.state || {};\n if (newPassConfirm.length=== 6 && newPass.length === 6 && newPass === newPassConfirm) {\n this.setState({\n btnDissabled: false\n })\n }\n })\n }\n\n handleBlur = (field) => {\n const { newPass = '', newPassConfirm = '' } = this.state || {};\n setTimeout(() => {\n const { showSetPwdModal } = this.state || {};\n if (!showSetPwdModal) return;\n if (field=== 'newPass' && newPass.length < 6) {\n this.setState({\n btnDissabled: true\n })\n Message.warn('请输入6位新密码!')\n } else {\n if (field === 'newPassConfirm') {\n if (newPass !== newPassConfirm) {\n this.setState({\n btnDissabled: true\n })\n Message.warn('密码输入不一致,请重新输入!')\n }\n }\n }\n if (newPassConfirm.length=== 6 && newPass.length === 6 && newPass === newPassConfirm) {\n this.setState({\n btnDissabled: false\n })\n }\n }, 80);\n }\n\n //关闭弹框时,执行此方法,把焦点设定到商品录入框\n setInventoryFocus = () => {\n if (!!this.isHorizontalPad) return;\n let doms = document.getElementsByClassName('app hot-key-focus-container');\n let input = document.getElementById('productPoint');\n if (input) setTimeout(() => { if (doms && doms.length > 0) {console.log('settlement--setInventory==Focus=='); input.focus() } }, 300);\n }\n\n //djq\n showDjqModal = (id) => {\n // if(!this.store.member || !this.store.member.Uid){\n // Message.error('请先输入会员再使用优惠券结算!');\n // return ;\n // }\n const { PayStyle } = enumController.getEnumOj();\n this.store.setCurrentMode(id,PayStyle.djq);\n this.setState({\n djqVisible: true,\n couponLight: true,\n });\n this.store.paymode.calcCheckList();\n setTimeout(() => {\n this.inputdjq && this.inputdjq.input && this.inputdjq.input.focus()\n }, 200)\n\n // TODO: 测试优惠券支付\n let { isNewRetailBCPos } = platform || {};\n if (isNewRetailBCPos && !this.store.paymode.currentMode.boriginReturn) {\n this.store.getCouponList();\n }\n }\n\n handleDjqOk = (e) => {\n const { PayStyle, Differentiate } = enumController.getEnumOj();\n if(this.store.paymode.currentMode.boriginReturn){\n this.handleDjqCancel(e);\n return;\n }\n if(_filter(this.store.paymode.currentMode.djqs,(djq)=>{return djq.checked}).length==0){\n Message.error(`请录入并使用${Differentiate.COUPON}。`);\n return ;\n }\n if(parseFloat(this.store.paymode.currentMode.value)>parseFloat(this.store.paymode.currentMode.maxamount)){\n Message.error(`超过了${Differentiate.COUPON}可支付的最大金额。`);\n return ;\n }\n this.setState({\n djqVisible: false,\n });\n this.setCurrentFocusAndAddPay(PayStyle.djq);\n }\n\n handleDjqCancel = (e) => {\n this.setState({\n djqVisible: false,\n });\n }\n\n //jfdx\n showJfdxModal = (jid) => {\n const { PayStyle, Differentiate } = enumController.getEnumOj();\n let id=this.store.newStyle? -1 : jid;\n if(!this.store.member || !this.store.member.ID){\n Message.error('请先输入会员再使用会员积分抵现结算!');\n return ;\n }\n let djqmode=_find(this.store.paymode.thePaymodes,(themode)=>{return themode.paymentType==PayStyle.djq;});\n let djq=djqmode && _find(djqmode.djqs,(djq)=>{return !djq.IsRepelWithPoints});\n if(djq){\n Message.error(`${Differentiate.COUPON}(${djq.code})不可与积分一起使用`);\n return ;\n }\n this.store.setCurrentMode(id,PayStyle.jfdx);\n this._val=this.store.paymode.currentMode.value;\n this.setState({\n jfdxVisible: true,\n });\n setTimeout(() => {\n this.inputJfdxAmount.input.focus();\n this.inputJfdxAmount.input.setSelectionRange(0, this.inputJfdxAmount.input.value.length);\n }, 200)\n }\n\n handleJfdxOk = (e) => {\n this.setState({\n jfdxVisible: false,\n });\n //this.setCurrentFocusAndAddPay(PayStyle.jfdx);\n this.handleCzk();\n }\n\n handleJfdxCancel = (e) => {\n this.setState({\n jfdxVisible: false,\n });\n }\n\n checkOfflineEnable = (paymode,key) => {\n const { paymodes } = paymode || {};\n const { isOffline} = stores.offlineSys;\n if(isOffline){\n if(paymodes){\n const currentPayMode = paymodes.find(item=> item.paymentType === key);\n if(currentPayMode && !currentPayMode.offlineDisable){\n return true\n }else{\n Message.warn(`离线模式下不支持此结算方式`);\n return false;\n }\n }\n Message.warn(`离线模式下结算方式数据错误`);\n return false;\n }else{\n return true;\n }\n\n }\n\n\n onTabsClick2 = (paymode, brefund, themode, key, bookType) => {\n const { PayStyle, Differentiate } = enumController.getEnumOj();\n paymode.currentMode = null;\n switch (key) {\n case PayStyle.hyczk:\n this.setState({\n isInputMember: true\n },() => {\n this.showCzkModal(-1);\n })\n break;\n case PayStyle.jfdx:\n this.showJfdxModal(-1);\n break;\n case PayStyle.djq:\n let memberInfo = this.store && this.store.member;\n let hasmember = (memberInfo.ID || memberInfo.Code || memberInfo.Name) ? true : false;\n let omc = this.props.initData(\"OnlyMemberCanUseCoupon\")\n if (omc && !hasmember) {\n Message.warn(`仅会员可以使用${Differentiate.COUPON},请录入会员!`);\n return;\n }\n this.showDjqModal(-1);\n break;\n case PayStyle.wx:\n if (_find(paymode.thePaymodes, (mode) => { return mode.paymentType === PayStyle.zfb || mode.paymentType === PayStyle.smzf})) {\n Message.error('已使用了其他的付款码支付,不可以再使用微信了。');\n } else {\n this.setCurrentFocusAndAddPay(key, bookType);\n }\n break;\n case PayStyle.zfb:\n if (_find(paymode.thePaymodes, (mode) => { return mode.paymentType === PayStyle.wx || mode.paymentType === PayStyle.smzf })) {\n Message.error('已使用了其他的付款码支付,不可以再使用支付宝了。');\n } else {\n this.setCurrentFocusAndAddPay(key, bookType);\n }\n break;\n case PayStyle.smzf:\n if (_find(paymode.thePaymodes, (mode) => { return mode.paymentType === PayStyle.zfb || mode.paymentType === PayStyle.wx})) {\n Message.error('已使用了其他的付款码支付,不可以再使用扫码支付了。');\n } else {\n this.setCurrentFocusAndAddPay(key, bookType);\n }\n break;\n default:\n this.setCurrentFocusAndAddPay(key, bookType);\n break;\n }\n }\n\n checkScanDisabled=(key)=>{\n const { paymode, newStyle } = this.store;\n const { PayStyle } = enumController.getEnumOj();\n let bdisabled=false;\n if(!newStyle){\n return bdisabled;\n }\n switch (key) {\n case PayStyle.wx:\n if (_find(paymode.thePaymodes, (mode) => { return (mode.paymentType === PayStyle.zfb || mode.paymentType === PayStyle.smzf) && parseFloat(mode.value)!=0 })) {\n bdisabled=true;\n }\n break;\n case PayStyle.zfb:\n if (_find(paymode.thePaymodes, (mode) => { return (mode.paymentType === PayStyle.wx || mode.paymentType === PayStyle.smzf) && parseFloat(mode.value)!=0 })) {\n bdisabled=true;\n }\n break;\n case PayStyle.smzf:\n if (_find(paymode.thePaymodes, (mode) => { return (mode.paymentType === PayStyle.zfb || mode.paymentType === PayStyle.wx) && parseFloat(mode.value)!=0 })) {\n bdisabled=true;\n }\n break;\n }\n return bdisabled;\n }\n\n onTabsClick = (key, bookType) => {\n const { PayStyle, Differentiate } = enumController.getEnumOj();\n if (key === PayStyle.hyczk) {\n const { isProhibitMeStorageCard } = this.props;\n if (isProhibitMeStorageCard) {\n Message.warn('储值卡不可键盘录入,请刷卡!');\n return;\n }\n }\n const { MultiPay } = enumController.getEnumOj();\n const { paymode, brefund, boriginReturn } = this.store;\n const { noAlreadyWarn } = this.state;\n if(!stores.offlineSys.shouldSettlement(key)) return false;\n\n if (this.checkModeDisabled(key, brefund, boriginReturn)) {\n return;\n }\n let themode = _find(paymode.paymodes, { 'paymentType': key });\n //预订非全款不可使用零售抵现类支付方式\n // if(bookType == 'bookPay' && this.store.paymode.isNotFullOnlyBook && themode.virtualPay){\n // return Message.error(\"付订金时不可使用零售抵现类结算方式!\");\n // }\n if (themode.exchangeRate != 1) {\n let forign = _find(paymode.thePaymodes, (mode) => { return mode.exchangeRate != 1 && mode.paymentType != key });\n if (forign) {\n Message.error(\"只允许一种外币结算。\");\n return;\n }\n }\n themode = _find(paymode.thePaymodes, (mode) => { return mode.paymentType === key });\n const that = this;\n if (themode) {\n this.setCurrentFocusOnly(key);\n return;\n } else if (paymode.thePaymodes.length >= 1) {\n switch (this.props.initData(\"multiPay\")) {\n case MultiPay.FORBIDDEN:\n Message.error(\"当前设置为不支持多种结算方式。\");\n break;\n case MultiPay.NOTIFICATION:\n noAlreadyWarn ? ModalWraper.confirm({\n className: 'tplus-confirm-modal',\n title: '复合结算',\n content: '您确定要使用多种结算方式吗?',\n onOk() {\n that.setState({\n noAlreadyWarn: false\n })\n that.onTabsClick2(paymode, brefund, themode, key, bookType);\n },\n onCancel() {\n },\n }) : that.onTabsClick2(paymode, brefund, themode, key, bookType);\n break;\n default:\n this.onTabsClick2(paymode, brefund, themode, key, bookType);\n break;\n }\n } else {\n this.onTabsClick2(paymode, brefund, themode, key, bookType);\n }\n }\n\n editModal = (id,type,boriginReturn)=>{\n this.setState({currentIndex:id});\n const { PayStyle } = enumController.getEnumOj();\n switch(type){\n case PayStyle.hyczk:\n !boriginReturn && this.showCzkModal(id);\n break;\n case PayStyle.jfdx:\n !boriginReturn && this.showJfdxModal(id);\n break;\n case PayStyle.djq:\n this.showDjqModal(id);\n break;\n }\n }\n\n setCurrentFocusAndAddPay = (key, bookType, payId) => {\n this.store.changeFocusAndAddPay(key, bookType);\n if(this.store.bquick){\n this.handleSettle(\"quickPay\");\n }else{\n this.setFocusAndSelection(key, payId);\n }\n }\n\n onDelPay = (index,boriginReturn,type, bookType) => {\n const { PayStyle } = enumController.getEnumOj();\n if(boriginReturn && (type==PayStyle.hyczk || type==PayStyle.djq || type==PayStyle.jfdx)){\n Message.info('原单退货时,该结算方式不可以删除。');\n }else{\n this.store.delPay(index, bookType);\n }\n }\n\n handleChange = (index, e, type) => {\n if(!stores.offlineSys.shouldSettlement(this.store.paymode.currentFocus)) return;\n let mode=_find(this.store.paymode.thePaymodes,{'paymethodId':index});\n // if(type == 'bookPay' && this.store.paymode.isNotFullOnlyBook && mode.virtualPay){\n // return Message.error(\"付订金时不可使用零售抵现类结算方式!\");\n // }\n let currentInput = e.target;\n let amountMaxLength = parseInt(this.props.initData[\"AmountMaxLength\"] || 10);\n if (!isNaN(e.target.value) || e.target.value == '-') {\n if (e.target.value.length <= amountMaxLength) {\n this.store.changeValue(index, e.target.value, false, type);\n }\n }\n }\n\n setCurrentModeValue=(val,max)=>{\n const { PayStyle } = enumController.getEnumOj();\n var reg = /^[\\d.]+$/g;\n if (this.store.paymode.currentMode.paymentType === PayStyle.hyczk || this.store.paymode.currentMode.paymentType === PayStyle.jfdx) {\n if (!val) {\n this.setState(({\n storageValue: val\n }))\n } else {\n if (!reg.test(val)) {\n return;\n } else {\n let value1 = val.split('.') ;\n if (value1.length > 1) {\n if (value1[1].length < 3) {\n this.setState({\n storageValue: val\n })\n } else {\n return;\n }\n } else {\n if (val.length > 9) {\n return\n } else {\n this.setState({\n storageValue: val\n })\n }\n }\n }\n }\n }\n // let bjfdx=this.store.paymode.currentMode.paymentType==PayStyle.jfdx;\n this.store.paymode.setCurrentModeValue(val,max);\n }\n\n onBlur = (index, e, type) => {\n this.currentInput = null;\n this.store.changeFocusOnly(-1);\n this.store.changeValue(index, e.target.value == '-' ? 0 : e.target.value, true, type);\n }\n\n onFocus = (index, mode, paymode, e) => {\n this.currentInput = e.target;\n this.setState({ currentIndex: index });\n if (mode.paymentType == paymode.currentFocus) return;\n this.setCurrentFocusOnly(mode.paymentType);\n }\n\n onFocusHack = (index, mode, paymode, e) => {\n this.currentInput = e.target;\n this.setState({ currentIndex: index });\n if (mode.paymentType == paymode.currentFocus) return;\n this.store.changeFocusOnly(mode.paymentType);\n }\n\n\n setCurrentFocusOnly =(key)=>{\n this.store.changeFocusOnly(key);\n this.setFocusAndSelection(key);\n }\n\n appendCzkmode=(boriginReturn, params)=>{\n const { PayStyle } = enumController.getEnumOj();\n if(boriginReturn){\n Message.info('原单退货时不可以使用非原单的储值卡结算方式。');\n return ;\n }\n let bappend=true;\n const { paymode, newStyle, member } = this.store;\n if(newStyle && member.ID && _findIndex(paymode.thePaymodes, (mode) => {return mode.paymentType === PayStyle.hyczk && mode.member.id==member.ID} )==-1){\n bappend=false;\n }\n this.showCzkModal(-1,bappend, params);\n }\n\n djqChecked=(q, dto)=>{\n const { Differentiate } = enumController.getEnumOj()\n if(this.store.paymode.currentMode.boriginReturn){\n Message.info(`原单退货时${Differentiate.COUPON}不可以取消。`);\n return ;\n }\n let { isNewRetailBCPos } = platform || {};\n if (isNewRetailBCPos) {\n this.store.paymode.calcDjqCheckValue(q, this.store.dto);\n } else {\n this.store.paymode.calcDjqValue(q);\n }\n // this.props.onGetCouponList && this.props.onGetCouponList(this.store.dto, _filter(this.store.paymode.currentMode.djqs,(djq)=>{return djq.couponCategoryEnum !== 'RIGHT'}));\n // this.props.onGetCouponList && this.props.onGetCouponList(this.store.dto, _filter(this.store.paymode.currentMode.djqs,(djq)=>{return djq.checked}), this.store.paymode.currentMode.djqs);\n }\n\n addDjq=()=>{\n //document.getElementById(`inputS${index}`)\n //const v = _trim(this['inputdjq']['input']['value']);\n //api\n // this.store.addDjq('10000','5元优惠券',5,'无门槛','2019-12-31',true);\n const v=_trim(this.inputdjq.input.value);\n // if(v===''){\n // return ;\n // }\n this.store.checkCoupon(v).then(()=>{\n this.inputdjq.input.focus();\n }).finally(() => {\n setTimeout(() => {\n this.inputdjq.input.value='';\n let ele = document.getElementById('djqInput');\n ele.value = '';\n }, 100)\n })\n }\n\n loadCzk= (v)=>{\n if(this.czkdebounced){\n return;\n }\n this.czkdebounced=_debounce(async()=>{\n let memberdata1 = await this.store.loadCzk(v);\n if (memberdata1 && memberdata1.length === 1) {\n if (this.store.paymode.currentMode.storageCardNo) {\n this.setState({\n czkValue: this.store.paymode.currentMode.storageCardNo\n })\n }\n } else if (memberdata1 && memberdata1.length >= 1) {\n this.setState({\n czkVisible: true,\n moreCzkVisible: true,\n memberdata1: memberdata1\n });\n }\n },1000,{\n 'leading': true,\n 'trailing': false\n });\n this.czkdebounced();\n setTimeout(()=>{\n this.czkdebounced.cancel();\n this.czkdebounced=null;\n },2000)\n }\n\n onHotKeyClick1=(mode,index,boriginReturn,bookType)=>{\n // if (bookType == 'bookPay' && this.store.paymode.isNotFullOnlyBook && mode.virtualPay){\n // return Message.error(\"付订金时不可使用零售抵现类结算方式!\");\n // }\n if(!stores.offlineSys.shouldSettlement(mode.paymentType)) return false;\n if(this.hotkeydebouncedPayMode == mode){\n return;\n }\n if(this.hotkeydebounced){\n this.hotkeydebounced.cancel();\n this.hotkeydebounced=null;\n }\n this.hotkeydebounced=_debounce(()=>{\n this.hotkeydebouncedPayMode = mode;\n this.onHotKeyClickModal(mode,index,boriginReturn);\n },500,{\n 'leading': true,\n 'trailing': false\n });\n this.hotkeydebounced();\n setTimeout(()=>{\n this.hotkeydebounced.cancel();\n this.hotkeydebounced=null;\n this.hotkeydebouncedPayMode = \"\";\n },1000)\n }\n\n onHotKeyClickModal=(mode,index,boriginReturn)=>{\n const { PayStyle } = enumController.getEnumOj();\n let { brefund } = this.store;\n if(this.checkModeDisabled(mode.paymentType,brefund,boriginReturn)){\n return;\n }\n if(mode.paymentType==PayStyle.hyczk){\n this.appendCzkmode(boriginReturn);\n }else{\n this.editModal(index, mode.paymentType, boriginReturn)\n }\n }\n\n onHotKeyClick2=(index,mode,paymode,e, bookType)=>{\n if(!stores.offlineSys.shouldSettlement(mode.paymentType)) return false;\n if(this.hotkeydebouncedPayMode == mode){\n return;\n }\n // if (bookType == 'bookPay' && this.store.paymode.isNotFullOnlyBook && mode.virtualPay){\n // return Message.error(\"付订金时不可使用零售抵现类结算方式!\");\n // }\n this.store.changeClickFocusOnly(mode.paymentType);\n this.setCurrentFocusOnly(mode.paymentType);\n if(this.hotkeydebounced){\n this.hotkeydebounced.cancel();\n this.hotkeydebounced=null;\n }\n this.hotkeydebounced=_debounce(()=>{\n this.hotkeydebouncedPayMode = mode;\n this.onFocus(index, mode, paymode, e);\n },500,{\n 'leading': true,\n 'trailing': false\n });\n this.hotkeydebounced();\n setTimeout(()=>{\n this.hotkeydebounced.cancel();\n this.hotkeydebounced=null;\n this.hotkeydebouncedPayMode = \"\";\n },1000)\n }\n\n onHotKeyEnter = (e, notsettle) => {\n let { paymode, brefund, newStyle } = this.store;\n // if (this.hotkeydebouncedPayMode == paymode) {\n // return;\n // }\n if (this.hotkeydebounced) {\n this.hotkeydebounced.cancel();\n this.hotkeydebounced = null;\n }\n this.hotkeydebounced = _debounce(() => {\n // let { type, amount, totalVariety, totalQuantity, isReturn, quantityDetail,memberDisabled } = this.props\n let boriginReturn = this.context && this.context.viewModel && this.context.viewModel.data && JSON.getCellValue(this.context.viewModel.data, \"IsOriginalReturn\");\n let thePaymodes = newStyle ? _filter(paymode.thePaymodes, (m) => { return !(this.checkModeDisabled(m.paymentType, brefund, boriginReturn) && parseFloat(m.value) == 0); }) : paymode.thePaymodes;\n // 定义当前检测的paymode\n this.hotkeydebouncedPayMode = paymode;\n if (!notsettle && !this.checkSettleDisabled(paymode, thePaymodes)) {\n this.handleSettle();\n } else if ((thePaymodes || []).length > 0) {\n\n // 根据currentIndex = paymethodeId 获取当前支付方式位置\n let payIndex = -1;\n thePaymodes.forEach((paymodes,index)=>{\n if(paymodes.paymethodId == this.state.currentIndex) payIndex = index;\n });\n this.setFocusAndSelectionMode(thePaymodes,payIndex);\n }\n }, 500, {\n 'leading': true,\n 'trailing': false\n });\n this.hotkeydebounced();\n setTimeout(() => {\n this.hotkeydebounced && this.hotkeydebounced.cancel();\n this.hotkeydebounced = null;\n this.hotkeydebouncedPayMode = \"\";\n }, 1000)\n }\n\n\n setFocusAndSelectionMode = (thePaymodes,currentIndex) => {\n const { PayStyle } = enumController.getEnumOj();\n let displayPayModeList = [...thePaymodes];\n // 复制支付方式列表\n const SaoMaPayMode = displayPayModeList.find( mode => mode.paymentType == PayStyle.smzf);\n // 查找扫码支付\n if(SaoMaPayMode){\n // 如果扫码支付存在 则 排除微信支付宝\n displayPayModeList = displayPayModeList.filter( mode => mode.paymentType != PayStyle.zfb && mode.paymentType != PayStyle.wx )\n }\n // 查找到下一次enter键后的支付方式\n let paymodeOb = this.findHaveNoModlePayType(displayPayModeList,currentIndex);\n if(paymodeOb){\n // 获取焦点\n this.setFocusAndSelection(paymodeOb.mode.paymentType);\n }\n }\n\n\n\n /**\n *\n * @param {*} thePaymodes 支付方式列表\n * @param {*} currenIndex 当前支付方式下标\n * @param {*} symbol 从当前currenIndex开始 还是从当前currenIndex截止\n */\n findModlePayBySplice = (thePaymodes,currenIndex,symbol) =>{\n const { PayStyle } = enumController.getEnumOj();\n let findIndex = currenIndex;\n const endCurrentMode = thePaymodes.find((mode, index) => {\n findIndex++;\n return (symbol? index > currenIndex:index < currenIndex) &&\n mode.paymentType != PayStyle.hyczk &&\n mode.paymentType != PayStyle.djq &&\n mode.paymentType != PayStyle.jfdx &&\n stores.offlineSys.shouldSettlement(mode.paymentType,true)\n });\n if(endCurrentMode) return { mode:endCurrentMode,index:findIndex}\n return null;\n }\n\n findHaveNoModlePayType = (thePaymodes,currenIndex) => {\n if(!thePaymodes || thePaymodes.length == 0) return null;\n const endCurrentModeOb = this.findModlePayBySplice(thePaymodes,currenIndex,true)\n if(endCurrentModeOb) return endCurrentModeOb;\n const startCurrentModeOb = this.findModlePayBySplice(thePaymodes,currenIndex,false)\n if(startCurrentModeOb) return startCurrentModeOb;\n return null\n }\n\n\n setFocusAndSelection = (key, payId) => {\n const that=this;\n const { paymode } = this.store;\n const { PayStyle } = enumController.getEnumOj();\n let themode = _find(paymode.thePaymodes, (mode) => mode.paymentType === key);\n if (key === PayStyle.hyczk) {\n themode = _find(paymode.thePaymodes, (mode) => mode.paymethodId === payId);\n }\n const index = (themode && themode.paymethodId) || -1;\n if (index !== -1) {\n setTimeout( ()=> {\n const input = document.getElementById(`inputS${index}`)\n that.setState({currentIndex:index});\n this.currentInput = input;\n setTimeout( ()=> {\n input.focus();\n input.setSelectionRange(0, input.value.length)\n }, 10)\n\n }, 200)\n }\n }\n\n settleUnReturn = async () => {\n const that = this;\n ModalWraper.confirm({\n className: 'tplus-confirm-modal',\n content: <div className='unReturn'><div className='title'>支付超时,需要重新查询支付结果!</div><div>若不重新查询,会出现顾客支付成功,但零售单收款不成功的情况。</div></div>,\n async onOk() {\n window.__queryingModal = openQueryingModal();\n let result = await that.store.querySettleResult();\n setTimeout(() => {\n if (window.__queryingModal) {\n window.__queryingModal.destroy()\n window.__queryingModal = null\n }\n }, 0)\n switch (result.Flag) {\n case \"0\"://成功\n that.store.setDtoID(result.ID);\n that.settleSuccess();\n break;\n case \"1\"://处理中\n that.settleUnReturn();\n // Message.info(\"结算正在处理中,请稍后再次查询。\");\n break;\n case \"2\"://失败\n Message.info(`结算失败,原因:${result.Message}。`);\n // that.settleCanceled();\n break;\n }\n },\n onCancel() {\n // this.settleCanceled();\n },\n });\n }\n settleCanceled=()=>{\n console.log('settlement--settleCanceled--调用清除数据==Focus==')\n this.props.clearVoucherData && this.props.clearVoucherData();\n this.cancelState();\n }\n\n settleSuccess = async () => {\n //提示成功\n const { PayStyle } = enumController.getEnumOj();\n let { amount, received, thePaymodes } = this.store.paymode;\n let { IdbusiType } = this.store.dto;\n let charge = this.store.paymode.charge;\n let openCashBox = !!_find(thePaymodes, (mode) => { return mode.paymentType == PayStyle.xianjin });\n // 判断双屏显示。\n const _this = this;\n const showTwoScreen = function (amount, received, charge) {\n const getScreenType = function () {\n let flag = false;\n if (_this.hasElectron === true || _this.isHorizontalSunMi) {\n let data = localStore.get('setting_setData') || [];\n data = data.filter(item => item.Name === 'EnableDoubleScreen');\n data = data && data.length > 0 ? data.shift() : null;\n if (data && data.Value === '1') {\n flag = true;\n }\n }\n return flag;\n }\n const params = {\n step: 3,\n data: {\n amount: amount,\n received: received,\n charge: charge\n }\n }\n let screenType = getScreenType();\n if (screenType === true) { //副屏-第二屏幕\n if (_this.isHorizontalSunMi) {\n window.sunMi_PresentationManager.sendMessageToSecondScreen(params);\n setTimeout(()=>{\n window.sunMi_PresentationManager.sendMessageToSecondScreen({ step: 1 });\n },3000)\n } else {\n nativeMs && nativeMs.setIpcRendererMethod('ReplyScreen', params);\n }\n setTimeout(() => { _this.props.onSettleSuccess && _this.props.onSettleSuccess({ openCashBox }) }, 1500)\n } else {\n _this.props.onSettleSuccess && _this.props.onSettleSuccess({ openCashBox });\n }\n }\n\n const { getSettleGift } = this.store;\n const { type } = this.props;\n let resp1 = false;\n if (type !==1) {\n try {\n // 获取支付成功后礼包情况\n resp1 = await getSettleGift();\n } catch(e) {\n console.log(\"获取支付礼包getSettleGift失败\");\n }\n }\n\n setTimeout(() => {\n if (window.__loadingModal) {\n window.__loadingModal.destroy()\n window.__loadingModal = null\n }\n let isXianjin = _this.state.isXianjin\n showTwoScreen(amount, received, charge);\n if (isXianjin) this.handleGuestShow(4, charge);\n _this.setState({\n noAlreadyWarn: true\n })\n\n let { MemberPoints, isMemberPointsReturn, isReturn } = _this.props;\n let message = \"支付成功\"\n if ((isReturn || isMemberPointsReturn) && Number(amount) == Number(0)) {\n message = \"退货成功\"\n } else if (MemberPoints && Number(amount) == Number(0)) {\n message = \"兑换成功\"\n }\n window.__successModal = showSuccessModal(amount, received, charge, _this.props.onModalClose, isXianjin, message, resp1 && resp1.data, stores, IdbusiType, () => {\n _this.handleGuestShow(5)\n })\n this.setState({ isXianjin: false })\n this.cancelState();\n }, 0)\n }\n // 处理客显显示功能\n handleGuestShow = (dtype, value) => {\n if (this.hasElectron === false) return;\n let dt = localStore.get('portsetting_hardSet') || [];\n const { guestshow_enable, guestshow_clear, guestshow_welcome, guestshow_collect, guestshow_refund, guestshow_change } = dt || {};\n const hasSuccess = localStore && localStore.get('portsetting_hardSet_isSuccess');\n if (!guestshow_enable || (!!guestshow_enable && hasSuccess == '0')) return;\n let other = '';\n switch (dtype) {\n case 0: //欢迎\n other = guestshow_welcome;\n break;\n case 2: //退款\n other = (guestshow_refund + \"\").replace('[含税总金额]', Math.abs(value))\n break;\n case 3: //收款\n other = (guestshow_collect + \"\").replace('[含税总金额]', value)\n break;\n case 4: //找零\n other = (guestshow_change + \"\").replace('[找零金额]', getFixedNumber(value))\n break;\n case 5: //清除\n other = guestshow_clear;\n break;\n }\n let params = JSON.stringify({ price: '', qty: '', total: '', inv: '', wel: '', other: other })\n console.log(`Send客显sendDataCusDisp:状态-${dtype},参数-${params}`)\n HardwareAPI.sendDataCusDisp({ data: params, dataType: dtype }, ret => { console.log(`Return客显sendDataCusDisp:状态-${dtype},返回-${JSON.stringify(ret)}`) })\n }\n\n handleSettle = async (args) =>{\n this.setState({\n settleDisabled: true,\n })\n console.log(\"settlement.handleSettle开始执行,参数:\",+args);\n const { PayStyle } = enumController.getEnumOj();\n const { paymode,brefund,boriginReturn,newStyle } = this.store;\n const isQuickPay = args === 'quickPay'\n const that =this;\n let status = false\n paymode.thePaymodes.forEach((v) => {\n if (v.paymentType === PayStyle.xianjin && v.value !== '0.00') {\n status = true\n }\n })\n this.setState({\n isXianjin: status ? true : false\n })\n if(that.checkCharge() && Math.abs(paymode.receivable)>that.props.initData(\"posChangeUpperAmount\")){\n Message.error('找零不能超过最大找零金额:'+getFixedNumber(that.props.initData(\"posChangeUpperAmount\"))+'元');\n this.setState({\n settleDisabled: false\n })\n return;\n }\n if(args !==\"zero\" && !newStyle){\n let zeromode=_find(paymode.thePaymodes,(mode)=>{\n return parseFloat(mode.value)==0 || (mode.exchangeRate!=1?parseFloat(mode.value2):parseFloat(mode.value))==0;\n })\n if(zeromode){\n this.setState({\n settleDisabled: false\n })\n Message.error(zeromode.name +' 的结算金额为零,不可以结算。');\n return;\n }\n }\n\n let promises = []\n const thePaymodes = _sortBy(newStyle ?_filter(paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):paymode.thePaymodes, 'orderBy')\n if(isQuickPay ){\n let quickmode=thePaymodes[0];\n if (this.checkModeDisabled(quickmode.paymentType,brefund,boriginReturn)){\n this.setState({\n settleDisabled: false\n })\n Message.error('退款不能使用'+ quickmode.name +'结算,请使用其他结算方式!');\n return;\n }\n }\n _forEach(thePaymodes, (mode) => {\n if (!(boriginReturn && brefund) && (mode.paymentType == PayStyle.zfb || mode.paymentType == PayStyle.wx || mode.paymentType == PayStyle.smzf || mode.paymentType == PayStyle.SQBPAY || mode.paymentType == PayStyle.CSYH\n || (mode.paymentType == PayStyle.xianjin && isQuickPay))) {\n promises.push(that.inputConfirm(mode, isQuickPay))\n }\n });\n\n const commit = async (values) => {\n const result = await this.store.commit(this.props.bTest);\n if (result === true) {//成功\n that.settleSuccess();\n Promise.resolve()\n } else {\n this.setState({\n settleDisabled: false\n })\n //提示失败\n setTimeout(() => {\n if (window.__loadingModal) {\n window.__loadingModal.destroy()\n window.__loadingModal = null\n }\n //撤销支付\n }, 0)\n if (result && (result.Code || result.code)) {\n switch (result.Code || result.code) {\n case 'RE_Settle_UnReturn':\n console.log('settlement--RE_Settle_UnReturn--调用清除数据==Focus==')\n this.props.clearVoucherData && this.props.clearVoucherData();\n this.cancelState();\n break;\n case 'ECONNABORTED'://error.code === 'ECONNABORTED' && error.message.indexOf('timeout')\n result.message.indexOf('timeout') > -1 && that.settleUnReturn();\n break;\n }\n }\n if(isQuickPay){\n that.props.onCancelSettle && that.props.onCancelSettle();\n that.cancelState();\n }\n\n await Promise.reject()\n }\n }\n\n async function handleUserInputs(promises) {\n let results = []\n try {\n for (let p of promises) {\n const result = await p\n results.push(result)\n }\n window.__loadingModal = openLoadingModal()\n await commit(results);\n } catch (err) {\n // notification.open({\n // message: '错误',\n // description: '失败, 请重新结算',\n // });\n }\n }\n\n handleUserInputs(promises)\n }\n\n handleCzk = async () =>{\n const that =this;\n const curmode = this.store.paymode.currentMode;\n let promises = [];\n const { isNewRetailBCPos } = platform || {};\n if (isNewRetailBCPos) {\n if(curmode.value>0){\n const { PayStyle } = enumController.getEnumOj();\n if (curmode.paymentType === PayStyle.hyczk) {\n if (curmode.cardTypeEnum === 'BALANCE_CARD') {\n !curmode.freePaymentPasswordStore && promises.push(that.inputPwd(curmode));\n } else {\n curmode.isNeedPassword && promises.push(that.inputPwd(curmode));\n }\n }\n }\n } else {\n if(curmode.member.needPwd && curmode.value>0){\n promises.push(that.inputPwd(curmode));\n }\n }\n\n const commit = async (values)=> {\n //密码校验\n const result= values.length>0 ? (await that.store.validePwd(values[0])) : \"\";\n if(result==\"\"){//成功\n //返回\n that.setCurrentFocusAndAddPay(curmode.paymentType, null, curmode.paymethodId);\n Promise.resolve()\n }else{\n //Message.info(\"密码不正确\");\n await Promise.reject(result)\n }\n }\n\n async function handleUserInputs(promises) {\n let results = []\n try {\n for (let p of promises) {\n const result = await p\n results.push(result)\n }\n await commit(results);\n } catch (err) {\n if(err!=\"cancelpwd\"){\n Message.error(err);\n setTimeout(()=>{that.handleCzk();},500);\n }\n }\n }\n\n handleUserInputs(promises)\n }\n //that[`inputS${paymode.paymethodId}`]\n fKeyboardOnOk = (paymethodeId) => {\n const input=this[`inputS${paymethodeId}`].input;\n return (e)=>{\n input && input.blur();\n Keyboard.close();\n }\n }\n fKeyboardOnClose = (paymethodeId) => {\n const input=this[`inputS${paymethodeId}`].input;\n return (e)=>{\n input && input.blur();\n Keyboard.close();\n }\n }\n\n keyboardOnOk = (e) => {\n this.inputkey && this[this.inputkey] && this[this.inputkey].input && this[this.inputkey].input.blur();\n Keyboard.close();\n }\n\n keyboardOnClose = (e) => {\n this.inputkey && this[this.inputkey] && this[this.inputkey].input && this[this.inputkey].input.blur();\n Keyboard.close();\n }\n changefn=(e)=>{\n console.log(e)\n }\n setConfirmPwdValue = (value) => {\n this.setState({\n confirmPwd: value\n })\n }\n inputPwd = async (paymode) => {\n const that = this\n const { confirmPwd } = this.state;\n return new Promise(function (resolve, reject) {\n const modal = asyncModal({\n onPressEnter: () => {\n Keyboard.close();\n const v = _trim(that[`inputAmount`]['input']['value']);\n // if (v !== '') {\n modal.destroy()\n const { confirmPwd } = that.state || {};\n setTimeout(() => {\n paymode.authCode=v;\n resolve({\n id:paymode.member.id,\n pwd: confirmPwd,\n })\n }, 100)\n // } else {\n // Message.info('请输入密码');\n // throw \"error\";\n // }\n },\n onPressEsc: () => {\n Keyboard.close();\n reject('cancelpwd')\n },\n maskClosable: false,\n keyboard: false,\n closable: true,\n title:paymode.name,\n width:450,\n className: (that.isHorizontalSunMi || !that.isMobileEnvironment) ? 'pwdModal' : 'pwdModal extraHeight',\n // 储值卡结账时显示为密码框\n content: (<div className=\"scanInput\">\n <div>\n <span className=\"label\">应收金额:</span><span className=\"yfje\">{getFixedNumber(paymode.value)}</span>\n </div>\n <div className=\"pwd\">\n <span className=\"label\">储值余额密码:</span>\n <span>\n {/* <input type=\"text\" style={{width:'0px',marginLeft:'20px'}}></input> */}\n {/* <Input\n className=\"content\"\n style={{marginLeft:'-20px'}}\n placeholder=\"输入密码\"\n ref={input => that[`inputS${paymode.paymethodId}`] = input}\n onChange={(e) => {\n this.setState({\n confirmPwd: e.target.value\n })\n }}\n value={confirmPwd}\n onFocus={(e)=>{\n const inputTarget = that[`inputS${paymode.paymethodId}`].input;\n Keyboard.open((v)=>{\n const value = Keyboard.getNewValue(inputTarget, inputTarget.value, v);\n console.log('zlf',inputTarget, inputTarget.value);\n inputTarget.value=value;\n this.setState({\n confirmPwd: e.target.value\n })\n }, that.fKeyboardOnOk(paymode.paymethodId), that.fKeyboardOnClose(paymode.paymethodId))()\n }\n }\n onBlur={(e)=>{\n this.setState({\n confirmPwd: e.target.value\n })\n Keyboard.close();\n }}\n /> */}\n <NumkeyboardPassword\n className=\"content\"\n newType='positive'\n bordered\n placeholder=\"请输入6位数字密码\"\n style={{ width: 266, height: 32 }}\n maxLength={6}\n ref={input => that.inputAmount = input}\n onChange={value => that.setConfirmPwdValue(value)}\n // onBlur={value => that.handleConfirmBlur}\n />\n </span>\n </div>\n <div className=\"buttonRegion\">\n <div className=\"fr\">\n <Button size=\"large\" onClick={() => {\n modal.destroy()\n reject('cancelpwd')//\n }}>取消\n </Button>\n <Button\n type=\"primary\" size=\"large\" onClick={() => {\n const v = _trim(that[`inputAmount`]['input']['value'])\n const { confirmPwd } = that.state || {};\n // if (v !== '') {\n modal.destroy()\n // if (isQuickPay) {\n // window.__loadingModal = openLoadingModal()\n // }\n setTimeout(() => {\n paymode.authCode=v;\n resolve({\n id:paymode.member.id,\n pwd: confirmPwd,\n })\n }, 100)\n // } else {\n // Message.info('请输入密码');\n // }\n }}>确定\n </Button>\n </div>\n </div>\n </div>),\n })\n // 扫码框自动聚焦\n setTimeout(() => {\n that[`inputS${paymode.paymethodId}`] && that[`inputS${paymode.paymethodId}`].input.focus();\n that.inputAmount && that.inputAmount.input.focus();\n }, 300)\n })\n }\n\n isNoProductTip(nonProductMap) {\n const { RetailDetails } = this.context.viewModel.data || {};\n let temphtml = [];\n if(Object.keys(nonProductMap).length > 0){\n const columns = [\n {\n title: '商品名称',\n dataIndex: 'name',\n key: 'name',\n ellipsis: true,\n },\n {\n title: '原因',\n dataIndex: 'reason',\n key: 'reason',\n ellipsis: true,\n },\n ];\n for (let key in nonProductMap){\n let product = RetailDetails.find(o=>o.Idinventory == key)\n temphtml.push({name: product.Inventory.Name, reason: nonProductMap[key]})\n }\n const modal = asyncModal({\n onPressEnter: () => {\n modal.destroy();\n },\n maskClosable: false,\n keyboard: false,\n closable: true,\n title:'不可配送商品',\n width:600,\n className: '',\n content: (\n <div className=\"not-distribution-tip\">\n <div className=\"tip-content\">\n <Table\n columns={columns}\n dataSource={temphtml}\n scroll={{ y: 240 }}\n pagination={false}\n size='middle'/>\n </div>\n <div className=\"not-distribution-btn\">\n <Button type=\"primary\" onClick={() => {modal.destroy()}}>知道了</Button>\n </div>\n </div>\n ),\n })\n return true;\n }\n return false;\n }\n\n btnDebounced = async (type, bquick) => {\n let IdbusiType = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.IdbusiType;\n let CustomerPhone = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.CustomerPhone;\n let DistributionMode = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.DistributionMode;\n let Address = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.Address;\n //预订时,若没录入买家手机号,或配送方式为快递时,弹框买家信息确认框\n if(IdbusiType == 38){\n if(DistributionMode.Id == 'ON_SITE_PICKUP' && !CustomerPhone && this.context.viewModel.data.Member.Mobilephone){\n this.props.syncMemberInfoProcessor();\n }\n if(!CustomerPhone && !this.context.viewModel.data.Member.Mobilephone || DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE'){\n let title = (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && Address ? '收货地址确认' : '收货人'\n await this.props.openBuyerModal(title);\n }\n }\n\n this.setState({\n bquick,\n isInputMember: true\n })\n const { PayStyle } = enumController.getEnumOj();\n const { paymode,brefund,boriginReturn,newStyle } = this.store;\n\n if(bquick && !stores.offlineSys.shouldSettlement(type)) return false;\n\n let status = false;\n paymode.thePaymodes.forEach((v) => {\n if (v.paymentType === PayStyle.xianjin && v.value !== '0.00') {\n status = true\n }\n })\n this.setState({\n isXianjin: status ? true : false\n })\n\n if (this.btndebounced) {\n return;\n }\n this.btndebounced = _debounce(() => {\n if (bquick) {\n this.quickSettle(type);\n } else {\n this.showModal();\n }\n }, 1000, {\n 'leading': true,\n 'trailing': false\n });\n this.btndebounced();\n setTimeout(() => {\n this.btndebounced.cancel();\n this.btndebounced = null;\n }, 2000)\n }\n\n onCzkChange=(v)=>{\n // console.log(\"czk change:\"+new Date().toLocaleTimeString())\n const { isNewRetailBCPos } = platform || {};\n if (!isNewRetailBCPos) {\n this.store.paymode.currentMode.member.setCardNo(v);\n }\n if (!/^[A-Za-z0-9]*$/.test(v)) {\n return;\n }\n this.setState({\n czkValue: v\n })\n // if(this.debounced){\n // this.debounced.cancel();\n // this.debounced=null;\n // // console.log(\"debounce canceled\");\n // }\n // this.debounced=_debounce(()=>{this.loadCzk(v)},2000);\n // this.debounced();\n }\n czkKeyboardOnOk = (e) => {\n this.czkInput.input.blur();\n Keyboard.close();\n this.loadCzk(this.czkInput.input[\"value\"]);\n }\n czkKeyboardOnClose = (e) => {\n this.czkInput && this.czkInput.input.blur();\n Keyboard.close();\n }\n\n onDjqChange=(v,isKeyBorad = false)=>{\n this.inputdjq.input.value=v;\n if(this.debounced){\n this.debounced.cancel();\n this.debounced=null;\n // console.log(\"debounce canceled\");\n }\n if(!isKeyBorad){\n this.debounced=_debounce(()=>{this.addDjq()},2000);\n this.debounced();\n }\n }\n djqKeyboardOnOk = (e) => {\n this.inputdjq.input && this.inputdjq.input.blur();\n Keyboard.close();\n this.addDjq();\n // this.loadCzk(this.czkInput.input[\"value\"]);\n }\n djqKeyboardOnClose = (e) => {\n this.inputdjq.input && this.inputdjq.input.blur();\n Keyboard.close();\n }\n\n checkCharge = () => {\n const { PayStyle } = enumController.getEnumOj();\n const { paymode } = this.store;\n const themode=_find(paymode.thePaymodes, mode=>mode.paymentType===PayStyle.xianjin);\n return (paymode.receivable < 0 && themode && themode.value>=Math.abs(paymode.receivable));\n }\n\n checkThepaymode(key){\n return _findIndex(this.store.paymode.thePaymodes,{paymentType:key})>-1;\n }\n\n onKeyboardChange(key) {\n const { PayStyle } = enumController.getEnumOj();\n if (this.currentInput) {\n if(this.store.paymode.currentMode) {\n let paymentType1 = this.store.paymode.currentMode.paymentType;\n if (paymentType1 === PayStyle.djq || paymentType1 === PayStyle.hyczk || paymentType1 === PayStyle.jfdx) {\n return;\n }\n }\n const value = Keyboard.getNewValue(this.currentInput, this.currentInput.value, key, true);\n if (!isNaN(value) || value == '-') {\n this.currentInput.value = value;\n this.store.changeValue(this.state.currentIndex, value, false);\n }\n }\n }\n\n renderToolbtn(mode,index,bookType){\n const { PayIcon , PayStyle} = enumController.getEnumOj();\n let { isReturn } = this.props;\n let { paymode, brefund, boriginReturn } = this.store;\n let hasSMZF = _find(paymode.paymodes, (item) => { return item.paymentType === PayStyle.smzf});\n //同时存在微信、支付宝(或者收钱吧)、扫码支付三种方式,在非退货模式下,隐藏微信、支付宝。\n let hotkeyIndex = index;\n if (!isReturn && hasSMZF) {\n if (mode.paymentType == PayStyle.wx || mode.paymentType == PayStyle.zfb) {\n return null;\n } else {\n let theArr = _filter(paymode.paymodes, t => { return t.paymentType != PayStyle.wx && t.paymentType != PayStyle.zfb })\n hotkeyIndex = _findIndex(theArr, m => { return m.paymentType == mode.paymentType })\n }\n }\n\n // const classNames = classnames({ 'paymode': true, 'paymodeSelected': this.checkThepaymode(mode.paymentType), 'paymodeDisabled': this.checkModeDisabled(mode.paymentType, brefund, boriginReturn)});\n\n const paymodeDisabled = this.checkModeDisabled(mode.paymentType, brefund, boriginReturn)? 'paymodeDisabled':'';\n const paymodeSelected = this.checkThepaymode(mode.paymentType)? 'paymodeSelected':'';\n return (\n <div key={index + \"\"} className={paymodeDisabled+' '+paymodeSelected + ' paymode hotkey_' + this.compoundHotkeysList[hotkeyIndex]} onClick={() => { this.onTabsClick(mode.paymentType,bookType) }}>\n <div className=\"logo\"><div className=\"icon bg-subsidiary-gray-color4\"><Ticon className=\"primary-color\" type={PayIcon[mode.paymentType] || PayIcon['default']} /></div></div>\n <div className=\"text primary-color\">{mode.name.length > 8 ? _truncate(mode.name, { length: 5, omission: '' }) + '...' : mode.name}</div>\n <div className=\"hotkey\">{this.isHorizontalPad ? '' : this.compoundHotkeysList[hotkeyIndex] || ''}</div>\n </div>\n )\n }\n xianjinChange=(paymethodId,val,receivable)=>{\n const inputTarget=this[`inputS${paymethodId}`].input.input;\n const inputTarget2=this[`inputS${paymethodId}2`];\n let value=val;\n if(isNaN(value) && value!=='-'){\n value=parseFloat(receivable)+parseFloat(inputTarget2.innerHTML);\n }\n inputTarget.value=value;\n //预订现金快捷支付,这里修改找零计算,大于应收小于全额金额,不找零,大于全额金额找零\n if( this.store.paymode.isNotFullBook){\n if(parseFloat(value||0) > this.store.paymode.bookMaxValue){\n inputTarget2.innerHTML=getFixedNumber(parseFloat(value||0)-parseFloat(this.store.paymode.bookMaxValue));\n }\n if (parseFloat(value||0) < parseFloat(receivable)){\n inputTarget2.innerHTML=getFixedNumber(parseFloat(value||0)-parseFloat(receivable));\n }\n if(parseFloat(receivable) <= parseFloat(value||0) && parseFloat(value||0) <= this.store.paymode.bookMaxValue){\n inputTarget2.innerHTML=getFixedNumber(0);\n }\n } else {\n inputTarget2.innerHTML=getFixedNumber(parseFloat(value||0)-parseFloat(receivable));\n }\n }\n\n //移动端:扫描商品\n changeScanProduct = () => {\n if (this.scanObj) this.scanObj.startScan()\n }\n onScanResult = (val, modal, el) => {\n let _this = this[`${el}`];\n if (_this) _this.setStateValue(val, () => {\n if (modal) modal.submitHandler()\n })\n }\n onScanCzkResult = (val) => {\n let _this = this;\n this.onCzkChange(val);\n setTimeout(() => { _this.loadCzk(val) }, 0)\n }\n\n //优惠券\n onScanDjqResult = (val) => {\n let el = this.inputdjq;\n if (el && el.input) el.input.value = val;\n this.addDjq(val);\n }\n\n //现金支付-存在权限控制\n getXianjinPayment = (payType, value) => {\n const { PayStyle } = enumController.getEnumOj();\n const { isManualIntoAmount } = this.state\n return payType === PayStyle.xianjin && isManualIntoAmount === \"1\" && value > 0 ? \"\" : value\n }\n\n getXianjinBalance = (payType, value) => {\n const { PayStyle } = enumController.getEnumOj();\n //找零金额-存在权限控制\n const { isManualIntoAmount } = this.state\n return payType === PayStyle.xianjin && isManualIntoAmount === \"1\" && value > 0 ? getFixedNumber(0 - value) : '0.00'\n }\n\n inputConfirm = (paymode, isQuickPay) => {\n const that = this\n const isStoredValueCard = false\n const { discountPrototypeTotalAmount } = this.state;\n const {isReturn, type } = this.props;\n let isManualIntoAmount\n let BuyerPayFreight = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.BuyerPayFreight;\n let DistributionMode = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.DistributionMode;\n // 付款弹窗\n return new Promise(function (resolve, reject) {\n const { PayStyle , PayIcon2} = enumController.getEnumOj();\n const modal = asyncModal({\n onPressEnter: () => {\n if (paymode.paymentType == PayStyle.xianjin) {\n let zl = parseFloat(that[`inputS${paymode.paymethodId}2`].innerHTML);\n if (zl < 0) {\n Message.error('支付金额不能小于应收金额');\n throw \"error\";\n } else if (zl > that.props.initData(\"posChangeUpperAmount\")) {\n Message.error('找零不能超过最大找零金额:' + getFixedNumber(that.props.initData(\"posChangeUpperAmount\")) + '元');\n throw \"error\";\n }\n }\n const v = _trim(that[`inputS${paymode.paymethodId}`]['input']['input'].getAttribute('value'))\n if (v !== '') {\n modal.destroy()\n setTimeout(() => {\n if (paymode.paymentType == PayStyle.xianjin) {\n that.store.changeValue(paymode.paymethodId, v, false);\n } else {\n paymode.authCode = v;\n }\n resolve();\n }, 100)\n } else {\n if (paymode.paymentType == PayStyle.xianjin){\n Message.error('请输入付款金额');\n } else {\n Message.error('请录入或扫描付款码');\n }\n throw \"error\";\n }\n },\n isCancelFun: () => {\n const { prototypeVisible, protytypeCount } = that.state;\n if (protytypeCount === 1) {\n that.setState({\n protytypeCount: 0\n })\n // setTimeout(() => {\n // that[`inputS${paymode.paymethodId}`].input.input.focus();\n // }, 535)\n }\n return prototypeVisible || protytypeCount;\n },\n onPressEsc: () => {\n Keyboard.close();\n that.store.bquick && that.props.onCancelSettle && that.props.onCancelSettle();\n reject(`支付方式: ${paymode.name}失败`)\n },\n maskClosable: false,\n keyboard: false,\n closable: false,\n backdropStyle: {\n 'z-index': '1004'\n },\n width: 440,\n content: (\n <div className=\"scanInput\">\n <div className={classnames({ \"icon primary-color\": true, [\"color\" + paymode.paymentType]: true })}><Ticon type={PayIcon2[paymode.paymentType]} /></div>\n <div className=\"title\">{paymode.name}</div>\n <div>\n <span className=\"label\">应收金额:</span><span className=\"yfje\">\n {paymode.value}\n {DistributionMode && (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && BuyerPayFreight && BuyerPayFreight > 0 ? <span className=\"freight\">(包含{BuyerPayFreight}元运费)</span> : null}\n </span>\n </div>\n {\n (paymode.paymentType == PayStyle.xianjin) &&\n <div className='contentzf'>\n <span className=\"contentlabel\">{paymode.name}支付:</span>\n <span>\n <NumKeyboard\n id='paymentAmount'\n className=\"content\"\n type='text'\n placeholder='请输入付款金额'\n disabled={paymode.value < 0}\n defaultValue={that.getXianjinPayment(paymode.paymentType, paymode.value)}\n onChange={(value) => { that.xianjinChange(paymode.paymethodId, value, paymode.value); }}\n ref={input => that[`inputS${paymode.paymethodId}`] = input}\n onBlur={(e) => {\n const inputTarget = that[`inputS${paymode.paymethodId}`].input.input;\n if (that.state.isManualIntoAmount === \"1\" && paymode.paymentType === PayStyle.xianjin && inputTarget.value === \"\") {\n return;\n }\n inputTarget.value = getFixedNumber(inputTarget.value)\n }}\n />\n </span>\n </div>\n }\n {\n (paymode.paymentType == PayStyle.xianjin) &&\n <div className=\"zlje\">\n <span className=\"label\">找零金额:</span>\n <span className=\"yfje\" ref={input => that[`inputS${paymode.paymethodId}2`] = input}>{that.getXianjinBalance(paymode.paymentType, paymode.value)}</span>\n </div>\n }\n {\n !isReturn && type !==1 &&\n <div className=\"zlje prototype\">\n <span className=\"label\">优惠明细:</span>\n <span className=\"yfje economize\">省¥{discountPrototypeTotalAmount}</span>\n <span onClick={that.prototypeDetailedClick} className='prototypeDetailed primary-color'>优惠明细<Ticon type='you2'/></span>\n </div>\n }\n {\n (paymode.paymentType == PayStyle.wx || paymode.paymentType == PayStyle.zfb || paymode.paymentType == PayStyle.smzf || paymode.paymentType == PayStyle.SQBPAY || paymode.paymentType == PayStyle.CSYH) &&\n <div className='contentzf'>\n <span className=\"contentlabel\">{paymode.name}支付:</span>\n <span>\n <NumKeyboardScan\n className=\"content \"\n type='text'\n placeholder=\"扫描或输入付款码\"\n ref={input => that[`inputS${paymode.paymethodId}`] = input} />\n </span>\n {\n that.isHorizontalPad &&\n <span className='contentscan'>\n <Ticon type='saomiao1' className='icon' onClick={that.changeScanProduct} />\n <Scan ref={scan => that.scanObj = scan} onChange={value => that.onScanResult(value, modal, `inputS${paymode.paymethodId}`)} />\n </span>\n }\n </div>\n }\n <div className={classnames({ \"buttonRegion\": true, \"buttonRegion2\": paymode.paymentType == PayStyle.xianjin })}>\n <div className=\"fr\">\n <Button\n onClick={() => {\n modal.destroy()\n that.setState({\n settleDisabled: false\n })\n that.store.bquick && that.props.onCancelSettle && that.props.onCancelSettle();\n that.store.bquick && that.store.delPay(paymode.paymethodId, !isQuickPay ? 'bookPay':'');\n reject(`支付方式: ${paymode.name}失败`)\n }}>取消</Button>\n <Button\n type=\"primary\"\n onClick={() => {\n if (paymode.paymentType == PayStyle.xianjin) {\n let zl = parseFloat(that[`inputS${paymode.paymethodId}2`].innerHTML);\n if (zl < 0) {\n if (that[`inputS${paymode.paymethodId}`].input.input.value === '') {\n Message.error('请输入付款金额');\n } else {\n Message.error('支付金额不能小于应收金额');\n }\n return;\n } else if (zl > that.props.initData(\"posChangeUpperAmount\")) {\n Message.error('找零不能超过最大找零金额:' + getFixedNumber(that.props.initData(\"posChangeUpperAmount\")) + '元');\n return;\n }\n }\n const v = _trim(that[`inputS${paymode.paymethodId}`]['input']['input'].getAttribute('value'))\n\n if (v !== '') {\n modal.destroy()\n setTimeout(() => {\n if (paymode.paymentType == PayStyle.xianjin) {\n that.store.changeValue(paymode.paymethodId, v, false, 'bookPay');\n } else {\n paymode.authCode = v;\n }\n resolve();\n }, 100)\n } else {\n if (paymode.paymentType == PayStyle.xianjin){\n Message.error('请输入付款金额');\n } else {\n Message.error('请录入或扫描付款码');\n }\n }\n }}>确定</Button>\n </div>\n </div>\n </div>),\n })\n // 扫码框自动聚焦\n setTimeout(() => {\n // console.log(that[`inputS${paymode.paymethodId}`].input, '-------------------')\n that[`inputS${paymode.paymethodId}`].input.input.focus()\n }, 350)\n })\n }\n\n\n checkCurrentModeHaveMutex = (type) => {\n let { paymode,newStyle } = this.store;\n const { PayStyle } = enumController.getEnumOj();\n const payTypeList = [PayStyle.SQBPAY,PayStyle.CSYH,PayStyle.smzf];\n const payTypeFilterList = payTypeList.filter( filterType => filterType !== type);\n // 主要排查当前的支付方式 是否是包含在互斥的支付方式\n if(payTypeFilterList.length === payTypeList.length) return false;\n const disableUserMode = _find(paymode.thePaymodes,(mode)=>{\n const haveUseTypeList = payTypeFilterList.find(filterType =>{\n // 单据模式的情况还有要判断互斥的支付方式是否有值 触屏模式直接判断是否选择了某个支付方式\n return filterType == mode.paymentType && (newStyle? mode.value != 0 :true)\n });\n // 如果查找到互斥目标支付方式并且不是当前支付方式 返回true\n if(mode.paymentType !== type && haveUseTypeList && haveUseTypeList.length != 0) return true\n })\n if(disableUserMode) return true\n return false\n }\n\n checkModeDisabled=(type,brefund,boriginReturn)=>{\n const { PayStyle } = enumController.getEnumOj();\n return (((brefund && (type==PayStyle.wx || type==PayStyle.zfb || type==PayStyle.smzf || type==PayStyle.jfdx || type==PayStyle.djq || type==PayStyle.SQBPAY || type==PayStyle.CSYH))\n || (boriginReturn && type==PayStyle.hyczk))\n && !(boriginReturn && (type==PayStyle.wx || type==PayStyle.zfb))) || this.checkCurrentModeHaveMutex(type) ;\n }\n\n checkSettleDisabled=(paymode,thePaymodes)=>{\n const { PayStyle } = enumController.getEnumOj();\n console.log(\"settlement.checkSettleDisabled开始执行,参数:\",{paymode,thePaymodes})\n if(paymode.amount==0 && paymode.received==0){\n console.log(\"settlement.checkSettleDisabled返回结果:\",false)\n return false;\n }\n if(this.store.brefund){\n let result=!(paymode.receivable==0 && thePaymodes.length>0);\n console.log(\"settlement.checkSettleDisabled返回结果:\",result)\n return result;\n }\n let xj=_find(thePaymodes,(mode)=>{return mode.paymentType==PayStyle.xianjin});\n let enabled=paymode.receivable==0 && thePaymodes.length>0;\n if(xj && xj.value!=0){\n enabled=paymode.receivable<=0 && thePaymodes.length>0 && (Math.abs(paymode.receivable)<xj.value);\n }\n console.log(\"settlement.checkSettleDisabled返回结果:\",!enabled);\n const { settleDisabled } = this.state;\n return !enabled || settleDisabled;\n }\n\n changeDecimalBuZero = (number, bitNum) => {\n if (bitNum == 0) return number;\n var f_x = parseFloat(number);\n if (isNaN(f_x)) {\n return '';\n }\n let newBitNum = Math.pow(10,bitNum)\n f_x = Math.round(number * newBitNum) / newBitNum;\n let s_x = f_x.toString();\n let pos_decimal = s_x.indexOf('.');\n if (pos_decimal < 0) {\n pos_decimal = s_x.length;\n s_x += '.';\n }\n while (s_x.length <= pos_decimal + bitNum) {\n s_x += '0';\n }\n return s_x;\n }\n // 单据模式下编辑储值卡\n editCzkModal = () => {\n const { PayStyle } = enumController.getEnumOj();\n _find(this.store.paymode.thePaymodes,(mode)=>{\n if (mode.paymentType==PayStyle.hyczk) {\n this.store.setCurrentMode(mode.paymethodId)\n }\n })\n\n this.setState({\n czkVisible: true\n })\n let { currentMode } = this.store.paymode;\n setTimeout(() => {\n if(!currentMode.member || !currentMode.member.id){\n this.czkInput && this.czkInput.input.focus()\n }else{\n if(this.inputCzkAmount && this.inputCzkAmount.input){\n this.inputCzkAmount.input.focus();\n this.inputCzkAmount.input.setSelectionRange(0, this.inputCzkAmount.input.value.length);\n }\n }\n }, 350)\n }\n\n paymodesCarouselList = (params,paymodes,carouselStart,CarouseOut) => {\n const CarouselTp = CarouseOut || Carousel\n const newParams = CarouseOut?{}:params\n const mapList = [];\n const { type } = this.props;\n paymodes.forEach((item,index)=>{\n // 整除则新增轮播页面\n if(index % carouselStart === 0){\n mapList[Math.floor(index/carouselStart)] = [];\n }\n mapList[Math.floor(index/carouselStart)].push(item);\n })\n return <CarouselTp vertical dots='true' touchMove='true' {...newParams}>\n {_map(mapList, (modeList, index) => {\n return <div>\n {\n _map(modeList, (mode, modeIndex) => {\n return this.renderToolbtn(mode, index*carouselStart+modeIndex, type !== 1 ? 'bookPay' : '')\n })\n }\n </div>\n })}\n </CarouselTp>\n }\n\n prototypeDetailedClick = () => {\n this.handleShowPrototype();\n this.setState({\n prototypeVisible: true,\n isPrototypeClick: true\n })\n }\n\n handleprototypeCancel = () => {\n this.setState({\n prototypeVisible: false,\n protytypeCount: 1,\n isPrototypeClick: false\n })\n let that = this;\n const { bquick, isPrototypeClick } = this.state;\n if (!isPrototypeClick) {\n if (bquick) {\n setTimeout(() => {\n this.payQuick();\n }, 100)\n } else {\n this.payFun();\n }\n } else {\n setTimeout(() => {\n let input = document.getElementById('paymentAmount');\n input && input.select();\n }, 700)\n }\n }\n\n couponClick = () => {\n this.setState({\n couponLight: !this.state.couponLight\n })\n }\n\n render() {\n const { PayIcon , PayIcon2 , PayStyle , Differentiate} = enumController.getEnumOj();\n const { btnDissabled, dataSource, discountTotalAmount,discountRetailTotalAount,discountPrototypeTotalAmount, storageValue, czkValue, newPassConfirm, newPass} = this.state;\n\n const { isNewRetailBCPos } = platform || {};\n let { paymode, brefund,newStyle } = this.store;\n let { type, amount, totalVariety, totalQuantity, isReturn, quantityDetail,memberDisabled, noIsMinAmount } = this.props\n // 原单退货\n let boriginReturn=this.context && this.context.viewModel && this.context.viewModel.data && JSON.getCellValue(this.context.viewModel.data, \"IsOriginalReturn\");\n let totalTaxAmount = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.TotalTaxAmount;\n\n //收订金\n let IdbusiType = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.IdbusiType;\n let BuyerPayFreight = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.BuyerPayFreight;\n let DistributionMode = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.DistributionMode;\n if(IdbusiType == 38 && this.isBook && this.percentageWhenBook < 100 && (!DistributionMode.Id || DistributionMode.Id == 'ON_SITE_PICKUP')){\n totalTaxAmount = totalTaxAmount * this.percentageWhenBook / 100;\n }\n if (IdbusiType == 39){\n totalTaxAmount = stores.drawerStore.thisWaitPaidAmount;\n }\n\n // 单据模式\n let thePaymodes=newStyle?_filter(paymode.thePaymodes,(m)=>{return !(this.checkModeDisabled(m.paymentType,brefund,boriginReturn)&& parseFloat(m.value)==0);}):paymode.thePaymodes;\n let { paymodes, settle, currentMode } =paymode;\n // 积分兑换 总积分\n let ExchangeIntegral = this.context && this.context.viewModel && this.context.viewModel.data.ExchangeIntegral;\n\n let _hasSMZF = _find(paymodes, (item) => { return item.paymentType === PayStyle.smzf });\n\n //同时存在微信、支付宝、扫码支付三种方式,在非退货模式下,隐藏微信、支付宝。\n if (!isReturn && _hasSMZF) {\n paymodes = paymodes.filter((mode)=>{\n if (mode.paymentType == PayStyle.wx || mode.paymentType == PayStyle.zfb) return null;\n return true;\n })\n }\n\n\n const quickPay =boriginReturn?[]: _filter(paymodes, paymode => paymode.isQuick);\n const productsIsEmpty = (type!=1 && this.context.viewModel.data.RetailDetails.length == 0) || (type==1 && parseFloat(amount || 0) <= 0) || memberDisabled || noIsMinAmount;\n const moreToolbtns=[];\n const params = {\n pagination: {\n el: '.swiper-pagination',\n },\n spaceBetween: 30\n }\n const carouselStart = 10;\n const carouselStart2 = 8;\n const currentIndex = this.state.currentIndex;\n const hasmember = currentMode && currentMode.member && currentMode.member.id;\n let quantity1 = 0, quantity2 = 0, quantity3 = 0, quantity4 = 0;\n let sumQuantity = 0;//数量总和的值,包括称重的。\n let { buyQuantity = 0, returnQuantity = 0 } = quantityDetail || {};\n let quantityPrecision = PosInitData(\"QuantityPrecision\");\n quantityPrecision = quantityPrecision ? parseInt(quantityPrecision) : '';\n if (this.props.showAmount) {\n quantity1 = totalVariety || this.context.viewModel.data.RetailDetails.length;\n quantity2 = this.changeDecimalBuZero(totalQuantity, quantityPrecision);\n quantity3 = this.changeDecimalBuZero(buyQuantity, quantityPrecision);\n quantity4 = this.changeDecimalBuZero(returnQuantity, quantityPrecision);\n let sumRetailDetails = this.context && this.context.viewModel && this.context.viewModel.data.RetailDetails;\n if (sumRetailDetails && sumRetailDetails.length > 0) {\n sumRetailDetails.forEach(v => {\n sumQuantity += Math.abs(v.Quantity);\n })\n }\n sumQuantity = this.changeDecimalBuZero(sumQuantity, quantityPrecision);\n }\n\n const themodeHyczk=thePaymodes.filter((mode) => mode.paymentType === PayStyle.hyczk && mode.value !== '0.00');\n return (\n <div className=\"billingSettlement\" ref={r => this.billingSettlementDocumnet = r}>\n {\n this.props.MemberPoints ?\n (\n <div className=\"receivable2\">\n <div className=\"text\">本次应收:</div>\n <div className={classnames({ \"amount\": true, \"smallfont\": Math.abs(totalTaxAmount) > 100000 })}>{getFixedNumber(totalTaxAmount)}</div>\n <div className='total'>{`数量合计${quantity2}`}</div>\n <div className='total'>{`积分合计${ExchangeIntegral || 0}`}</div>\n </div>\n )\n :\n (\n this.props.showAmount &&\n <div className=\"receivable\">\n <div className='summary'>\n <div className=\"text\">本次应收:</div>\n <div className={classnames({ \"amount\": true, \"smallfont\": Math.abs(totalTaxAmount) > 100000 })}>{getFixedNumber(totalTaxAmount)}</div>\n </div>\n {\n isReturn === true ?\n <div className=\"remark1\">\n <span>{`共${quantity1}种`}</span>\n <span className='span'>销</span><span>{quantity3}</span><span>件</span>\n <span className='span'>退</span><span>{quantity4}</span><span>件</span>\n <span className='span'>合计</span><span>{sumQuantity}</span>\n </div>\n :\n <div className=\"remark2\">\n <span>{`共${quantity1}种`}</span>\n <span className=\"span\">{quantity2}</span><span>件</span>\n <span className=\"span\">合计</span><span>{sumQuantity}</span>\n </div>\n }\n </div>\n )\n }\n <div className=\"btns\">\n {\n !this.isHorizontalPad && !this.props.MemberPoints &&\n _map(quickPay, (p, i) => {\n let iconclass = PayIcon2[p.paymentType] ? `color${p.paymentType}` : \"primary-color\";\n return (\n <Button className={classnames({ \"quick\": true, \"quick2\": type==1 })} key={`paymentType_${p.paymentType}`} onClick={() => { this.btnDebounced(p.paymentType, true) }}\n disabled={productsIsEmpty || (type!=1 && this.checkModeDisabled(p.paymentType, (this.context.viewModel.data.TotalTaxAmount || 0 - this.context.viewModel.data.OnlinePaymentAmount || 0) < 0, boriginReturn))}>\n <div className={classnames({ [iconclass]: true, \"icon\": true })}><Ticon type={PayIcon2[p.paymentType] || PayIcon2['default']} /></div>\n <div className=\"text\">{p.name.length > 8 ? _truncate(p.name, { length: 7, omission: '' }) + '...' : p.name}</div>\n </Button>)\n })\n }\n <Button key=\"settle\" className={classnames({ \"settle\": true, \"settle2\": type == 1,\"settleStorage\" :true ,'primary-btn': true })} onClick={() => { this.btnDebounced() }} disabled={productsIsEmpty}>{this.props.isMemberPoints ? '立即兑换' : this.props.isMemberPointsReturn ? '退货': settle.name}</Button>\n </div>\n {type!=1 && !newStyle && <Drawer\n title=\"复合结算\"\n width=\"600px\"\n placement=\"right\"\n maskClosable={false}\n closable={false}\n onClose={this.handleCancel}\n visible={this.state.visible}\n destroyOnClose={true}\n className={`settlement-wraper`}\n >\n <div className= {`settlement ${hotKey.hotKeyBindClass('5')}`}>\n <div className={classnames({ \"toolbar bg-subsidiary-gray-color4\": true, \"carousel\": paymodes.length > carouselStart })}>\n {paymodes.length <= carouselStart && <div>{_map(paymodes, (mode, index) => {\n return this.renderToolbtn(mode, index, 'bookPay')\n })}</div>}\n {\n paymodes.length > carouselStart && this.paymodesCarouselList(params,paymodes,carouselStart)\n }\n </div>\n <div className=\"paydetail\" style={{maxHeight:(document.body.clientHeight-(paymodes.length>6?275:200))+'px'}}>\n <div className=\"left\">\n {\n thePaymodes.length==0&&<div className=\"emptydata detailempty\">请添加结算方式</div>\n }\n {\n // _map(_sortBy(thePaymodes, pay => pay['order'] || 0), (mode) => {\n _map(thePaymodes, (mode) => {\n const index=mode.paymethodId\n return (<div key={index+''} className=\"modeItem\">\n <div className={classnames({\"main\":true,\"focusbottom\":currentIndex==index})}>\n <div className={classnames({\"name\":true})}>{mode.name}</div>\n <div className={classnames({\"content\":true})}>\n {\n (mode.paymentType == PayStyle.hyczk || mode.paymentType == PayStyle.jfdx || mode.paymentType == PayStyle.djq) ?\n <input id={`inputS${index}`}\n className={hotKey.hotKeyNotFilter()}\n onClick={() => { this.editModal(index, mode.paymentType, boriginReturn) }} value={getFixedNumber(mode.value)} />\n :\n <input id={`inputS${index}`}\n className={hotKey.hotKeyNotFilter()}\n value={mode.exchangeRate != 1 ? mode.value2 : mode.value}\n onClick={e => this.onHotKeyClick2(index, mode, paymode, e)}\n onBlur={e => this.onBlur(index, e, 'bookPay')}\n onFocus={e => this.onFocusHack(index, mode, paymode, e)}\n onChange={e => this.handleChange(index, e, 'bookPay')}\n />\n }\n </div>\n <span className='minus' onClick={() => {\n this.onDelPay(index,boriginReturn && mode.boriginReturn,mode.paymentType, 'bookPay');\n }}>\n <Ticon type=\"shanchu\" className=\"minusIcon primary-color\"/>\n </span>\n </div>\n {\n mode.paymentType==PayStyle.djq?\n <div className=\"append\" style={{ display:(mode.paymentType==PayStyle.hyczk || mode.paymentType==PayStyle.djq)?'block':'none'}}>\n <span className=\"balance\">溢收金额:</span>\n <span>{mode.overchargesAmount}</span>\n </div>:\n <div className=\"append\" style={{ display:(mode.paymentType==PayStyle.hyczk || mode.paymentType==PayStyle.djq)?'block':'none'}}>\n <span className=\"fl\">卡号:</span>\n <span className=\"fl\">{mode && mode.storageCardNo}</span>\n <br />\n <span className=\"balance fl\">余额:</span>\n <span className=\"fl\">{ getFixedNumber(mode.balance)}</span>\n <br />\n {themodeHyczk && themodeHyczk.length && themodeHyczk[themodeHyczk.length -1].paymethodId === mode.paymethodId && !isReturn &&\n <Button onClick={() => {\n this.appendCzkmode(boriginReturn, 'noPlaySetPwd');\n }} className='addCard btn-border-primary'><Ticon type=\"jiahao\" className=\"plus b-theme-color\" />\n <span>添加卡</span>\n </Button>\n }\n </div>\n }\n </div>)\n })\n }\n </div>\n <div className=\"right\">\n <div className=\"righttop\">\n {paymode.onlineamount>0 && <div className=\"receivable\">\n <span>线上已收</span>\n <span>{paymode.onlineamount}</span>\n </div>}\n <div className=\"receivable\">\n <span>应收金额</span>\n <span>{paymode.amount}</span>\n </div>\n <div className=\"receivable\">\n <span>剩余应收</span>\n <span>{paymode.receivable}</span>\n </div>\n <div className=\"receivable\">\n <span>实收金额</span>\n <span className=\"received\">{paymode.received}</span>\n </div>\n <div className=\"receivable\" style={{display:this.checkCharge()?'block':'none'}}>\n <span>找零金额</span>\n <span className=\"received\">{getFixedNumber(Math.abs(paymode.receivable))}</span>\n </div>\n <div className=\"receivable\" style={{display: (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && BuyerPayFreight && BuyerPayFreight >0 ?'block':'none'}}>\n <span>运费</span>\n <span className=\"received\">{getFixedNumber(Math.abs(BuyerPayFreight))}</span>\n </div>\n </div>\n {\n !isReturn && <div onClick={this.prototypeDetailedClick} className='prototypeDetailed primary-color'>优惠明细<Ticon type='shouqi1'/></div>\n }\n <div className={this.isHorizontalPad ? 'keyboard_ios' : 'keyboard'}>\n {\n !this.isHorizontalPad &&\n <Keyboard type=\"number\" onChange={this.onKeyboardChange.bind(this)}></Keyboard>\n }\n </div>\n </div>\n </div>\n <div className=\"payfooter\">\n <span className=\"hotKeyEnter\" onClick={this.onHotKeyEnter}></span>\n <span><Button className=\"cancel\" onClick={this.handleCancel}>取消</Button></span>\n <span><Button type=\"primary\" className={this.isHorizontalPad ? \"settle1\" : \"settle\"} onClick={this.handleSettle}\n disabled={this.checkSettleDisabled(paymode, thePaymodes)}>结算</Button></span>\n </div>\n </div>\n </Drawer>}\n {type!=1 && newStyle && <Drawer\n title=\"复合结算\"\n width=\"600px\"\n placement=\"right\"\n maskClosable={false}\n closable={false}\n onClose={this.handleCancel}\n visible={this.state.visible}\n destroyOnClose={true}\n className={`settlement-wraper`}\n >\n <div className= {`settlement ${hotKey.hotKeyBindClass('5')}`}>\n <div className=\"paydetail newstyle\">\n <div className=\"top\">\n <div className=\"righttop\">\n {paymode.onlineamount>0 && <div className=\"receivable\">\n <span>线上已收</span>\n <span>{paymode.onlineamount}</span>\n </div>}\n <div className=\"receivable\">\n <span>应收金额</span>\n <span>{paymode.amount}</span>\n </div>\n <div className=\"receivable\">\n <span>剩余应收</span>\n <span>{paymode.receivable}</span>\n </div>\n <div className=\"receivable\">\n <span>实收金额</span>\n <span className=\"received\">{paymode.received}</span>\n </div>\n <div className=\"receivable\" style={{display:this.checkCharge()?'block':'none'}}>\n <span>找零金额</span>\n <span className=\"received\">{getFixedNumber(Math.abs(paymode.receivable))}</span>\n </div>\n <div className=\"receivable\" style={{display: (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && BuyerPayFreight && BuyerPayFreight >0 ?'block':'none'}}>\n <span>运费</span>\n <span className=\"received\">{getFixedNumber(Math.abs(BuyerPayFreight))}</span>\n </div>\n </div>\n {\n !isReturn && <div onClick={this.prototypeDetailedClick} className='prototypeDetailed primary-color'>优惠明细<Ticon type='shouqi1'/></div>\n }\n </div>\n <div className=\"bottom\">\n {\n thePaymodes.length==0&&<div className=\"emptydata detailempty\">请添加结算方式</div>\n }\n {\n _map(thePaymodes, (mode, mindex) => {\n let { isReturn } = this.props;\n let hasSMZF = _find(thePaymodes, m => { return m.paymentType === PayStyle.smzf});\n //同时存在微信、支付宝(或者收钱吧)、扫码支付三种方式,在非退货模式下,隐藏微信、支付宝。\n let hotkeyIndex = index;\n if (!isReturn && hasSMZF) {\n if (mode.paymentType == PayStyle.wx || mode.paymentType == PayStyle.zfb) {\n return null;\n } else {\n let theArr = _filter(paymode.paymodes, t => { return t.paymentType != PayStyle.wx && t.paymentType != PayStyle.zfb })\n hotkeyIndex = _findIndex(theArr, m => { return m.paymentType == mode.paymentType })\n }\n }\n const index = mode.paymethodId;\n return (mode.paymentType == PayStyle.hyczk && _findIndex(thePaymodes, (m) => { return m.paymentType == PayStyle.hyczk; }) != mindex ? <div></div> :\n <div key={index + ''} className=\"modeItem\">\n <div className={classnames({\"main\":true,\"focusbottom\":currentIndex==index})}>\n <div className={classnames({ \"name\": true})}>\n <div className=\"icon\"><Ticon type={PayIcon[mode.paymentType] || PayIcon['default']} /></div>\n <div className=\"text\">{mode.name}</div>\n <div className=\"hotkey\">{this.isHorizontalPad ? '' : this.compoundHotkeysList[hotkeyIndex] || ''}</div>\n </div>\n <div className={classnames({ \"content\": true})}>\n {\n (mode.paymentType == PayStyle.hyczk || mode.paymentType == PayStyle.jfdx || mode.paymentType == PayStyle.djq)\n ?\n <input id={`inputS${index}`}\n\n className={hotKey.hotKeyNotFilter(\"paymode hotkey_\" + this.compoundHotkeysList[hotkeyIndex])}\n disabled={this.checkModeDisabled(mode.paymentType, brefund, boriginReturn)}\n onClick={() => {\n // let czkinput = document.getElementById('inputS' + index);\n // if (mode.paymentType === PayStyle.hyczk) {\n // const { isProhibitMeStorageCard } = this.props;\n // if (isProhibitMeStorageCard) {\n // Message.warn('储值卡不可键盘录入,请刷卡!');\n // return;\n // }\n // }\n // mode.paymentType == PayStyle.hyczk && czkinput && czkinput.value !== '0.00' ? this.editCzkModal() :\n if (mode.paymentType == PayStyle.hyczk) {\n if (themodeHyczk && themodeHyczk.length === 0) {\n this.onHotKeyClick1(mode, index, boriginReturn);\n }\n } else {\n this.onHotKeyClick1(mode, index, boriginReturn, 'bookPay');\n }\n }}\n value={mode.paymentType == PayStyle.hyczk ? getFixedNumber(\n _reduce(_filter(thePaymodes, (tm) => { return tm.paymentType == PayStyle.hyczk }), function (sum, m) {\n return Math.Add(sum, m.value);\n }, 0)\n ) : getFixedNumber(mode.value)} />\n :\n <input id={`inputS${index}`}\n className={hotKey.hotKeyNotFilter(\"paymode hotkey_\" + this.compoundHotkeysList[hotkeyIndex])}\n disabled={this.checkModeDisabled(mode.paymentType, brefund, boriginReturn) || this.checkScanDisabled(mode.paymentType)}\n value={mode.exchangeRate != 1 ? mode.value2 : mode.value}\n onClick={e => this.onHotKeyClick2(index, mode, paymode, e, 'bookPay')}\n onBlur={e => this.onBlur(index, e, 'bookPay')}\n onFocus={e => this.onFocusHack(index, mode, paymode, e)}\n onChange={e => this.handleChange(index, e, 'bookPay')}\n />\n }\n </div>\n </div>\n {mode.paymentType == PayStyle.djq && <div className=\"append\" >\n <span className=\"balance\">溢收金额:</span>\n <span>{mode.overchargesAmount}</span>\n </div>}\n {_map(_filter(thePaymodes, (tm) => { return mode.paymentType == PayStyle.hyczk && parseFloat(tm.value || 0) != 0 && tm.paymentType == PayStyle.hyczk }), (m) => {\n return <div className=\"append\">\n <span >卡号:</span>\n <span >{m && m.storageCardNo}</span>\n <span className=\"fr\">{getFixedNumber(m.value)}</span>\n <span className=\"balance fr\">支付金额:</span>\n <br />\n {themodeHyczk && themodeHyczk.length && themodeHyczk[themodeHyczk.length -1].paymethodId === m.paymethodId &&\n <Button onClick={() => this.onHotKeyClick1(mode, index, boriginReturn)} className='addCard btn-border-primary'><Ticon type=\"jiahao\" className=\"plus b-theme-color\" />\n <span>添加卡</span>\n </Button>\n }\n </div>\n })}\n </div>)\n })\n }\n </div>\n </div>\n <div className=\"payfooter\">\n <span className=\"hotKeyEnter\" onClick={this.onHotKeyEnter}></span>\n <span><Button className=\"cancel\" onClick={this.handleCancel}>取消</Button></span>\n <span><Button type=\"primary\" className={this.isHorizontalPad ? \"settle1\" : \"settle\"} onClick={this.handleSettle}\n disabled={this.checkSettleDisabled(paymode, thePaymodes)}>结算</Button></span>\n </div>\n </div>\n </Drawer>}\n {\n type==1 && !newStyle &&\n <Modal\n wrapClassName={`settlement-wraper2`}\n width=\"600px\"\n visible={this.state.visible}\n maskClosable={false}\n title={\"复合结算\"}\n footer={null}\n maskStyle={{'z-index': '1004'}}\n onCancel={this.handleCancel}\n destroyOnClose={true}\n >\n <div className= {`settlement ${hotKey.hotKeyBindClass('5')}`}>\n <div className='settlementTop'>\n <div className={classnames({ \"toolbar\": true, \"toolbar2\": type==1, \"carousel\": paymodes.length > carouselStart2 })}>\n {\n paymodes.length <= carouselStart2 &&\n <div>\n {\n _map(paymodes, (mode, index) => {\n return this.renderToolbtn(mode, index)\n })\n }\n </div>\n }\n {\n paymodes.length > carouselStart2 && this.paymodesCarouselList(params,paymodes,carouselStart2)\n }\n </div>\n <div className=\"rightheader\">\n {\n paymode.onlineamount > 0 && <div className=\"receivable\">\n <span>线上已收</span>\n <span>{paymode.onlineamount}</span>\n </div>\n }\n <div className=\"receivable\">\n <span>应收金额</span>\n <span>{paymode.amount}</span>\n </div>\n <div className=\"receivable\">\n <span>剩余应收</span>\n <span>{paymode.receivable}</span>\n </div>\n <div className=\"receivable\">\n <span>实收金额</span>\n <span className=\"received\">{paymode.received}</span>\n </div>\n <div className=\"receivable\" style={{ display: this.checkCharge() ? 'block' : 'none' }}>\n <span>找零金额</span>\n <span className=\"received\">{getFixedNumber(Math.abs(paymode.receivable))}</span>\n </div>\n </div>\n </div>\n <div className=\"paydetail\">\n <div className=\"left\">\n {\n thePaymodes.length == 0 && <div className=\"emptydata detailempty2\">请添加结算方式</div>\n }\n {\n // _map(_sortBy(thePaymodes, pay => pay['order'] || 0), (mode) => {\n _map(thePaymodes, (mode) => {\n const index = mode.paymethodId\n return (<div key={index + ''} className=\"modeItem\">\n <div className={`main b-theme-color ${currentIndex == index && 'settlement-pay-item-border'}`}>\n <div className={classnames({ \"name\": true})}>{mode.name}</div>\n <div className={classnames({ \"content\": true})}>\n {\n (mode.paymentType == PayStyle.hyczk || mode.paymentType == PayStyle.jfdx || mode.paymentType == PayStyle.djq) ?\n <input id={`inputS${index}`}\n onClick={() => { this.editModal(index, mode.paymentType) }} value={getFixedNumber(mode.value)} />\n : <input id={`inputS${index}`}\n value={mode.exchangeRate != 1 ? mode.value2 : mode.value}\n onBlur={e => this.onBlur(index, e)}\n onChange={e => this.handleChange(index, e)}\n onFocus={e => this.onFocusHack(index, mode, paymode, e)}\n />\n }\n </div>\n <div className=\"minus\" onClick={() => {\n this.onDelPay(index);\n }}><Ticon type=\"shanchu\" className=\"minusIcon primary-color\"/></div>\n </div>\n {\n mode.paymentType == PayStyle.djq ?\n <div className=\"append\" style={{ display: (mode.paymentType == PayStyle.hyczk || mode.paymentType == PayStyle.djq) ? 'block' : 'none' }}>\n <span className=\"balance\">溢收金额:</span>\n <span>{mode.overchargesAmount}</span>\n </div> :\n <div className=\"append\" style={{ display: (mode.paymentType == PayStyle.hyczk || mode.paymentType == PayStyle.djq) ? 'block' : 'none' }}>\n <span className=\"fl\">卡号:</span>\n <span className=\"fl\">{mode && mode.storageCardNo}</span>\n <br />\n <span className=\"balance fl\">余额:</span>\n <span className=\"fl\">{getFixedNumber(mode.balance)}</span>\n </div>\n }\n </div>)\n })\n }\n </div>\n <div className=\"right\">\n <div className={this.isHorizontalPad ? 'keyboard_ios' : 'keyboard'}>\n {\n !this.isHorizontalPad &&\n <Keyboard type=\"number\" onChange={this.onKeyboardChange.bind(this)}></Keyboard>\n }\n </div>\n </div>\n </div>\n <div className=\"payfooter2\">\n <span className=\"hotKeyEnter\" onClick={this.onHotKeyEnter}></span>\n <span><Button className=\"cancel\" onClick={this.handleCancel}>取消</Button></span>\n <span><Button type=\"primary\" className=\"settle\" onClick={this.handleSettle}\n disabled={this.checkSettleDisabled(paymode, thePaymodes)}>结算</Button></span>\n </div>\n </div>\n </Modal>\n }\n {\n type==1 && newStyle &&\n <Modal\n wrapClassName={`settlement-wraper2`}\n width=\"600px\"\n visible={this.state.visible}\n maskClosable={false}\n title={\"复合结算\"}\n footer={null}\n backdropStyle={{'z-index': '1004'}}\n onCancel={this.handleCancel}\n destroyOnClose={true}\n >\n <div className= {`settlement ${hotKey.hotKeyBindClass('5')}`}>\n <div className=\"paydetail newstyle newstyle2\">\n <div className=\"top\">\n <div className=\"righttop\">\n {paymode.onlineamount>0 && <div className=\"receivable\">\n <span>线上已收</span>\n <span>{paymode.onlineamount}</span>\n </div>}\n <div className=\"receivable\">\n <span>应收金额</span>\n <span>{paymode.amount}</span>\n </div>\n <div className=\"receivable\">\n <span>剩余应收</span>\n <span>{paymode.receivable}</span>\n </div>\n <div className=\"receivable\">\n <span>实收金额</span>\n <span className=\"received\">{paymode.received}</span>\n </div>\n <div className=\"receivable\" style={{display:this.checkCharge()?'block':'none'}}>\n <span>找零金额</span>\n <span className=\"received\">{getFixedNumber(Math.abs(paymode.receivable))}</span>\n </div>\n </div>\n </div>\n <div className=\"bottom\">\n {\n thePaymodes.length==0&&<div className=\"emptydata detailempty\">请添加结算方式</div>\n }\n {\n // _map(_sortBy(thePaymodes, pay => pay['order'] || 0), (mode) => {\n _map(thePaymodes, (mode,mindex) => {\n let { isReturn } = this.props;\n let hasSMZF = _find(thePaymodes, m => { return m.paymentType === PayStyle.smzf });\n let hotkeyIndex = mindex;\n //同时存在微信、支付宝、扫码支付三种方式,在非退货模式下,隐藏微信、支付宝。\n if (!isReturn && hasSMZF) {\n if (mode.paymentType == PayStyle.wx || mode.paymentType == PayStyle.zfb) {\n return null;\n } else {\n let theArr = _filter(thePaymodes, t => { return t.paymentType != PayStyle.wx && t.paymentType != PayStyle.zfb })\n hotkeyIndex = _findIndex(theArr, m => { return m.paymentType == mode.paymentType })\n }\n }\n const index=mode.paymethodId\n return (mode.paymentType==PayStyle.hyczk && _findIndex(thePaymodes,(m)=>{return m.paymentType==PayStyle.hyczk;})!=mindex ? <div></div> :\n <div key={index+''} className=\"modeItem\">\n <div className={classnames({\"main\":true,\"focusbottom\":currentIndex==index})}>\n <div className={classnames({\"name\":true})}>\n <div className=\"icon\"><Ticon type={PayIcon[mode.paymentType]||PayIcon['default']}/></div>\n <div className=\"text\">{mode.name}</div>\n <div className=\"hotkey\">{this.isHorizontalPad? '' : this.compoundHotkeysList[mindex] || \"\"}</div>\n </div>\n <div className={classnames({\"content\":true})}>\n {\n (mode.paymentType == PayStyle.hyczk || mode.paymentType == PayStyle.jfdx || mode.paymentType == PayStyle.djq) ?\n <input id={`inputS${index}`}\n // className={classnames({'paymode':mode.paymentType == PayStyle.hyczk?(_findIndex(thePaymodes,(m)=>{return m.paymentType==PayStyle.hyczk;})==mindex?true:false):true})}\n className={hotKey.hotKeyNotFilter(\"paymode hotkey_\" + this.compoundHotkeysList[hotkeyIndex])}\n // className=\"paymode\"\n disabled={this.checkModeDisabled(mode.paymentType,brefund,boriginReturn)}\n onClick={() => {\n this.onHotKeyClick1(mode,index,boriginReturn);\n }}\n value={mode.paymentType==PayStyle.hyczk?getFixedNumber(\n _reduce(_filter(thePaymodes,(tm)=>{return tm.paymentType==PayStyle.hyczk}), function(sum, m) {\n return Math.Add(sum,m.value);\n }, 0)\n ):getFixedNumber(mode.value)} />\n :\n <input id={`inputS${index}`}\n className={hotKey.hotKeyNotFilter(\"paymode hotkey_\" + this.compoundHotkeysList[hotkeyIndex])}\n // className=\"paymode\"\n disabled={this.checkModeDisabled(mode.paymentType,brefund,boriginReturn) || this.checkScanDisabled(mode.paymentType)}\n value={mode.exchangeRate != 1 ? mode.value2 : mode.value}\n onClick={e => this.onHotKeyClick2(index, mode, paymode, e)}\n onBlur={e => this.onBlur(index, e)}\n onFocus={e => this.onFocusHack(index, mode, paymode, e)}\n onChange={e => this.handleChange(index, e)}\n />\n }\n </div>\n {/* <div className=\"righticon\" style={{ display:mode.paymentType==PayStyle.hyczk?'inline-block':'none'}}\n onClick={() => {\n this.appendCzkmode(boriginReturn);\n }}><Ticon type=\"zengjia\" className=\"plus\" /></div> */}\n </div>\n {mode.paymentType==PayStyle.djq && <div className=\"append\" >\n <span className=\"balance\">溢收金额:</span>\n <span>{mode.overchargesAmount}</span>\n </div>}\n {_map(_filter(thePaymodes,(tm)=>{return mode.paymentType==PayStyle.hyczk && parseFloat(tm.value||0)!=0 && tm.paymentType==PayStyle.hyczk}),(m)=>{\n return <div className=\"append\">\n <span >卡号:</span>\n <span >{m.member && m.member.cardNo}</span>\n <span className=\"fr\">{ getFixedNumber(m.value)}</span>\n <span className=\"balance fr\">支付金额:</span>\n </div>\n })}\n </div>)\n })\n }\n </div>\n </div>\n <div className=\"payfooter2\">\n <span className=\"hotKeyEnter\" onClick={this.onHotKeyEnter}></span>\n <span><Button className=\"cancel\" onClick={this.handleCancel}>取消</Button></span>\n <span><Button type=\"primary\" className=\"settle\" onClick={this.handleSettle}\n disabled={this.checkSettleDisabled(paymode, thePaymodes)}>结算</Button></span>\n </div>\n </div>\n </Modal>\n }\n <Modal\n wrapClassName={`czk ${this.isHorizontalPad ? 'extraHeight' : ''}`}\n width=\"400px\"\n visible={this.state.czkVisible}\n maskClosable={false}\n destroyOnClose={true}\n title={\"储值结算\"}\n onCancel={this.handleCzkCancel}\n keyboard={false}\n centered={ !this.isHorizontalPad ? true : false}\n footer={<div className=\"action\">\n <Button onClick={this.handleCzkCancel}>取消</Button>\n <Button type=\"primary\" disabled={currentMode && currentMode.errinfo!=''} onClick={this.handleCzkOk}>确定</Button>\n </div>}\n >\n <div>\n <div className=\"info\">\n {hasmember && <div className={classnames({\"type\":true,'colwidth3':hasmember})}>\n <div className=\"value valuetext\">{(currentMode && currentMode.member && currentMode.member.type) || '普通'}</div>\n <div className=\"name\">类型</div>\n </div>}\n <div className=\"gap\">\n <div className=\"gap1\"></div>\n <div className=\"gap2\"></div>\n <div className=\"gap1\"></div>\n </div>\n <div className={classnames({\"balance\":true,'colwidth2':!hasmember,'colwidth3':hasmember})}>\n <div className=\"value\">{currentMode && getFixedNumber(currentMode.balance)}</div>\n <div className=\"name\">可用余额</div>\n </div>\n <div className=\"gap\">\n <div className=\"gap1\"></div>\n <div className=\"gap2\"></div>\n <div className=\"gap1\"></div>\n </div>\n <div className={classnames({\"available\":true,'colwidth2':!hasmember,'colwidth3':hasmember})}>\n <div className=\"value\">{currentMode && getFixedNumber(Math.max(0,Math.min(currentMode.maxamount,currentMode.balance)))}</div>\n <div className=\"name\">本单可用</div>\n </div>\n </div>\n <div className=\"no\">\n <span>储值卡号:</span>\n <span>\n {/* <input value={currentMode && currentMode.member.cardNo} ref={input => this['inputczk'] =input } onKeyDown={e=>{if(e.keyCode==13){this.loadCzk(e.target.value);}}}></input> */}\n <Input\n type='text'\n placeholder=\"请扫描或输入手机号/储值卡号\"\n className={`input ${(this.hasElectron === true && this.iCCardServer === 1 || this.isHorizontalPad === true) ? 'temp' : ''}`}\n onChange={(e) => this.onCzkChange(e.target.value)}\n defaultValue={currentMode && currentMode.storageCardNo}\n value={czkValue}\n ref={input => this.czkInput =input}\n onKeyDown={\n async (e)=>{\n if(e.keyCode==13){\n let time = Date.parse(new Date());\n if (this.isStorageCardInputType && (time - this.keypressStime > 350)) {\n Message.warn('储值卡不可键盘录入,请刷卡!');\n this.keypressStime = null;\n this.setState({\n czkValue: null\n })\n return;\n }\n this.keypressStime = null;\n await this.loadCzk(e.target.value);\n const {paymode} = this.store;\n if (!paymode.currentMode.storageCardNo) {\n this.setState({\n czkvalue: null\n })\n }\n } else if (!this.keypressStime && e.keyCode !== 8) {\n this.keypressStime = Date.parse(new Date());\n }\n }\n }\n onFocus={(e)=>{\n this.inputTarget = this.czkInput.input;\n !this.state.prototypeVisible && Keyboard.open((v)=>{\n const value = Keyboard.getNewValue(this.inputTarget, this.inputTarget.value, v);\n this.onCzkChange(value);\n }, this.czkKeyboardOnOk, this.czkKeyboardOnClose)()\n }\n }\n onBlur={(e)=>{\n Keyboard.close();\n }}\n />\n </span>\n {\n this.hasElectron === true && this.iCCardServer === 1 &&\n <Ticon className='icon' onClick={this.handleReadICard} type=\"ICka\" />\n }\n {\n this.isHorizontalPad &&\n <Ticon type='saomiao1' className='icon' onClick={this.changeScanProduct} />\n }\n {\n /* 扫描组件 */\n this.isHorizontalPad &&\n <Scan ref={scan => this.scanObj = scan} onChange={this.onScanCzkResult} />\n }\n </div>\n <div className=\"receivable\">\n <span>剩余应收:</span>\n <span>{paymode.receivable}</span>\n </div>\n {/* <div className=\"receivable\">\n <span>限收金额:</span>\n <span>{currentMode && getFixedNumber(currentMode.maxamount)}</span>\n </div> */}\n <div className=\"received receivedNumber\">\n <span>实收金额:</span>\n <span>\n {/* <NumKeyboard\n id='paymentAmount'\n className={`${hotKey.hotKeyNotFilter('input')} receivedInput`}\n type='text'\n style={{ width: 230}}\n onChange={(value)=>{this.setCurrentModeValue(value,Math.min(currentMode.maxamount,currentMode.member.balance))}}\n defaultValue={currentMode && getFixedNumber(brefund?currentMode.value:Math.min(currentMode.value,currentMode.maxamount,currentMode.member.balance))}\n maxLength={12}\n precisionLength={2}\n ref={input => this.inputCzkAmount = input}\n onFocus={(e)=>{\n this.inputkey=\"inputCzkAmount\";\n Keyboard.open((v)=>{\n const value = Keyboard.getNewValue(this[this.inputkey].input, this[this.inputkey].input.value, v);\n this.setCurrentModeValue(value,Math.min(currentMode.maxamount,currentMode.member.balance));\n }, this.keyboardOnOk, this.keyboardOnClose)()\n }\n }\n onBlur={(e)=>{\n Keyboard.close();\n this.setCurrentModeValue(getFixedNumber(this.inputCzkAmount.input.value),Math.min(currentMode.maxamount,currentMode.member.balance));\n }}\n /> */}\n <Input\n id='paymentAmount'\n type='text'\n className={hotKey.hotKeyNotFilter('input')}\n value={storageValue}\n onChange={(event)=>{this.setCurrentModeValue(event.target.value,Math.min(currentMode.maxamount,currentMode.balance))}}\n defaultValue={currentMode && getFixedNumber(brefund?currentMode.value:Math.min(currentMode.value,currentMode.maxamount,currentMode.balance))}\n ref={ref => this[\"inputCzkAmount\"] = ref}\n onFocus={(e)=>{\n this.inputkey=\"inputCzkAmount\";\n Keyboard.open((v)=>{\n const value = Keyboard.getNewValue(this[this.inputkey].input, this[this.inputkey].input.value, v);\n this.setCurrentModeValue(value,Math.min(currentMode.maxamount,currentMode.balance));\n }, this.keyboardOnOk, this.keyboardOnClose)()\n }\n }\n onBlur={(e)=>{\n Keyboard.close();\n this.setCurrentModeValue(getFixedNumber(this.inputCzkAmount.input.value),Math.min(currentMode.maxamount,currentMode.balance));\n }}\n />\n </span>\n </div>\n {\n !isReturn && <div className=\"received\">\n <span className=\"label\">优惠明细:</span>\n <span className=\"yfje economize\">省¥{discountPrototypeTotalAmount}</span>\n <span onClick={this.prototypeDetailedClick} className='prototypeDetailed primary-color'>优惠明细<Ticon type='you2'/></span>\n </div>\n }\n <div className=\"error\">{currentMode && currentMode.errinfo}</div>\n {(!this.store.member || !this.store.member.ID) && <div className=\"tipStype\">在此处录入会员不会享有折扣、会员价等优惠,若需要优惠请返回至开单界面录入会员!</div>}\n </div>\n </Modal>\n <Modal\n wrapClassName={`${hotKey.hotKeyBindClass('5', 'moreCzkModal')} ${this.isHorizontalPad ? 'extraHeight' : ''}`}\n width=\"400px\"\n visible={this.state.moreCzkVisible}\n maskClosable={false}\n destroyOnClose={true}\n title={\"储值结算\"}\n onCancel={this.handleMoreCzkCancel}\n keyboard={false}\n centered={ !this.isHorizontalPad ? true : false}\n footer={<div className=\"action\">\n <span className='showUseCard'>仅列示可用的储值卡</span>\n <Button onClick={this.handleMoreCzkCancel}>取消</Button>\n <Button type=\"primary\" onClick={this.handleMoreCzkOk}>确定</Button>\n </div>}\n >\n <div>\n <MoreCzkTable\n setMoreCzkIndex={this.setMoreCzkIndex}\n selectedRowIndex={this.state.selectedRowIndex}\n dataSource={this.state.memberdata1}>\n </MoreCzkTable>\n </div>\n </Modal>\n <Modal\n wrapClassName={`djq ${this.isHorizontalPad ? 'extraHeight' : ''} passwordContainer`}\n width=\"400px\"\n visible={this.state.showSetPwdModal}\n backdropClosable={false}\n destroyOnClose={true}\n footer={null}\n onCancel={this.handleSetPwdCancel}\n keyboard={false}\n centered={ !this.isHorizontalPad ? true : false}\n title='设置密码'\n footer={<div className=\"action\">\n <Button onClick={this.handleSetPwdCancel}>取消</Button>\n <Button type=\"primary\" disabled={btnDissabled} onClick={this.handleSetModal}>确定</Button>\n </div>}\n >\n <div className='setPwdContainer'>\n <div className='setPwdDiv'>\n <div className=\"one\">新密码</div>\n <div className=\"two\">\n <Input.Password\n className=\"content\"\n placeholder=\"请输入6位数字密码\"\n style={{ width: 266, height: 32 }}\n maxLength={6}\n value={newPass}\n ref={input => this.inputNewAmount = input}\n onChange={value => this.setPwdValue('newPass', value.target.value)}\n onBlur={value => this.handleBlur('newPass')}\n onPressEnter={() => this.onPressEnterCzk('newPass')}\n />\n </div>\n </div>\n <div className='setPwdDiv'>\n <div className=\"one\">确认新密码</div>\n <div className=\"two\">\n <Input.Password\n className=\"content\"\n placeholder=\"请确认6位数字密码\"\n style={{ width: 266, height: 32 }}\n maxLength={6}\n value={newPassConfirm}\n ref={input => this.inputConfirmAmount = input}\n onChange={value => this.setPwdValue('newPassConfirm', value.target.value)}\n onBlur={value => this.handleBlur('newPassConfirm')}\n onPressEnter={() => this.onPressEnterCzk('newPassConfirm')}\n />\n </div>\n </div>\n </div>\n {/* <div className=\"action\">\n <Button onClick={this.handleSetPwdCancel}>取消</Button>\n <Button type=\"primary\" disabled={currentMode && currentMode.errinfo!=''} onClick={this.handleSetModal}>确定</Button>\n </div> */}\n </Modal>\n <Modal\n wrapClassName={`djq ${this.isHorizontalPad ? 'extraHeight' : ''}`}\n width=\"810px\"\n visible={this.state.djqVisible}\n maskClosable={false}\n onOk={this.handleDjqOk}\n destroyOnClose={true}\n onCancel={this.handleDjqCancel}\n centered={ !this.isHorizontalPad ? true : false}\n title={Differentiate.COUPON+'支付'}\n footer={<div className=\"action\">\n <Button onClick={this.handleDjqCancel}>取消</Button>\n <Button type=\"primary\" disabled={currentMode && currentMode.errinfo!=''} onClick={this.handleDjqOk}>确定</Button>\n </div>}\n >\n <div>\n {currentMode && !currentMode.boriginReturn && <div className=\"djq1\">\n <div className=\"col1\">{Differentiate.COUPON}号</div>\n <div className=\"col2\">\n <div>\n {/* <input ref={input => this['inputdjq'] =input } onKeyDown={e=>{if(e.keyCode==13){this.addDjq();}}}></input> */}\n <Input\n type='text'\n placeholder={`扫描/输入${Differentiate.COUPON}号并回车`}\n className=\"input\"\n id='djqInput'\n // onChange={this.onDjqChange}\n // value={currentMode && currentMode.member.cardNo}\n ref={input => this.inputdjq =input}\n onKeyDown={\n (e)=>{if(e.keyCode==13){this.addDjq(e.target.value)}}\n }\n onFocus={e => {\n this.inputTarget = this.inputdjq.input;\n Keyboard.open((v) => {\n const value = Keyboard.getNewValue(this.inputTarget, this.inputTarget.value, v);\n this.onDjqChange(value,true);\n }, this.djqKeyboardOnOk, this.djqKeyboardOnClose)()\n }}\n onBlur={(e) => { Keyboard.close(); this.inputdjq.input.value = ''; }}\n />\n </div>\n <div className=\"row2\">{currentMode && currentMode.errinfo}</div>\n </div>\n <div className='col4'>\n <Button className={`${this.state.couponLight ? \"primary-color b-theme\" : 'couponBorder'}`} onClick={this.couponClick}>可用优惠券</Button>\n <Button className={`${!this.state.couponLight ? \"primary-color b-theme\" : 'couponBorder'}`} onClick={this.couponClick}>不可用优惠券</Button>\n <span className='couponTip'>选择券后、不可叠加、金额不满足的券会置灰</span>\n </div>\n {\n this.isHorizontalPad &&\n <div className=\"col3\">\n <Ticon type='saomiao1' className='icon' onClick={this.changeScanProduct} />\n <Scan ref={scan => this.scanObj = scan} onChange={this.onScanDjqResult} />\n </div>\n }\n </div>}\n <div className=\"djq2outer\">\n <div className=\"djq2\">\n {\n currentMode && currentMode.djqs && currentMode.djqs.length > 0 ? _map(currentMode.djqs || [],(q,index)=>{\n if (!this.state.couponLight && !q.count) {\n return;\n }\n if (this.state.couponLight && (q.count && q.count === 1)) {\n return;\n }\n return (<div key={index + ''} className=\"djqItem\">\n {\n (!q.promoMethodEnum || q.promoMethodEnum == 'CASH_COUPON') ?\n <div className={`djqLeft ${q.IsEnable ? 'djqLeftCash' : 'djqLeftCashGrey'}`}>\n <div className=\"amount\">\n <span>{q.nominalAmount}</span>\n <span>元</span>\n </div>\n <div className=\"lijian\">立减</div>\n </div>\n :\n <div className={`djqLeft ${q.IsEnable ? 'djqLeftCash' : 'djqLeftCashGrey'}`}>\n <div className=\"amount\">\n <span>{tools.cutZero(q.discountPct * 10)}</span>\n <span>折</span>\n </div>\n <div className=\"lijian\">折扣</div>\n </div>\n }\n <div className={classnames('djqRight', { 'djqRightSelected': q.checked })} onClick={(e) => q.IsEnable ? this.djqChecked(q, this.props.dto) : null}>\n {q.checked ? <Ticon className='checkIcon primary-color' type='xuanzhong1'/> : <span className={`${q.IsEnable ? 'noxuanzhong' : 'noxuanzhong1'}`}></span>}\n {q.checked ? <div className='name overflow-hidden-point primary-color'>{q.name}</div> : <div className='name overflow-hidden-point'>{q.name}</div>}\n {\n q.displayText ?\n <div className=\"info overflow-hidden-point\"><span>{q.displayText}</span></div> :\n <div className=\"info overflow-hidden-point\"><span>使用门槛:</span><span>{q.doorsill}</span><span>元</span></div>\n }\n {\n q.expired ? <div className=\"info info_red overflow-hidden-point\"><span>{q.expired}</span></div> : null\n }\n </div>\n <div className=\"point_top\"/>\n <div className=\"point_bottom\"/>\n </div>)\n }) : <ProgressState\n state={\"empty\"}\n stateCommonStyle={{ 'paddingTop': \"30px\", backgroundColor: 'transparent' }}\n empty={{ buttonVisible: false, imgStyle: {width: '120px', height: '120px'} }} />\n }\n </div>\n </div>\n {currentMode && !currentMode.boriginReturn && <div className=\"djq3\">\n <div className=\"col1\">\n <div className=\"row1\">剩余应收</div>\n <div className=\"row2\">{currentMode ? currentMode.receivable:'0.00'}</div>\n </div>\n <div className=\"col2\">\n <div className=\"row1\">本单可用</div>\n <div className=\"row2\">{currentMode ? currentMode.maxamount:'0.00'}</div>\n </div>\n <div className=\"col2\">\n <div className=\"row1\">{Differentiate.COUPON}结算金额</div>\n <div className=\"row2\">{currentMode ? currentMode.value:'0.00'}</div>\n </div>\n <div className=\"col3\">\n <div className=\"row1\">溢收金额</div>\n <div className=\"row2\">{currentMode ? currentMode.overchargesAmount:'0.00'}</div>\n </div>\n </div>}\n {currentMode && currentMode.boriginReturn && <div className=\"djq3\">\n <div className=\"col1\">\n <div className=\"row1\">数量</div>\n <div className=\"row2\">{currentMode && currentMode.djqs ? currentMode.djqs.length:'0'}</div>\n </div>\n <div className=\"col2\">\n <div className=\"row1\">退款金额</div>\n <div className=\"row2\">{currentMode ? currentMode.value:'0.00'}</div>\n </div>\n </div>}\n </div>\n </Modal>\n <Modal\n wrapClassName={`czk ${this.isHorizontalPad ? 'extraHeight' : ''}`}\n width=\"420px\"\n visible={this.state.jfdxVisible}\n maskClosable={false}\n onCancel = { this.handleJfdxCancel }\n centered={ !this.isHorizontalPad ? true : false}\n title={\"积分抵现\"}\n destroyOnClose={true}\n footer={<div className=\"action\">\n <Button onClick={this.handleJfdxCancel}>取消</Button>\n <Button type=\"primary\" disabled={currentMode && currentMode.errinfo!=''} onClick={this.handleJfdxOk}>确定</Button>\n </div>}\n >\n <div>\n <div className=\"info\">\n <div className={classnames({\"type\":true,'colwidth4':hasmember})}>\n <div className=\"value valuetext\">{(currentMode && currentMode.member && currentMode.member.type) || '普通'}</div>\n <div className=\"name\">类型</div>\n </div>\n <div className=\"gap\">\n <div className=\"gap1\"></div>\n <div className=\"gap2\"></div>\n <div className=\"gap1\"></div>\n </div>\n <div className={classnames({\"balance\":true,'colwidth4':hasmember})}>\n <div className=\"value\">{currentMode && currentMode.member && currentMode.member.bonusPoints}</div>\n <div className=\"name\">积分</div>\n </div>\n <div className=\"gap\">\n <div className=\"gap1\"></div>\n <div className=\"gap2\"></div>\n <div className=\"gap1\"></div>\n </div>\n <div className={classnames({\"balance\":true,'colwidth4':hasmember})}>\n <div className=\"value\">{currentMode && currentMode.member && getFixedNumber(currentMode.member.exchangable)}</div>\n <div className=\"name\">可抵现金额</div>\n </div>\n <div className=\"gap\">\n <div className=\"gap1\"></div>\n <div className=\"gap2\"></div>\n <div className=\"gap1\"></div>\n </div>\n <div className={classnames({\"available\":true,'colwidth4':hasmember})}>\n <div className=\"value\">{currentMode && currentMode.member && getFixedNumber(Math.max(0,Math.min(currentMode.maxamount,currentMode.member.exchangable)))}</div>\n <div className=\"name\">本单可用</div>\n </div>\n </div>\n <div className=\"no\">\n <span>会员卡号:</span>\n <span className=\"notext\">{currentMode && currentMode.member && currentMode.member.cardNo}</span>\n </div>\n <div className=\"receivable\">\n <span>剩余应收:</span>\n <span>{paymode.receivable}</span>\n </div>\n <div className=\"received\">\n <span>实收金额:</span>\n <span>\n {/* <input value={currentMode && currentMode.value} onChange={(value)=>{this.setCurrentModeValue(value,currentMode.member.exchangable)}}></input> */}\n <Input\n className={hotKey.hotKeyNotFilter('input')}\n type='text'\n value={storageValue}\n onChange={(e)=>{this.setCurrentModeValue(e.target.value,Math.min(currentMode.maxamount,currentMode.member.exchangable))}}\n defaultValue={currentMode && currentMode.member && getFixedNumber(Math.min(currentMode.value,currentMode.maxamount,currentMode.member.exchangable))}\n ref={ref => this[\"inputJfdxAmount\"] = ref}\n onFocus={(e)=>{\n this.inputkey=\"inputJfdxAmount\";\n Keyboard.open((v)=>{\n const value = Keyboard.getNewValue(this[this.inputkey].input, this[this.inputkey].input.value, v);\n this.setCurrentModeValue(value,Math.min(currentMode.maxamount,currentMode.member.exchangable));\n }, this.keyboardOnOk, this.keyboardOnClose)()\n }\n }\n onBlur={(e)=>{\n Keyboard.close();\n this.setCurrentModeValue(getFixedNumber(this.inputJfdxAmount.input.value),Math.min(currentMode.maxamount,currentMode.member.exchangable));\n }}\n />\n </span>\n </div>\n <div className=\"error\">{currentMode && currentMode.errinfo}</div>\n </div>\n </Modal>\n <PrototypeTableModal discount={\n {\n discountTotalAmount,discountRetailTotalAount,discountPrototypeTotalAmount,\n }\n } handleprototypeCancel={this.handleprototypeCancel} isHorizontalPad={this.isHorizontalPad} dataSource={dataSource} prototypeVisible={this.state.prototypeVisible}/>\n </div>\n );\n }\n}\n\nexport default Settlement;\n\n"]}
|
|
1
|
+
{"version":3,"sources":["tplus-components-touch/components/settlement/settlement.js"],"names":["hasElectron","env","platform","constant","electron","Settlement","observer","props","state","visible","czkVisible","djqVisible","jfdxVisible","moreCzkVisible","showSetPwdModal","prototypeVisible","currentIndex","connectCardStatus","connectCardError","amountChanged","type","isManualIntoAmount","isXianjin","newPass","newPassConfirm","noAlreadyWarn","btnDissabled","confirmPwd","settleDisabled","protytypeCount","isPrototypeClick","dataSource","memberdata1","discountTotalAmount","discountRetailTotalAount","discountPrototypeTotalAmount","bquick","currentKey","couponLight","storageValue","czkValue","isInputMember","selectedRowIndex","compoundHotkeysList","window","$","operationControl","control","map","key","toLocaleUpperCase","hotkeydebounced","hotkeydebouncedPayMode","currentInput","resizeSettlementToolBtns","newStyle","store","isMemberStorePage","b","billingSettlementDocumnet","bWidth","offsetWidth","cWidth","firstChild","lastChild","childNodes","forEach","v","className","handleReadICard","readRfCard","updateInput","currentMode","paymode","member","exchangable","undefined","inputkey","input","value","Math","min","maxamount","setCurrentModeValue","inputJfdxAmount","balance","inputCzkAmount","storageCardNo","parseFloat","amount","Message","error","duration","setTimeout","handleCzkCancel","czkKeyboardOnClose","payQuick","enumController","getEnumOj","PayStyle","init","context","onHandleAmount","Code_02","storeInfo","dto","settleZero","hyczk","isProhibitMeStorageCard","warn","showCzkModal","quickSettle","handleSettle","handleGuestShow","isAutoShowCouponWhenCash","setState","isReturn","resolve","onValidate","isNotAutoFocus","fn","data","isNoProductTip","then","result","count","handleShowPrototype","checkIsIntegralExchange","IdbusiType","viewModel","payFun","handleDefault","brefund","boriginReturn","JSON","getCellValue","thePaymodes","m","checkModeDisabled","paymentType","setFocusAndSelectionMode","pricePrecision","quantityPrecision","RetailDetails","TotalTaxAmount","o","item","count1","ShowFreeItem","i","test","Name","FreeItem","IsPresent","badge","text","position","IsGWPBuyGift","PromotionDetails","length","RetailPrice","Quantity","InventoryName","Inventory","Discount","TaxPrice","TotalDiscount","DetailDiscountAmount","nAmount","TaxAmount","UnitName","Unit","nQuantity","nTaxPrice","nRetailPrice","console","log","showModal","that","ModalWraper","confirm","title","content","onOk","onCancel","handleOk","e","handleCancel","onCancelSettle","cancelState","setInventoryFocus","clean","handleCzkMoreData","params","_val","value11","czkInput","focus","setSelectionRange","id","append","connectRfCard","setCurrentMode","memberId","updateCurrentMode","handleCzkData","handleMoreCzkCancel","setMoreCzkIndex","index","handleMoreCzkOk","updateCardInfo","loadCzk","mode","paymethodId","closeRfCard","calcMemberBalance","handleCzk","handleCzkOk","walletEnabled","cardTypeEnum","freePaymentPasswordStore","isNeedPassword","Keyboard","close","handleSetPwdCancel","handleSetModal","updataMemberInfo","queryPwd","ID","updateMemberInfo","resp","onPressEnterCzk","field","inputConfirmAmount","setPwdValue","handleBlur","isHorizontalPad","doms","document","getElementsByClassName","getElementById","showDjqModal","djq","calcCheckList","inputdjq","isNewRetailBCPos","getCouponList","handleDjqOk","Differentiate","handleDjqCancel","djqs","checked","COUPON","setCurrentFocusAndAddPay","showJfdxModal","jid","djqmode","themode","IsRepelWithPoints","code","jfdx","handleJfdxOk","handleJfdxCancel","checkOfflineEnable","paymodes","isOffline","stores","offlineSys","currentPayMode","find","offlineDisable","onTabsClick2","bookType","memberInfo","hasmember","Code","omc","initData","wx","zfb","smzf","checkScanDisabled","bdisabled","onTabsClick","MultiPay","shouldSettlement","exchangeRate","forign","setCurrentFocusOnly","FORBIDDEN","NOTIFICATION","editModal","payId","changeFocusAndAddPay","setFocusAndSelection","onDelPay","info","delPay","handleChange","currentFocus","target","amountMaxLength","parseInt","isNaN","changeValue","val","max","reg","value1","split","onBlur","changeFocusOnly","onFocus","onFocusHack","appendCzkmode","bappend","djqChecked","q","calcDjqCheckValue","calcDjqValue","addDjq","checkCoupon","finally","ele","czkdebounced","cancel","onHotKeyClick1","onHotKeyClickModal","onHotKeyClick2","changeClickFocusOnly","onHotKeyEnter","notsettle","checkSettleDisabled","payIndex","displayPayModeList","SaoMaPayMode","filter","paymodeOb","findHaveNoModlePayType","findModlePayBySplice","currenIndex","symbol","findIndex","endCurrentMode","endCurrentModeOb","startCurrentModeOb","settleUnReturn","__queryingModal","querySettleResult","destroy","Flag","setDtoID","settleSuccess","settleCanceled","clearVoucherData","received","charge","openCashBox","xianjin","_this","showTwoScreen","getScreenType","flag","isHorizontalSunMi","localStore","get","shift","Value","step","screenType","sunMi_PresentationManager","sendMessageToSecondScreen","nativeMs","setIpcRendererMethod","onSettleSuccess","getSettleGift","isFull","resp1","__loadingModal","MemberPoints","isMemberPointsReturn","message","Number","__successModal","onModalClose","dtype","dt","guestshow_enable","guestshow_clear","guestshow_welcome","guestshow_collect","guestshow_refund","guestshow_change","hasSuccess","other","replace","abs","price","qty","total","inv","wel","HardwareAPI","sendDataCusDisp","dataType","ret","args","promises","results","p","push","commit","handleUserInputs","isQuickPay","status","checkCharge","receivable","zeromode","value2","name","quickmode","SQBPAY","CSYH","inputConfirm","values","bTest","indexOf","reject","curmode","inputPwd","needPwd","validePwd","fKeyboardOnOk","paymethodeId","blur","fKeyboardOnClose","keyboardOnOk","keyboardOnClose","changefn","setConfirmPwdValue","modal","onPressEnter","authCode","pwd","onPressEsc","maskClosable","keyboard","closable","width","isMobileEnvironment","height","inputAmount","btnDebounced","CustomerPhone","DistributionMode","Address","Id","Member","Mobilephone","syncMemberInfoProcessor","openBuyerModal","btndebounced","onCzkChange","setCardNo","czkKeyboardOnOk","onDjqChange","isKeyBorad","debounced","djqKeyboardOnOk","djqKeyboardOnClose","xianjinChange","inputTarget","inputTarget2","innerHTML","isNotFullBook","bookMaxValue","changeScanProduct","scanObj","startScan","onScanResult","el","setStateValue","submitHandler","onScanCzkResult","onScanDjqResult","getXianjinPayment","payType","getXianjinBalance","isStoredValueCard","BuyerPayFreight","PayIcon2","zl","getAttribute","isCancelFun","backdropStyle","prototypeDetailedClick","scan","checkCurrentModeHaveMutex","payTypeList","payTypeFilterList","filterType","disableUserMode","haveUseTypeList","xj","enabled","changeDecimalBuZero","number","bitNum","f_x","newBitNum","pow","round","s_x","toString","pos_decimal","editCzkModal","paymodesCarouselList","carouselStart","CarouseOut","CarouselTp","newParams","mapList","floor","modeList","modeIndex","renderToolbtn","handleprototypeCancel","select","couponClick","user","options","MemberMeStorageCardInputByKeyBoard","ICCardServer","ICCardPassword","PreSellOrBook","PercentageWhenBook","isStorageCardInputType","iCCardServer","iCCardPassword","isBook","percentageWhenBook","bind","setTimer","keypressStime","settlementVoucherStore","settlementMemberStore","initPaymodes","nextProps","clear","cardPsw","cardSec","cardKm","nonProductMap","temphtml","columns","dataIndex","ellipsis","product","Idinventory","reason","y","paymentType1","getNewValue","PayIcon","hasSMZF","hotkeyIndex","theArr","t","paymodeDisabled","paymodeSelected","checkThepaymode","omission","totalVariety","totalQuantity","quantityDetail","memberDisabled","noIsMinAmount","totalTaxAmount","settle","drawerStore","thisWaitPaidAmount","ExchangeIntegral","_hasSMZF","quickPay","isQuick","productsIsEmpty","moreToolbtns","pagination","spaceBetween","carouselStart2","quantity1","quantity2","quantity3","quantity4","sumQuantity","buyQuantity","returnQuantity","showAmount","sumRetailDetails","themodeHyczk","r","iconclass","OnlinePaymentAmount","isMemberPoints","hotKey","hotKeyBindClass","maxHeight","body","clientHeight","hotKeyNotFilter","display","overchargesAmount","onlineamount","onKeyboardChange","mindex","tm","sum","Add","cardNo","errinfo","keyCode","time","Date","parse","czkvalue","open","event","ref","inputNewAmount","promoMethodEnum","IsEnable","nominalAmount","tools","cutZero","discountPct","displayText","doorsill","expired","backgroundColor","buttonVisible","imgStyle","bonusPoints","React","Component","contextTypes","PropTypes","object"],"mappings":"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","file":"settlement.js","sourcesContent":["import React from 'react'\r\nimport { observer } from 'mobx-react'\r\nimport _filter from 'lodash/filter';\r\nimport _map from 'lodash/map';\r\nimport _find from 'lodash/find';\r\nimport _findIndex from 'lodash/findIndex';\r\nimport _sortBy from 'lodash/sortBy';\r\nimport _forEach from 'lodash/forEach';\r\nimport _trim from 'lodash/trim';\r\nimport _truncate from 'lodash/truncate';\r\nimport _debounce from 'lodash/debounce';\r\nimport _ from 'lodash'\r\nimport _reduce from 'lodash/reduce';\r\nimport classnames from 'classnames'\r\nimport { Drawer, Modal, Carousel, Input, Button, Table } from 'antd';\r\nimport Message from '../message';\r\nimport asyncModal from './asyncModal';\r\nimport ModalWraper from '../modalWraper';\r\nimport { openLoadingModal,openQueryingModal,showSuccessModal, getRoundValue, getFixedNumber } from './utils';\r\nimport Keyboard from '../keyboard';\r\nimport NumKeyboard from '../keyboard/numKeyboard';\r\nimport NumKeyboardScan from '../keyboard/numKeyboardScan';\r\nimport NumkeyboardPassword from '../keyboard/numkeyboardPassword'\r\nimport Ticon from '../ticon';\r\nimport PropTypes from 'prop-types';\r\nimport Scan from '../scan';\r\nimport HardwareAPI from '../hardwareAPI';\r\nimport { nativeMs, env, localStore, stores } from 'mutants-microfx';\r\nimport { platform,enumController,tools} from 'mutants-util';\r\nimport { hotKey } from '../../index';\r\nimport { PosInitData } from 'tplus-poslogin';\r\nimport PrototypeTableModal from './prototypeTable/index';\r\nimport { ProgressState } from 'tplus-components-touch';\r\nimport MoreCzkTable from './moreCzkTable'\r\nconst hasElectron = (env.platform === env.constant.platform.electron);\r\n\r\n@observer\r\nclass Settlement extends React.Component {\r\n state = {\r\n visible: false ,\r\n czkVisible:false,\r\n djqVisible:false,\r\n jfdxVisible:false,\r\n moreCzkVisible: false,\r\n showSetPwdModal: false,\r\n prototypeVisible: false, // 优惠明细弹出框\r\n currentIndex:0,\r\n connectCardStatus: false, //连接IC卡状态\r\n connectCardError: '', //连接IC卡错误后记录错误信息\r\n amountChanged:false,\r\n type:0,\r\n isManualIntoAmount: PosInitData(\"IsManualIntoAmount\"),\r\n isXianjin: false,\r\n newPass: '',\r\n newPassConfirm: '',\r\n noAlreadyWarn: true,\r\n btnDissabled: true,\r\n confirmPwd: '',\r\n settleDisabled: false,\r\n protytypeCount: null,\r\n isPrototypeClick: false,\r\n dataSource: [],\r\n memberdata1: [],\r\n discountTotalAmount: null,\r\n discountRetailTotalAount: null,\r\n discountPrototypeTotalAmount: null,\r\n bquick: false,\r\n currentKey: null,\r\n couponLight: true,\r\n storageValue: '0.00',\r\n czkValue: null,\r\n isInputMember: false,\r\n selectedRowIndex: 0\r\n }\r\n // 复核结算方式快捷键列表\r\n compoundHotkeysList = (window.$.operationControl[5]? (window.$.operationControl[5].control || []):[]).map((key)=>{\r\n return key.toLocaleUpperCase();\r\n })\r\n\r\n hotkeydebounced = null;\r\n hotkeydebouncedPayMode = \"\";\r\n\r\n static contextTypes = {\r\n viewModel: PropTypes.object,\r\n stores: PropTypes.object,\r\n }\r\n\r\n currentInput = null;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.hasElectron = hasElectron;\r\n const { MemberMeStorageCardInputByKeyBoard, ICCardServer, ICCardPassword, PreSellOrBook, PercentageWhenBook} = stores.user.options.get('loginInfo') || {};\r\n this.isStorageCardInputType = MemberMeStorageCardInputByKeyBoard; // 仅储值卡是否禁用键盘输入,'0'为不禁用 '1'为禁用\r\n this.iCCardServer = parseInt(ICCardServer); // 启用IC卡:0为禁用 1为启用\r\n this.iCCardPassword = ICCardPassword; //IC卡密码\r\n this.isBook = PreSellOrBook == 'BOOK';\r\n this.percentageWhenBook = PercentageWhenBook;\r\n //移动端环境下,没有读取IC卡的方式。\r\n const { isHorizontalPad, isHorizontalSunMi } = platform || {};\r\n this.isHorizontalPad = !!isHorizontalPad;\r\n this.isHorizontalSunMi= !!isHorizontalSunMi;\r\n this.isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi;\r\n this.handleReadICard = this.handleReadICard.bind(this);\r\n this.setTimer = null;\r\n this.keypressStime = null;\r\n this.store = !(props.type == 1) ? stores.settlementVoucherStore : stores.settlementMemberStore;\r\n }\r\n\r\n componentDidMount() {\r\n this.store.initPaymodes(this.updateInput, this.props.type, this.props.MemberPoints);\r\n }\r\n\r\n componentDidUpdate() {\r\n this.resizeSettlementToolBtns()\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.amount != this.props.amount) {\r\n this.store.amountChanged(nextProps.amount);\r\n this.setState({ amountChanged: !this.state.amountChanged });\r\n }\r\n\r\n // 增加积分兑换和普通模式切换 重新获取支付方式\r\n if(nextProps.MemberPoints != this.props.MemberPoints){\r\n this.store.paymode.clear();\r\n this.store.initPaymodes(this.updateInput,this.props.type,nextProps.MemberPoints);\r\n }\r\n }\r\n\r\n //对结算按钮超出的处理\r\n resizeSettlementToolBtns = () => {\r\n const { newStyle } = this.store;\r\n const { isMemberStorePage } = this.props;\r\n let b = this.billingSettlementDocumnet;\r\n if (b && newStyle && !isMemberStorePage) {\r\n let bWidth = b.offsetWidth;\r\n let cWidth = 0;\r\n if (b.firstChild) {\r\n cWidth += b.firstChild.offsetWidth;\r\n }\r\n if (b.lastChild && b.lastChild.childNodes) {\r\n b.lastChild.childNodes.forEach(v => {\r\n cWidth += v.offsetWidth;\r\n })\r\n }\r\n if (b.lastChild) {\r\n // 原来bWidth < cWidth,过渡过程中右边按钮会隐藏,+20之后解决\r\n if (bWidth < cWidth + 20) {\r\n b.lastChild.className = 'btns voucherMode';\r\n } else {\r\n b.lastChild.className = 'btns';\r\n }\r\n }\r\n }\r\n }\r\n\r\n //IC卡连接\r\n connectRfCard() {\r\n //客户端环境下,并开启了启用IC卡。\r\n if (this.hasElectron === true && this.iCCardServer === 1) {\r\n nativeMs.setIpcRendererMethod('ConnectRfCard', null, ret => {\r\n let result = {}\r\n if (ret.status === 0) {\r\n result = { connectCardStatus: false, connectCardError: ret.value }\r\n } else {\r\n result = { connectCardStatus: true, connectCardError: '' };\r\n }\r\n this.setState(result)\r\n })\r\n }\r\n }\r\n //IC卡读取\r\n readRfCard() {\r\n //客户端环境下,并开启了启用IC卡。\r\n if (this.hasElectron === true && this.iCCardServer === 1) {\r\n const { connectCardStatus, connectCardError } = this.state;\r\n if (connectCardStatus === false) {\r\n Message.error(connectCardError ? connectCardError : '读取IC卡失败');\r\n this.connectRfCard(); //读取失败后,重新连接一下。\r\n return;\r\n }\r\n let params = { cardPsw: this.iCCardPassword, cardSec: 13, cardKm: 0 }\r\n nativeMs.setIpcRendererMethod('ReadRfCard', { ...params }, ret => {\r\n if (ret.status === 0) {\r\n Message.error(ret.value);\r\n this.connectRfCard(); //读取失败后,重新连接一下。\r\n return;\r\n } else if (ret.status === 1) {\r\n // this.searchMember(ret.value);\r\n // this.czkInput.input[\"value\"]=ret.value;\r\n this.setState({\r\n czkValue: ret.value\r\n })\r\n this.loadCzk(ret.value);\r\n }\r\n })\r\n }\r\n }\r\n\r\n //IC卡关闭\r\n closeRfCard(){\r\n if (this.hasElectron === true && this.iCCardServer === 1) {\r\n nativeMs.setIpcRendererMethod('CloseRfCard')\r\n }\r\n }\r\n handleReadICard = () => {\r\n this.readRfCard();\r\n }\r\n\r\n updateInput=()=>{\r\n let {currentMode}=this.store.paymode;\r\n if(this.state.jfdxVisible &¤tMode && currentMode.member.exchangable !== undefined ){\r\n this.inputkey=\"inputJfdxAmount\";\r\n this[\"inputJfdxAmount\"].input.value=currentMode && getFixedNumber(Math.min(currentMode.value,currentMode.maxamount,currentMode.member.exchangable))\r\n this.setCurrentModeValue(this.inputJfdxAmount.input.value,Math.min(currentMode.maxamount,currentMode.member.exchangable));\r\n }else if(this.state.czkVisible && currentMode && currentMode.value>=0 && currentMode.balance !== undefined){\r\n this.inputkey=\"inputCzkAmount\";\r\n this[\"inputCzkAmount\"] && this[\"inputCzkAmount\"].input && (this[\"inputCzkAmount\"].input.value=getFixedNumber(Math.min(currentMode.value,currentMode.maxamount,currentMode.balance)));\r\n const maxamount=Math.min(currentMode.maxamount,currentMode.balance);\r\n this.inputCzkAmount && this.inputCzkAmount.input && this.setCurrentModeValue(this.inputCzkAmount.input.value,maxamount);\r\n if(this.store.bquick && currentMode.storageCardNo && parseFloat(this.store.paymode.amount)>parseFloat(maxamount)){\r\n Message.error(\"本单最大可用储值卡结算金额为:\"+getFixedNumber(maxamount)+\",请使用复合结算!\", {\r\n duration: 4\r\n });\r\n setTimeout(() => {\r\n this.handleCzkCancel();\r\n setTimeout(() => { this.czkKeyboardOnClose() }, 150)\r\n }, 50);\r\n }\r\n }\r\n }\r\n\r\n payQuick = () => {\r\n const { currentKey } = this.state;\r\n const { PayStyle } = enumController.getEnumOj();\r\n this.store.init(this.props.type == 1 ? null : this.context, this.props.onHandleAmount, this.props.dataSource.Code_02, this.props.storeInfo, true, this.props.amount, this.props.type, this.props.dto,currentKey);\r\n let amount = this.store.paymode.amount;\r\n if (amount == 0) {\r\n this.settleZero();\r\n return;\r\n }\r\n if (currentKey == PayStyle.hyczk) {\r\n const { isProhibitMeStorageCard } = this.props;\r\n if (isProhibitMeStorageCard) {\r\n Message.warn('储值卡不可键盘录入,请刷卡!');\r\n return;\r\n }\r\n this.showCzkModal();\r\n } else {\r\n this.store.quickSettle(currentKey);\r\n this.handleSettle(\"quickPay\");\r\n }\r\n this.handleGuestShow(amount < 0 ? 2 : 3, amount);\r\n }\r\n\r\n quickSettle = (key)=>{\r\n const isAutoShowCouponWhenCash = PosInitData('IsAutoShowCouponWhenCash');\r\n this.setState({\r\n currentKey: key\r\n })\r\n const { isReturn, type } = this.props;\r\n Promise.resolve(!this.props.onValidate || this.props.onValidate({isNotAutoFocus: true, fn: (data)=>this.isNoProductTip(data)})).then(result=>{\r\n if (result) {\r\n this.setState({\r\n settleDisabled: false\r\n })\r\n if (type !== 1) {\r\n let count = this.handleShowPrototype();\r\n if (!isReturn && isAutoShowCouponWhenCash && count > 0) {\r\n this.setState({\r\n prototypeVisible: true,\r\n })\r\n } else {\r\n this.payQuick();\r\n }\r\n } else {\r\n this.payQuick();\r\n }\r\n }\r\n })\r\n }\r\n\r\n checkIsIntegralExchange = () => {\r\n let { IdbusiType } = this.context.viewModel.data;\r\n return (IdbusiType === 37 || IdbusiType === 36);\r\n }\r\n\r\n payFun = () => {\r\n this.store.init(this.props.type == 1 ? null : this.context, this.props.onHandleAmount, this.props.dataSource.Code_02, this.props.storeInfo, false, this.props.amount, this.props.type, this.props.dto);\r\n let amount = this.store.paymode.amount;\r\n if (amount == 0) {\r\n this.settleZero();\r\n return;\r\n }\r\n this.setState({ visible: true });\r\n this.handleGuestShow(amount < 0 ? 2 : 3, amount);\r\n setTimeout(() => {\r\n this.handleDefault()\r\n // // 单据模式 临时性获取第一个结算方式焦点\r\n // // document.querySelector('.modeItem:nth-child(1) .content input').focus()\r\n let { paymode, brefund, newStyle } = this.store;\r\n let boriginReturn = this.context && this.context.viewModel && this.context.viewModel.data && JSON.getCellValue(this.context.viewModel.data, \"IsOriginalReturn\");\r\n let thePaymodes = newStyle ? _filter(paymode.thePaymodes, (m) => { return !(this.checkModeDisabled(m.paymentType, brefund, boriginReturn) && parseFloat(m.value) == 0); }) : paymode.thePaymodes;\r\n this.setFocusAndSelectionMode(thePaymodes,-1);\r\n }, 100)\r\n }\r\n\r\n handleShowPrototype = () => {\r\n const pricePrecision = PosInitData(\"PricePrecision\");\r\n const quantityPrecision = PosInitData ('QuantityPrecision')\r\n const { RetailDetails, TotalTaxAmount } = this.context.viewModel.data;\r\n let dataSource = RetailDetails.map(o => Object.assign({}, o));\r\n let discountRetailTotalAount = null;\r\n let count = 0;\r\n dataSource && dataSource.forEach((item) => {\r\n let count1 = 0;\r\n item.ShowFreeItem = false;\r\n for (let i in item) {\r\n if (/FreeItem/.test(i)) {\r\n if (item[i] && item[i].Name) {\r\n count1++;\r\n item.ShowFreeItem = true;\r\n count1 === 1 ? item.FreeItem = item[i].Name : item.FreeItem += '/' + item[i].Name;\r\n }\r\n }\r\n }\r\n //有赠品的情况,不在考虑是否促销\r\n if (item.IsPresent) {\r\n item.badge = { text: '赠', position: 'leftTop', className: '' }\r\n } else if(item.IsGWPBuyGift) {\r\n item.badge = { text: '换', position: 'leftTop', className: '' }\r\n }else if (item.PromotionDetails && item.PromotionDetails.length > 0) {\r\n item.badge = { text: '促', position: 'leftTop', className: '' }\r\n } else {\r\n item.badge = { text: '', position: '', className: '' }\r\n }\r\n if (!item.IsPresent) {\r\n discountRetailTotalAount += item.RetailPrice * item.Quantity;\r\n }\r\n if (item.PromotionDetails && item.PromotionDetails.length > 0) {\r\n count++;\r\n }\r\n item.InventoryName = item.Inventory.Name;\r\n item.Discount = getRoundValue(item.RetailPrice - item.TaxPrice, pricePrecision);\r\n //item.TotalDiscount = getFixedNumber(item.Discount * item.Quantity);\r\n item.TotalDiscount = item.DetailDiscountAmount;\r\n item.nAmount = getFixedNumber(item.TaxAmount);\r\n item.UnitName = item.Unit.Name;\r\n item.nQuantity = getRoundValue(item.Quantity, quantityPrecision);\r\n item.nTaxPrice = getRoundValue(item.TaxPrice, pricePrecision);\r\n item.nRetailPrice = getRoundValue(item.RetailPrice, pricePrecision);\r\n })\r\n this.setState({\r\n dataSource,\r\n discountTotalAmount: getFixedNumber(TotalTaxAmount),\r\n discountRetailTotalAount: getFixedNumber(discountRetailTotalAount),\r\n discountPrototypeTotalAmount: getFixedNumber(discountRetailTotalAount - TotalTaxAmount)\r\n })\r\n console.log(RetailDetails, 'RetailDetails-----')\r\n return count;\r\n }\r\n\r\n showModal = () => {\r\n const { isReturn, type } = this.props;\r\n const isAutoShowCouponWhenCash = PosInitData('IsAutoShowCouponWhenCash')\r\n // 支持异步验证过程\r\n Promise.resolve( !this.props.onValidate || this.props.onValidate({fn: (data)=>this.isNoProductTip(data)})).then(result => {\r\n if (result) {\r\n this.setState({\r\n settleDisabled: false\r\n })\r\n if (type !== 1) {\r\n let count = this.handleShowPrototype();\r\n if (!isReturn && isAutoShowCouponWhenCash && count > 0) {\r\n this.setState({\r\n prototypeVisible: true,\r\n })\r\n } else {\r\n this.payFun();\r\n }\r\n } else {\r\n this.payFun();\r\n }\r\n }\r\n })\r\n }\r\n\r\n settleZero=()=>{\r\n const that = this;\r\n ModalWraper.confirm({\r\n className: 'tplus-confirm-modal',\r\n title: '结算',\r\n content: '当前收款金额为0,确认结算?',\r\n onOk() {\r\n setTimeout(() => { that.handleSettle(\"zero\") }, 300)\r\n },\r\n onCancel() {\r\n\r\n },\r\n });\r\n }\r\n\r\n handleDefault=()=>{\r\n // let dmode=_find(this.store.paymode.paymodes,(mode)=>{return mode.isDefault});\r\n // if(dmode){\r\n // if(dmode.paymentType==PayStyle.hyczk){\r\n // this.onTabsClick(PayStyle.hyczk);\r\n // }else{\r\n // this.store.quickSettle(dmode.paymentType);\r\n // this.onTabsClick(dmode.paymentType);\r\n // }\r\n // }else if(this.store.member && this.store.member.ID && parseFloat(this.store.member.BalanceStorage)>0 &&\r\n // _find(this.store.paymode.paymodes,{'paymentType':PayStyle.hyczk})){\r\n // this.onTabsClick(PayStyle.hyczk);\r\n // // this.showCzkModal();\r\n // }\r\n\r\n // else if(_find(this.store.paymode.paymodes,{'paymentType':PayStyle.xianjin})){\r\n // this.store.quickSettle(PayStyle.xianjin);\r\n // this.onTabsClick(PayStyle.xianjin);\r\n // }\r\n if(this.store.newStyle){\r\n // this.onHotKeyEnter(null,true);\r\n }\r\n }\r\n\r\n handleOk = (e) => {\r\n this.setState({\r\n visible: false,\r\n });\r\n }\r\n\r\n handleCancel = (e) => {\r\n this.props.onCancelSettle && this.props.onCancelSettle();\r\n this.cancelState();\r\n this.setInventoryFocus();\r\n }\r\n cancelState=()=>{\r\n this.store.clean();\r\n this.setState({\r\n visible: false,\r\n });\r\n }\r\n\r\n handleCzkMoreData = (params) => {\r\n this._val=this.store.paymode.currentMode.value;\r\n let {currentMode}=this.store.paymode;\r\n const maxamount=Math.min(currentMode.maxamount,currentMode.balance);\r\n if(this.store.bquick && currentMode.storageCardNo && parseFloat(this.store.paymode.amount)>parseFloat(maxamount)){\r\n Message.error(\"本单最大可用储值卡结算金额为:\"+getFixedNumber(maxamount)+\",请使用复合结算!\",{\r\n duration: 4\r\n });\r\n } else {\r\n if (params) {\r\n this.setState({\r\n czkVisible: true,\r\n });\r\n }\r\n const { brefund } = this.store;\r\n let value11 = currentMode && getFixedNumber(brefund?currentMode.value:Math.min(currentMode.value,currentMode.maxamount,currentMode.balance));\r\n this.setState({\r\n storageValue: value11\r\n })\r\n if (currentMode.storageCardNo) {\r\n this.setState({\r\n czkValue: currentMode.storageCardNo\r\n })\r\n } else {\r\n this.setState({\r\n czkValue: null\r\n })\r\n }\r\n }\r\n if (params) {\r\n setTimeout(() => {\r\n if(!currentMode.storageCardNo){\r\n this.czkInput && this.czkInput.input.focus()\r\n }else{\r\n if(this.inputCzkAmount && this.inputCzkAmount.input){\r\n this.inputCzkAmount.input.focus();\r\n this.inputCzkAmount.input.setSelectionRange(0, this.inputCzkAmount.input.value.length);\r\n }\r\n }\r\n }, 500)\r\n }\r\n }\r\n\r\n //czk\r\n showCzkModal = async (id,append) => {\r\n this.connectRfCard();\r\n const { PayStyle } = enumController.getEnumOj();\r\n this.store.setCurrentMode(id,PayStyle.hyczk,append);\r\n const { isInputMember } = this.state || {};\r\n let memberdata1 = (isInputMember && this.store.paymode.currentMode.memberId && await this.store.updateCurrentMode(this.store.paymode.currentMode.memberId));\r\n this.setState({\r\n czkVisible: true\r\n });\r\n if (memberdata1 && memberdata1.length === 1) {\r\n this.handleCzkMoreData(true);\r\n this.store.handleCzkData(memberdata1[0]);\r\n } else if (memberdata1 && memberdata1.length >= 1) {\r\n this.setState({\r\n moreCzkVisible: true,\r\n memberdata1: memberdata1\r\n });\r\n } else {\r\n this.setState({\r\n });\r\n setTimeout(() => {\r\n this.czkInput && this.czkInput.input.focus()\r\n }, 300)\r\n }\r\n }\r\n\r\n handleMoreCzkCancel = () => {\r\n this.setState({\r\n moreCzkVisible: false,\r\n selectedRowIndex: 0\r\n });\r\n setTimeout(() =>{\r\n this.czkInput && this.czkInput.input.focus();\r\n }, 300)\r\n }\r\n\r\n setMoreCzkIndex = (index) => {\r\n this.setState({\r\n selectedRowIndex: index\r\n })\r\n }\r\n\r\n handleMoreCzkOk = () => {\r\n const { memberdata1, selectedRowIndex } = this.state;\r\n this.store.paymode.updateCardInfo(memberdata1[selectedRowIndex]);\r\n this.handleCzkMoreData();\r\n this.store.handleCzkData(memberdata1[selectedRowIndex]);\r\n this.setState({\r\n moreCzkVisible: false,\r\n selectedRowIndex: 0\r\n })\r\n }\r\n\r\n handleCzkData = async () => {\r\n this.setState({\r\n isInputMember: false\r\n })\r\n const { PayStyle } = enumController.getEnumOj();\r\n if(!this.store.paymode.currentMode.storageCardNo){\r\n await this.store.loadCzk(this.czkInput.input.value);\r\n }\r\n\r\n if(!this.store.paymode.currentMode.storageCardNo ){\r\n Message.error(\"请录入储值卡!\");\r\n return ;\r\n }\r\n if(_find(this.store.paymode.thePaymodes,(mode)=>{\r\n return mode.paymethodId!=this.store.paymode.currentMode.paymethodId &&\r\n mode.paymentType==PayStyle.hyczk &&\r\n mode.storageCardNo==this.store.paymode.currentMode.storageCardNo\r\n })){\r\n Message.error(\"该储值卡已使用。\");\r\n return;\r\n }\r\n if(this.store.bquick && this.store.paymode.amount!=this.store.paymode.currentMode.value){\r\n Message.error(\"实收金额应等于应收金额。\");\r\n return;\r\n }\r\n\r\n this.setState({\r\n czkVisible: false,\r\n storageValue: '0.00',\r\n czkValue: null\r\n });\r\n this.closeRfCard();\r\n this.store.paymode.calcMemberBalance();\r\n this.handleCzk();\r\n }\r\n\r\n\r\n handleCzkOk = async (e) => {\r\n // 判断是否有密码\r\n const { walletEnabled, cardTypeEnum, freePaymentPasswordStore, isNeedPassword } = this.store.paymode.currentMode;\r\n if (cardTypeEnum === 'BALANCE_CARD' && freePaymentPasswordStore) {\r\n this.handleCzkData();\r\n } else if (cardTypeEnum === 'BALANCE_CARD' && !walletEnabled) {\r\n this.setState({\r\n showSetPwdModal: true,\r\n btnDissabled: true\r\n })\r\n } else {\r\n this.handleCzkData();\r\n }\r\n }\r\n\r\n handleCzkCancel = (e) => {\r\n if(this.store.bquick){\r\n this.props.onCancelSettle && this.props.onCancelSettle();\r\n this.store.clean();\r\n }\r\n this.setState({\r\n czkVisible: false,\r\n storageValue: '0.00',\r\n czkValue: null\r\n });\r\n this.closeRfCard();\r\n Keyboard.close();\r\n this.setInventoryFocus();\r\n }\r\n\r\n handleSetPwdCancel = () => {\r\n this.setState({\r\n showSetPwdModal: false\r\n })\r\n }\r\n\r\n handleSetModal = async () => {\r\n const { newPass, newPassConfirm, isInputMember } = this.state;\r\n const { updataMemberInfo } = this.props;\r\n const result = await this.store.queryPwd(newPass, newPassConfirm)\r\n const { cardTypeEnum } = this.store.paymode.currentMode;\r\n if (result) {\r\n this.setState({\r\n showSetPwdModal: false,\r\n czkVisible: true,\r\n newPass: '',\r\n newPassConfirm: ''\r\n })\r\n Message.warn('设置成功')\r\n this.handleCzkData();\r\n setTimeout(() => {\r\n if(this.inputCzkAmount && this.inputCzkAmount.input){\r\n this.inputCzkAmount.input.focus();\r\n this.inputCzkAmount.input.setSelectionRange(0, this.inputCzkAmount.input.value.length);\r\n }\r\n }, 350)\r\n if (isInputMember && this.store.member.ID) {\r\n let resp = await this.store.updateMemberInfo(this.store);\r\n updataMemberInfo(resp);\r\n }\r\n if (cardTypeEnum === 'BALANCE_CARD') {\r\n this.store.paymode.updateCardInfo();\r\n }\r\n this.setState({\r\n isInputMember: false\r\n })\r\n }\r\n }\r\n\r\n onPressEnterCzk = (field) => {\r\n const { newPass = '', newPassConfirm = '' } = this.state || {};\r\n if (field === 'newPass' && newPass.length === 6) {\r\n this.inputConfirmAmount.input.focus();\r\n }\r\n if (field === 'newPassConfirm' && newPassConfirm.length === 6 && newPass.length === 6 && newPass === newPassConfirm) {\r\n this.handleSetModal();\r\n }\r\n }\r\n\r\n setPwdValue = (field, value) => {\r\n if (!/^[0-9]*$/.test(value)) {\r\n return;\r\n }\r\n this.setState({\r\n [field]: value\r\n }, () => {\r\n const { newPass = '', newPassConfirm = '' } = this.state || {};\r\n if (newPassConfirm.length=== 6 && newPass.length === 6 && newPass === newPassConfirm) {\r\n this.setState({\r\n btnDissabled: false\r\n })\r\n }\r\n })\r\n }\r\n\r\n handleBlur = (field) => {\r\n const { newPass = '', newPassConfirm = '' } = this.state || {};\r\n setTimeout(() => {\r\n const { showSetPwdModal } = this.state || {};\r\n if (!showSetPwdModal) return;\r\n if (field=== 'newPass' && newPass.length < 6) {\r\n this.setState({\r\n btnDissabled: true\r\n })\r\n Message.warn('请输入6位新密码!')\r\n } else {\r\n if (field === 'newPassConfirm') {\r\n if (newPass !== newPassConfirm) {\r\n this.setState({\r\n btnDissabled: true\r\n })\r\n Message.warn('密码输入不一致,请重新输入!')\r\n }\r\n }\r\n }\r\n if (newPassConfirm.length=== 6 && newPass.length === 6 && newPass === newPassConfirm) {\r\n this.setState({\r\n btnDissabled: false\r\n })\r\n }\r\n }, 80);\r\n }\r\n\r\n //关闭弹框时,执行此方法,把焦点设定到商品录入框\r\n setInventoryFocus = () => {\r\n if (!!this.isHorizontalPad) return;\r\n let doms = document.getElementsByClassName('app hot-key-focus-container');\r\n let input = document.getElementById('productPoint');\r\n if (input) setTimeout(() => { if (doms && doms.length > 0) {console.log('settlement--setInventory==Focus=='); input.focus() } }, 300);\r\n }\r\n\r\n //djq\r\n showDjqModal = (id) => {\r\n // if(!this.store.member || !this.store.member.Uid){\r\n // Message.error('请先输入会员再使用优惠券结算!');\r\n // return ;\r\n // }\r\n const { PayStyle } = enumController.getEnumOj();\r\n this.store.setCurrentMode(id,PayStyle.djq);\r\n this.setState({\r\n djqVisible: true,\r\n couponLight: true,\r\n });\r\n this.store.paymode.calcCheckList();\r\n setTimeout(() => {\r\n this.inputdjq && this.inputdjq.input && this.inputdjq.input.focus()\r\n }, 200)\r\n\r\n // TODO: 测试优惠券支付\r\n let { isNewRetailBCPos } = platform || {};\r\n if (isNewRetailBCPos && !this.store.paymode.currentMode.boriginReturn) {\r\n this.store.getCouponList();\r\n }\r\n }\r\n\r\n handleDjqOk = (e) => {\r\n const { PayStyle, Differentiate } = enumController.getEnumOj();\r\n if(this.store.paymode.currentMode.boriginReturn){\r\n this.handleDjqCancel(e);\r\n return;\r\n }\r\n if(_filter(this.store.paymode.currentMode.djqs,(djq)=>{return djq.checked}).length==0){\r\n Message.error(`请录入并使用${Differentiate.COUPON}。`);\r\n return ;\r\n }\r\n if(parseFloat(this.store.paymode.currentMode.value)>parseFloat(this.store.paymode.currentMode.maxamount)){\r\n Message.error(`超过了${Differentiate.COUPON}可支付的最大金额。`);\r\n return ;\r\n }\r\n this.setState({\r\n djqVisible: false,\r\n });\r\n this.setCurrentFocusAndAddPay(PayStyle.djq);\r\n }\r\n\r\n handleDjqCancel = (e) => {\r\n this.setState({\r\n djqVisible: false,\r\n });\r\n }\r\n\r\n //jfdx\r\n showJfdxModal = (jid) => {\r\n const { PayStyle, Differentiate } = enumController.getEnumOj();\r\n let id=this.store.newStyle? -1 : jid;\r\n if(!this.store.member || !this.store.member.ID){\r\n Message.error('请先输入会员再使用会员积分抵现结算!');\r\n return ;\r\n }\r\n let djqmode=_find(this.store.paymode.thePaymodes,(themode)=>{return themode.paymentType==PayStyle.djq;});\r\n let djq=djqmode && _find(djqmode.djqs,(djq)=>{return !djq.IsRepelWithPoints});\r\n if(djq){\r\n Message.error(`${Differentiate.COUPON}(${djq.code})不可与积分一起使用`);\r\n return ;\r\n }\r\n this.store.setCurrentMode(id,PayStyle.jfdx);\r\n this._val=this.store.paymode.currentMode.value;\r\n this.setState({\r\n jfdxVisible: true,\r\n });\r\n setTimeout(() => {\r\n this.inputJfdxAmount.input.focus();\r\n this.inputJfdxAmount.input.setSelectionRange(0, this.inputJfdxAmount.input.value.length);\r\n }, 200)\r\n }\r\n\r\n handleJfdxOk = (e) => {\r\n this.setState({\r\n jfdxVisible: false,\r\n });\r\n //this.setCurrentFocusAndAddPay(PayStyle.jfdx);\r\n this.handleCzk();\r\n }\r\n\r\n handleJfdxCancel = (e) => {\r\n this.setState({\r\n jfdxVisible: false,\r\n });\r\n }\r\n\r\n checkOfflineEnable = (paymode,key) => {\r\n const { paymodes } = paymode || {};\r\n const { isOffline} = stores.offlineSys;\r\n if(isOffline){\r\n if(paymodes){\r\n const currentPayMode = paymodes.find(item=> item.paymentType === key);\r\n if(currentPayMode && !currentPayMode.offlineDisable){\r\n return true\r\n }else{\r\n Message.warn(`离线模式下不支持此结算方式`);\r\n return false;\r\n }\r\n }\r\n Message.warn(`离线模式下结算方式数据错误`);\r\n return false;\r\n }else{\r\n return true;\r\n }\r\n\r\n }\r\n\r\n\r\n onTabsClick2 = (paymode, brefund, themode, key, bookType) => {\r\n const { PayStyle, Differentiate } = enumController.getEnumOj();\r\n paymode.currentMode = null;\r\n switch (key) {\r\n case PayStyle.hyczk:\r\n this.setState({\r\n isInputMember: true\r\n },() => {\r\n this.showCzkModal(-1);\r\n })\r\n break;\r\n case PayStyle.jfdx:\r\n this.showJfdxModal(-1);\r\n break;\r\n case PayStyle.djq:\r\n let memberInfo = this.store && this.store.member;\r\n let hasmember = (memberInfo.ID || memberInfo.Code || memberInfo.Name) ? true : false;\r\n let omc = this.props.initData(\"OnlyMemberCanUseCoupon\")\r\n if (omc && !hasmember) {\r\n Message.warn(`仅会员可以使用${Differentiate.COUPON},请录入会员!`);\r\n return;\r\n }\r\n this.showDjqModal(-1);\r\n break;\r\n case PayStyle.wx:\r\n if (_find(paymode.thePaymodes, (mode) => { return mode.paymentType === PayStyle.zfb || mode.paymentType === PayStyle.smzf})) {\r\n Message.error('已使用了其他的付款码支付,不可以再使用微信了。');\r\n } else {\r\n this.setCurrentFocusAndAddPay(key, bookType);\r\n }\r\n break;\r\n case PayStyle.zfb:\r\n if (_find(paymode.thePaymodes, (mode) => { return mode.paymentType === PayStyle.wx || mode.paymentType === PayStyle.smzf })) {\r\n Message.error('已使用了其他的付款码支付,不可以再使用支付宝了。');\r\n } else {\r\n this.setCurrentFocusAndAddPay(key, bookType);\r\n }\r\n break;\r\n case PayStyle.smzf:\r\n if (_find(paymode.thePaymodes, (mode) => { return mode.paymentType === PayStyle.zfb || mode.paymentType === PayStyle.wx})) {\r\n Message.error('已使用了其他的付款码支付,不可以再使用扫码支付了。');\r\n } else {\r\n this.setCurrentFocusAndAddPay(key, bookType);\r\n }\r\n break;\r\n default:\r\n this.setCurrentFocusAndAddPay(key, bookType);\r\n break;\r\n }\r\n }\r\n\r\n checkScanDisabled=(key)=>{\r\n const { paymode, newStyle } = this.store;\r\n const { PayStyle } = enumController.getEnumOj();\r\n let bdisabled=false;\r\n if(!newStyle){\r\n return bdisabled;\r\n }\r\n switch (key) {\r\n case PayStyle.wx:\r\n if (_find(paymode.thePaymodes, (mode) => { return (mode.paymentType === PayStyle.zfb || mode.paymentType === PayStyle.smzf) && parseFloat(mode.value)!=0 })) {\r\n bdisabled=true;\r\n }\r\n break;\r\n case PayStyle.zfb:\r\n if (_find(paymode.thePaymodes, (mode) => { return (mode.paymentType === PayStyle.wx || mode.paymentType === PayStyle.smzf) && parseFloat(mode.value)!=0 })) {\r\n bdisabled=true;\r\n }\r\n break;\r\n case PayStyle.smzf:\r\n if (_find(paymode.thePaymodes, (mode) => { return (mode.paymentType === PayStyle.zfb || mode.paymentType === PayStyle.wx) && parseFloat(mode.value)!=0 })) {\r\n bdisabled=true;\r\n }\r\n break;\r\n }\r\n return bdisabled;\r\n }\r\n\r\n onTabsClick = (key, bookType) => {\r\n const { PayStyle, Differentiate } = enumController.getEnumOj();\r\n if (key === PayStyle.hyczk) {\r\n const { isProhibitMeStorageCard } = this.props;\r\n if (isProhibitMeStorageCard) {\r\n Message.warn('储值卡不可键盘录入,请刷卡!');\r\n return;\r\n }\r\n }\r\n const { MultiPay } = enumController.getEnumOj();\r\n const { paymode, brefund, boriginReturn } = this.store;\r\n const { noAlreadyWarn } = this.state;\r\n if(!stores.offlineSys.shouldSettlement(key)) return false;\r\n\r\n if (this.checkModeDisabled(key, brefund, boriginReturn)) {\r\n return;\r\n }\r\n let themode = _find(paymode.paymodes, { 'paymentType': key });\r\n //预订非全款不可使用零售抵现类支付方式\r\n // if(bookType == 'bookPay' && this.store.paymode.isNotFullOnlyBook && themode.virtualPay){\r\n // return Message.error(\"付订金时不可使用零售抵现类结算方式!\");\r\n // }\r\n if (themode.exchangeRate != 1) {\r\n let forign = _find(paymode.thePaymodes, (mode) => { return mode.exchangeRate != 1 && mode.paymentType != key });\r\n if (forign) {\r\n Message.error(\"只允许一种外币结算。\");\r\n return;\r\n }\r\n }\r\n themode = _find(paymode.thePaymodes, (mode) => { return mode.paymentType === key });\r\n const that = this;\r\n if (themode) {\r\n this.setCurrentFocusOnly(key);\r\n return;\r\n } else if (paymode.thePaymodes.length >= 1) {\r\n switch (this.props.initData(\"multiPay\")) {\r\n case MultiPay.FORBIDDEN:\r\n Message.error(\"当前设置为不支持多种结算方式。\");\r\n break;\r\n case MultiPay.NOTIFICATION:\r\n noAlreadyWarn ? ModalWraper.confirm({\r\n className: 'tplus-confirm-modal',\r\n title: '复合结算',\r\n content: '您确定要使用多种结算方式吗?',\r\n onOk() {\r\n that.setState({\r\n noAlreadyWarn: false\r\n })\r\n that.onTabsClick2(paymode, brefund, themode, key, bookType);\r\n },\r\n onCancel() {\r\n },\r\n }) : that.onTabsClick2(paymode, brefund, themode, key, bookType);\r\n break;\r\n default:\r\n this.onTabsClick2(paymode, brefund, themode, key, bookType);\r\n break;\r\n }\r\n } else {\r\n this.onTabsClick2(paymode, brefund, themode, key, bookType);\r\n }\r\n }\r\n\r\n editModal = (id,type,boriginReturn)=>{\r\n this.setState({currentIndex:id});\r\n const { PayStyle } = enumController.getEnumOj();\r\n switch(type){\r\n case PayStyle.hyczk:\r\n !boriginReturn && this.showCzkModal(id);\r\n break;\r\n case PayStyle.jfdx:\r\n !boriginReturn && this.showJfdxModal(id);\r\n break;\r\n case PayStyle.djq:\r\n this.showDjqModal(id);\r\n break;\r\n }\r\n }\r\n\r\n setCurrentFocusAndAddPay = (key, bookType, payId) => {\r\n this.store.changeFocusAndAddPay(key, bookType);\r\n if(this.store.bquick){\r\n this.handleSettle(\"quickPay\");\r\n }else{\r\n this.setFocusAndSelection(key, payId);\r\n }\r\n }\r\n\r\n onDelPay = (index,boriginReturn,type, bookType) => {\r\n const { PayStyle } = enumController.getEnumOj();\r\n if(boriginReturn && (type==PayStyle.hyczk || type==PayStyle.djq || type==PayStyle.jfdx)){\r\n Message.info('原单退货时,该结算方式不可以删除。');\r\n }else{\r\n this.store.delPay(index, bookType);\r\n }\r\n }\r\n\r\n handleChange = (index, e, type) => {\r\n if(!stores.offlineSys.shouldSettlement(this.store.paymode.currentFocus)) return;\r\n let mode=_find(this.store.paymode.thePaymodes,{'paymethodId':index});\r\n // if(type == 'bookPay' && this.store.paymode.isNotFullOnlyBook && mode.virtualPay){\r\n // return Message.error(\"付订金时不可使用零售抵现类结算方式!\");\r\n // }\r\n let currentInput = e.target;\r\n let amountMaxLength = parseInt(this.props.initData[\"AmountMaxLength\"] || 10);\r\n if (!isNaN(e.target.value) || e.target.value == '-') {\r\n if (e.target.value.length <= amountMaxLength) {\r\n this.store.changeValue(index, e.target.value, false, type);\r\n }\r\n }\r\n }\r\n\r\n setCurrentModeValue=(val,max)=>{\r\n const { PayStyle } = enumController.getEnumOj();\r\n var reg = /^[\\d.]+$/g;\r\n if (this.store.paymode.currentMode.paymentType === PayStyle.hyczk || this.store.paymode.currentMode.paymentType === PayStyle.jfdx) {\r\n if (!val) {\r\n this.setState(({\r\n storageValue: val\r\n }))\r\n } else {\r\n if (!reg.test(val)) {\r\n return;\r\n } else {\r\n let value1 = val.split('.') ;\r\n if (value1.length > 1) {\r\n if (value1[1].length < 3) {\r\n this.setState({\r\n storageValue: val\r\n })\r\n } else {\r\n return;\r\n }\r\n } else {\r\n if (val.length > 9) {\r\n return\r\n } else {\r\n this.setState({\r\n storageValue: val\r\n })\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // let bjfdx=this.store.paymode.currentMode.paymentType==PayStyle.jfdx;\r\n this.store.paymode.setCurrentModeValue(val,max);\r\n }\r\n\r\n onBlur = (index, e, type) => {\r\n this.currentInput = null;\r\n this.store.changeFocusOnly(-1);\r\n this.store.changeValue(index, e.target.value == '-' ? 0 : e.target.value, true, type);\r\n }\r\n\r\n onFocus = (index, mode, paymode, e) => {\r\n this.currentInput = e.target;\r\n this.setState({ currentIndex: index });\r\n if (mode.paymentType == paymode.currentFocus) return;\r\n this.setCurrentFocusOnly(mode.paymentType);\r\n }\r\n\r\n onFocusHack = (index, mode, paymode, e) => {\r\n this.currentInput = e.target;\r\n this.setState({ currentIndex: index });\r\n if (mode.paymentType == paymode.currentFocus) return;\r\n this.store.changeFocusOnly(mode.paymentType);\r\n }\r\n\r\n\r\n setCurrentFocusOnly =(key)=>{\r\n this.store.changeFocusOnly(key);\r\n this.setFocusAndSelection(key);\r\n }\r\n\r\n appendCzkmode=(boriginReturn, params)=>{\r\n const { PayStyle } = enumController.getEnumOj();\r\n if(boriginReturn){\r\n Message.info('原单退货时不可以使用非原单的储值卡结算方式。');\r\n return ;\r\n }\r\n let bappend=true;\r\n const { paymode, newStyle, member } = this.store;\r\n if(newStyle && member.ID && _findIndex(paymode.thePaymodes, (mode) => {return mode.paymentType === PayStyle.hyczk && mode.member.id==member.ID} )==-1){\r\n bappend=false;\r\n }\r\n this.showCzkModal(-1,bappend, params);\r\n }\r\n\r\n djqChecked=(q, dto)=>{\r\n const { Differentiate } = enumController.getEnumOj()\r\n if(this.store.paymode.currentMode.boriginReturn){\r\n Message.info(`原单退货时${Differentiate.COUPON}不可以取消。`);\r\n return ;\r\n }\r\n let { isNewRetailBCPos } = platform || {};\r\n if (isNewRetailBCPos) {\r\n this.store.paymode.calcDjqCheckValue(q, this.store.dto);\r\n } else {\r\n this.store.paymode.calcDjqValue(q);\r\n }\r\n // this.props.onGetCouponList && this.props.onGetCouponList(this.store.dto, _filter(this.store.paymode.currentMode.djqs,(djq)=>{return djq.couponCategoryEnum !== 'RIGHT'}));\r\n // this.props.onGetCouponList && this.props.onGetCouponList(this.store.dto, _filter(this.store.paymode.currentMode.djqs,(djq)=>{return djq.checked}), this.store.paymode.currentMode.djqs);\r\n }\r\n\r\n addDjq=()=>{\r\n //document.getElementById(`inputS${index}`)\r\n //const v = _trim(this['inputdjq']['input']['value']);\r\n //api\r\n // this.store.addDjq('10000','5元优惠券',5,'无门槛','2019-12-31',true);\r\n const v=_trim(this.inputdjq.input.value);\r\n // if(v===''){\r\n // return ;\r\n // }\r\n this.store.checkCoupon(v).then(()=>{\r\n this.inputdjq.input.focus();\r\n }).finally(() => {\r\n setTimeout(() => {\r\n this.inputdjq.input.value='';\r\n let ele = document.getElementById('djqInput');\r\n ele.value = '';\r\n }, 100)\r\n })\r\n }\r\n\r\n loadCzk= (v)=>{\r\n if(this.czkdebounced){\r\n return;\r\n }\r\n this.czkdebounced=_debounce(async()=>{\r\n let memberdata1 = await this.store.loadCzk(v);\r\n if (memberdata1 && memberdata1.length === 1) {\r\n if (this.store.paymode.currentMode.storageCardNo) {\r\n this.setState({\r\n czkValue: this.store.paymode.currentMode.storageCardNo\r\n })\r\n }\r\n } else if (memberdata1 && memberdata1.length >= 1) {\r\n this.setState({\r\n czkVisible: true,\r\n moreCzkVisible: true,\r\n memberdata1: memberdata1\r\n });\r\n }\r\n },1000,{\r\n 'leading': true,\r\n 'trailing': false\r\n });\r\n this.czkdebounced();\r\n setTimeout(()=>{\r\n this.czkdebounced.cancel();\r\n this.czkdebounced=null;\r\n },2000)\r\n }\r\n\r\n onHotKeyClick1=(mode,index,boriginReturn,bookType)=>{\r\n // if (bookType == 'bookPay' && this.store.paymode.isNotFullOnlyBook && mode.virtualPay){\r\n // return Message.error(\"付订金时不可使用零售抵现类结算方式!\");\r\n // }\r\n if(!stores.offlineSys.shouldSettlement(mode.paymentType)) return false;\r\n if(this.hotkeydebouncedPayMode == mode){\r\n return;\r\n }\r\n if(this.hotkeydebounced){\r\n this.hotkeydebounced.cancel();\r\n this.hotkeydebounced=null;\r\n }\r\n this.hotkeydebounced=_debounce(()=>{\r\n this.hotkeydebouncedPayMode = mode;\r\n this.onHotKeyClickModal(mode,index,boriginReturn);\r\n },500,{\r\n 'leading': true,\r\n 'trailing': false\r\n });\r\n this.hotkeydebounced();\r\n setTimeout(()=>{\r\n this.hotkeydebounced.cancel();\r\n this.hotkeydebounced=null;\r\n this.hotkeydebouncedPayMode = \"\";\r\n },1000)\r\n }\r\n\r\n onHotKeyClickModal=(mode,index,boriginReturn)=>{\r\n const { PayStyle } = enumController.getEnumOj();\r\n let { brefund } = this.store;\r\n if(this.checkModeDisabled(mode.paymentType,brefund,boriginReturn)){\r\n return;\r\n }\r\n if(mode.paymentType==PayStyle.hyczk){\r\n this.appendCzkmode(boriginReturn);\r\n }else{\r\n this.editModal(index, mode.paymentType, boriginReturn)\r\n }\r\n }\r\n\r\n onHotKeyClick2=(index,mode,paymode,e, bookType)=>{\r\n if(!stores.offlineSys.shouldSettlement(mode.paymentType)) return false;\r\n if(this.hotkeydebouncedPayMode == mode){\r\n return;\r\n }\r\n // if (bookType == 'bookPay' && this.store.paymode.isNotFullOnlyBook && mode.virtualPay){\r\n // return Message.error(\"付订金时不可使用零售抵现类结算方式!\");\r\n // }\r\n this.store.changeClickFocusOnly(mode.paymentType);\r\n this.setCurrentFocusOnly(mode.paymentType);\r\n if(this.hotkeydebounced){\r\n this.hotkeydebounced.cancel();\r\n this.hotkeydebounced=null;\r\n }\r\n this.hotkeydebounced=_debounce(()=>{\r\n this.hotkeydebouncedPayMode = mode;\r\n this.onFocus(index, mode, paymode, e);\r\n },500,{\r\n 'leading': true,\r\n 'trailing': false\r\n });\r\n this.hotkeydebounced();\r\n setTimeout(()=>{\r\n this.hotkeydebounced.cancel();\r\n this.hotkeydebounced=null;\r\n this.hotkeydebouncedPayMode = \"\";\r\n },1000)\r\n }\r\n\r\n onHotKeyEnter = (e, notsettle) => {\r\n let { paymode, brefund, newStyle } = this.store;\r\n // if (this.hotkeydebouncedPayMode == paymode) {\r\n // return;\r\n // }\r\n if (this.hotkeydebounced) {\r\n this.hotkeydebounced.cancel();\r\n this.hotkeydebounced = null;\r\n }\r\n this.hotkeydebounced = _debounce(() => {\r\n // let { type, amount, totalVariety, totalQuantity, isReturn, quantityDetail,memberDisabled } = this.props\r\n let boriginReturn = this.context && this.context.viewModel && this.context.viewModel.data && JSON.getCellValue(this.context.viewModel.data, \"IsOriginalReturn\");\r\n let thePaymodes = newStyle ? _filter(paymode.thePaymodes, (m) => { return !(this.checkModeDisabled(m.paymentType, brefund, boriginReturn) && parseFloat(m.value) == 0); }) : paymode.thePaymodes;\r\n // 定义当前检测的paymode\r\n this.hotkeydebouncedPayMode = paymode;\r\n if (!notsettle && !this.checkSettleDisabled(paymode, thePaymodes)) {\r\n this.handleSettle();\r\n } else if ((thePaymodes || []).length > 0) {\r\n\r\n // 根据currentIndex = paymethodeId 获取当前支付方式位置\r\n let payIndex = -1;\r\n thePaymodes.forEach((paymodes,index)=>{\r\n if(paymodes.paymethodId == this.state.currentIndex) payIndex = index;\r\n });\r\n this.setFocusAndSelectionMode(thePaymodes,payIndex);\r\n }\r\n }, 500, {\r\n 'leading': true,\r\n 'trailing': false\r\n });\r\n this.hotkeydebounced();\r\n setTimeout(() => {\r\n this.hotkeydebounced && this.hotkeydebounced.cancel();\r\n this.hotkeydebounced = null;\r\n this.hotkeydebouncedPayMode = \"\";\r\n }, 1000)\r\n }\r\n\r\n\r\n setFocusAndSelectionMode = (thePaymodes,currentIndex) => {\r\n const { PayStyle } = enumController.getEnumOj();\r\n let displayPayModeList = [...thePaymodes];\r\n // 复制支付方式列表\r\n const SaoMaPayMode = displayPayModeList.find( mode => mode.paymentType == PayStyle.smzf);\r\n // 查找扫码支付\r\n if(SaoMaPayMode){\r\n // 如果扫码支付存在 则 排除微信支付宝\r\n displayPayModeList = displayPayModeList.filter( mode => mode.paymentType != PayStyle.zfb && mode.paymentType != PayStyle.wx )\r\n }\r\n // 查找到下一次enter键后的支付方式\r\n let paymodeOb = this.findHaveNoModlePayType(displayPayModeList,currentIndex);\r\n if(paymodeOb){\r\n // 获取焦点\r\n this.setFocusAndSelection(paymodeOb.mode.paymentType);\r\n }\r\n }\r\n\r\n\r\n\r\n /**\r\n *\r\n * @param {*} thePaymodes 支付方式列表\r\n * @param {*} currenIndex 当前支付方式下标\r\n * @param {*} symbol 从当前currenIndex开始 还是从当前currenIndex截止\r\n */\r\n findModlePayBySplice = (thePaymodes,currenIndex,symbol) =>{\r\n const { PayStyle } = enumController.getEnumOj();\r\n let findIndex = currenIndex;\r\n const endCurrentMode = thePaymodes.find((mode, index) => {\r\n findIndex++;\r\n return (symbol? index > currenIndex:index < currenIndex) &&\r\n mode.paymentType != PayStyle.hyczk &&\r\n mode.paymentType != PayStyle.djq &&\r\n mode.paymentType != PayStyle.jfdx &&\r\n stores.offlineSys.shouldSettlement(mode.paymentType,true)\r\n });\r\n if(endCurrentMode) return { mode:endCurrentMode,index:findIndex}\r\n return null;\r\n }\r\n\r\n findHaveNoModlePayType = (thePaymodes,currenIndex) => {\r\n if(!thePaymodes || thePaymodes.length == 0) return null;\r\n const endCurrentModeOb = this.findModlePayBySplice(thePaymodes,currenIndex,true)\r\n if(endCurrentModeOb) return endCurrentModeOb;\r\n const startCurrentModeOb = this.findModlePayBySplice(thePaymodes,currenIndex,false)\r\n if(startCurrentModeOb) return startCurrentModeOb;\r\n return null\r\n }\r\n\r\n\r\n setFocusAndSelection = (key, payId) => {\r\n const that=this;\r\n const { paymode } = this.store;\r\n const { PayStyle } = enumController.getEnumOj();\r\n let themode = _find(paymode.thePaymodes, (mode) => mode.paymentType === key);\r\n if (key === PayStyle.hyczk) {\r\n themode = _find(paymode.thePaymodes, (mode) => mode.paymethodId === payId);\r\n }\r\n const index = (themode && themode.paymethodId) || -1;\r\n if (index !== -1) {\r\n setTimeout( ()=> {\r\n const input = document.getElementById(`inputS${index}`)\r\n that.setState({currentIndex:index});\r\n this.currentInput = input;\r\n setTimeout( ()=> {\r\n input.focus();\r\n input.setSelectionRange(0, input.value.length)\r\n }, 10)\r\n\r\n }, 200)\r\n }\r\n }\r\n\r\n settleUnReturn = async () => {\r\n const that = this;\r\n ModalWraper.confirm({\r\n className: 'tplus-confirm-modal',\r\n content: <div className='unReturn'><div className='title'>支付超时,需要重新查询支付结果!</div><div>若不重新查询,会出现顾客支付成功,但零售单收款不成功的情况。</div></div>,\r\n async onOk() {\r\n window.__queryingModal = openQueryingModal();\r\n let result = await that.store.querySettleResult();\r\n setTimeout(() => {\r\n if (window.__queryingModal) {\r\n window.__queryingModal.destroy()\r\n window.__queryingModal = null\r\n }\r\n }, 0)\r\n switch (result.Flag) {\r\n case \"0\"://成功\r\n that.store.setDtoID(result.ID);\r\n that.settleSuccess();\r\n break;\r\n case \"1\"://处理中\r\n that.settleUnReturn();\r\n // Message.info(\"结算正在处理中,请稍后再次查询。\");\r\n break;\r\n case \"2\"://失败\r\n Message.info(`结算失败,原因:${result.Message}。`);\r\n // that.settleCanceled();\r\n break;\r\n }\r\n },\r\n onCancel() {\r\n // this.settleCanceled();\r\n },\r\n });\r\n }\r\n settleCanceled=()=>{\r\n console.log('settlement--settleCanceled--调用清除数据==Focus==')\r\n this.props.clearVoucherData && this.props.clearVoucherData();\r\n this.cancelState();\r\n }\r\n\r\n settleSuccess = async () => {\r\n //提示成功\r\n const { PayStyle } = enumController.getEnumOj();\r\n let { amount, received, thePaymodes } = this.store.paymode;\r\n let { IdbusiType } = this.store.dto;\r\n let charge = this.store.paymode.charge;\r\n let openCashBox = !!_find(thePaymodes, (mode) => { return mode.paymentType == PayStyle.xianjin });\r\n // 判断双屏显示。\r\n const _this = this;\r\n const showTwoScreen = function (amount, received, charge) {\r\n const getScreenType = function () {\r\n let flag = false;\r\n if (_this.hasElectron === true || _this.isHorizontalSunMi) {\r\n let data = localStore.get('setting_setData') || [];\r\n data = data.filter(item => item.Name === 'EnableDoubleScreen');\r\n data = data && data.length > 0 ? data.shift() : null;\r\n if (data && data.Value === '1') {\r\n flag = true;\r\n }\r\n }\r\n return flag;\r\n }\r\n const params = {\r\n step: 3,\r\n data: {\r\n amount: amount,\r\n received: received,\r\n charge: charge\r\n }\r\n }\r\n let screenType = getScreenType();\r\n if (screenType === true) { //副屏-第二屏幕\r\n if (_this.isHorizontalSunMi) {\r\n window.sunMi_PresentationManager.sendMessageToSecondScreen(params);\r\n setTimeout(()=>{\r\n window.sunMi_PresentationManager.sendMessageToSecondScreen({ step: 1 });\r\n },3000)\r\n } else {\r\n nativeMs && nativeMs.setIpcRendererMethod('ReplyScreen', params);\r\n }\r\n setTimeout(() => { _this.props.onSettleSuccess && _this.props.onSettleSuccess({ openCashBox }) }, 1500)\r\n } else {\r\n _this.props.onSettleSuccess && _this.props.onSettleSuccess({ openCashBox });\r\n }\r\n }\r\n\r\n const { getSettleGift, isFull } = this.store;\r\n const { type } = this.props;\r\n let resp1 = false;\r\n if (type !==1) {\r\n try {\r\n // 获取支付成功后礼包情况\r\n resp1 = await getSettleGift();\r\n } catch(e) {\r\n console.log(\"获取支付礼包getSettleGift失败\");\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n if (window.__loadingModal) {\r\n window.__loadingModal.destroy()\r\n window.__loadingModal = null\r\n }\r\n let isXianjin = _this.state.isXianjin\r\n showTwoScreen(amount, received, charge);\r\n if (isXianjin) this.handleGuestShow(4, charge);\r\n _this.setState({\r\n noAlreadyWarn: true\r\n })\r\n\r\n let { MemberPoints, isMemberPointsReturn, isReturn } = _this.props;\r\n let message = \"支付成功\"\r\n if ((isReturn || isMemberPointsReturn) && Number(amount) == Number(0)) {\r\n message = \"退货成功\"\r\n } else if (MemberPoints && Number(amount) == Number(0)) {\r\n message = \"兑换成功\"\r\n }\r\n window.__successModal = showSuccessModal(amount, received, charge, _this.props.onModalClose, isXianjin, message, resp1 && resp1.data, stores, IdbusiType, isFull, () => {\r\n _this.handleGuestShow(5)\r\n })\r\n this.setState({ isXianjin: false })\r\n this.cancelState();\r\n }, 0)\r\n }\r\n // 处理客显显示功能\r\n handleGuestShow = (dtype, value) => {\r\n if (this.hasElectron === false) return;\r\n let dt = localStore.get('portsetting_hardSet') || [];\r\n const { guestshow_enable, guestshow_clear, guestshow_welcome, guestshow_collect, guestshow_refund, guestshow_change } = dt || {};\r\n const hasSuccess = localStore && localStore.get('portsetting_hardSet_isSuccess');\r\n if (!guestshow_enable || (!!guestshow_enable && hasSuccess == '0')) return;\r\n let other = '';\r\n switch (dtype) {\r\n case 0: //欢迎\r\n other = guestshow_welcome;\r\n break;\r\n case 2: //退款\r\n other = (guestshow_refund + \"\").replace('[含税总金额]', Math.abs(value))\r\n break;\r\n case 3: //收款\r\n other = (guestshow_collect + \"\").replace('[含税总金额]', value)\r\n break;\r\n case 4: //找零\r\n other = (guestshow_change + \"\").replace('[找零金额]', getFixedNumber(value))\r\n break;\r\n case 5: //清除\r\n other = guestshow_clear;\r\n break;\r\n }\r\n let params = JSON.stringify({ price: '', qty: '', total: '', inv: '', wel: '', other: other })\r\n console.log(`Send客显sendDataCusDisp:状态-${dtype},参数-${params}`)\r\n HardwareAPI.sendDataCusDisp({ data: params, dataType: dtype }, ret => { console.log(`Return客显sendDataCusDisp:状态-${dtype},返回-${JSON.stringify(ret)}`) })\r\n }\r\n\r\n handleSettle = async (args) =>{\r\n this.setState({\r\n settleDisabled: true,\r\n })\r\n console.log(\"settlement.handleSettle开始执行,参数:\",+args);\r\n const { PayStyle } = enumController.getEnumOj();\r\n const { paymode,brefund,boriginReturn,newStyle } = this.store;\r\n const isQuickPay = args === 'quickPay'\r\n const that =this;\r\n let status = false\r\n paymode.thePaymodes.forEach((v) => {\r\n if (v.paymentType === PayStyle.xianjin && v.value !== '0.00') {\r\n status = true\r\n }\r\n })\r\n this.setState({\r\n isXianjin: status ? true : false\r\n })\r\n if(that.checkCharge() && Math.abs(paymode.receivable)>that.props.initData(\"posChangeUpperAmount\")){\r\n Message.error('找零不能超过最大找零金额:'+getFixedNumber(that.props.initData(\"posChangeUpperAmount\"))+'元');\r\n this.setState({\r\n settleDisabled: false\r\n })\r\n return;\r\n }\r\n if(args !==\"zero\" && !newStyle){\r\n let zeromode=_find(paymode.thePaymodes,(mode)=>{\r\n return parseFloat(mode.value)==0 || (mode.exchangeRate!=1?parseFloat(mode.value2):parseFloat(mode.value))==0;\r\n })\r\n if(zeromode){\r\n this.setState({\r\n settleDisabled: false\r\n })\r\n Message.error(zeromode.name +' 的结算金额为零,不可以结算。');\r\n return;\r\n }\r\n }\r\n\r\n let promises = []\r\n const thePaymodes = _sortBy(newStyle ?_filter(paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):paymode.thePaymodes, 'orderBy')\r\n if(isQuickPay ){\r\n let quickmode=thePaymodes[0];\r\n if (this.checkModeDisabled(quickmode.paymentType,brefund,boriginReturn)){\r\n this.setState({\r\n settleDisabled: false\r\n })\r\n Message.error('退款不能使用'+ quickmode.name +'结算,请使用其他结算方式!');\r\n return;\r\n }\r\n }\r\n _forEach(thePaymodes, (mode) => {\r\n if (!(boriginReturn && brefund) && (mode.paymentType == PayStyle.zfb || mode.paymentType == PayStyle.wx || mode.paymentType == PayStyle.smzf || mode.paymentType == PayStyle.SQBPAY || mode.paymentType == PayStyle.CSYH\r\n || (mode.paymentType == PayStyle.xianjin && isQuickPay))) {\r\n promises.push(that.inputConfirm(mode, isQuickPay))\r\n }\r\n });\r\n\r\n const commit = async (values) => {\r\n const result = await this.store.commit(this.props.bTest);\r\n if (result === true) {//成功\r\n that.settleSuccess();\r\n Promise.resolve()\r\n } else {\r\n this.setState({\r\n settleDisabled: false\r\n })\r\n //提示失败\r\n setTimeout(() => {\r\n if (window.__loadingModal) {\r\n window.__loadingModal.destroy()\r\n window.__loadingModal = null\r\n }\r\n //撤销支付\r\n }, 0)\r\n if (result && (result.Code || result.code)) {\r\n switch (result.Code || result.code) {\r\n case 'RE_Settle_UnReturn':\r\n console.log('settlement--RE_Settle_UnReturn--调用清除数据==Focus==')\r\n this.props.clearVoucherData && this.props.clearVoucherData();\r\n this.cancelState();\r\n break;\r\n case 'ECONNABORTED'://error.code === 'ECONNABORTED' && error.message.indexOf('timeout')\r\n result.message.indexOf('timeout') > -1 && that.settleUnReturn();\r\n break;\r\n }\r\n }\r\n if(isQuickPay){\r\n that.props.onCancelSettle && that.props.onCancelSettle();\r\n that.cancelState();\r\n }\r\n\r\n await Promise.reject()\r\n }\r\n }\r\n\r\n async function handleUserInputs(promises) {\r\n let results = []\r\n try {\r\n for (let p of promises) {\r\n const result = await p\r\n results.push(result)\r\n }\r\n window.__loadingModal = openLoadingModal()\r\n await commit(results);\r\n } catch (err) {\r\n // notification.open({\r\n // message: '错误',\r\n // description: '失败, 请重新结算',\r\n // });\r\n }\r\n }\r\n\r\n handleUserInputs(promises)\r\n }\r\n\r\n handleCzk = async () =>{\r\n const that =this;\r\n const curmode = this.store.paymode.currentMode;\r\n let promises = [];\r\n const { isNewRetailBCPos } = platform || {};\r\n if (isNewRetailBCPos) {\r\n if(curmode.value>0){\r\n const { PayStyle } = enumController.getEnumOj();\r\n if (curmode.paymentType === PayStyle.hyczk) {\r\n if (curmode.cardTypeEnum === 'BALANCE_CARD') {\r\n !curmode.freePaymentPasswordStore && promises.push(that.inputPwd(curmode));\r\n } else {\r\n curmode.isNeedPassword && promises.push(that.inputPwd(curmode));\r\n }\r\n }\r\n }\r\n } else {\r\n if(curmode.member.needPwd && curmode.value>0){\r\n promises.push(that.inputPwd(curmode));\r\n }\r\n }\r\n\r\n const commit = async (values)=> {\r\n //密码校验\r\n const result= values.length>0 ? (await that.store.validePwd(values[0])) : \"\";\r\n if(result==\"\"){//成功\r\n //返回\r\n that.setCurrentFocusAndAddPay(curmode.paymentType, null, curmode.paymethodId);\r\n Promise.resolve()\r\n }else{\r\n //Message.info(\"密码不正确\");\r\n await Promise.reject(result)\r\n }\r\n }\r\n\r\n async function handleUserInputs(promises) {\r\n let results = []\r\n try {\r\n for (let p of promises) {\r\n const result = await p\r\n results.push(result)\r\n }\r\n await commit(results);\r\n } catch (err) {\r\n if(err!=\"cancelpwd\"){\r\n Message.error(err);\r\n setTimeout(()=>{that.handleCzk();},500);\r\n }\r\n }\r\n }\r\n\r\n handleUserInputs(promises)\r\n }\r\n //that[`inputS${paymode.paymethodId}`]\r\n fKeyboardOnOk = (paymethodeId) => {\r\n const input=this[`inputS${paymethodeId}`].input;\r\n return (e)=>{\r\n input && input.blur();\r\n Keyboard.close();\r\n }\r\n }\r\n fKeyboardOnClose = (paymethodeId) => {\r\n const input=this[`inputS${paymethodeId}`].input;\r\n return (e)=>{\r\n input && input.blur();\r\n Keyboard.close();\r\n }\r\n }\r\n\r\n keyboardOnOk = (e) => {\r\n this.inputkey && this[this.inputkey] && this[this.inputkey].input && this[this.inputkey].input.blur();\r\n Keyboard.close();\r\n }\r\n\r\n keyboardOnClose = (e) => {\r\n this.inputkey && this[this.inputkey] && this[this.inputkey].input && this[this.inputkey].input.blur();\r\n Keyboard.close();\r\n }\r\n changefn=(e)=>{\r\n console.log(e)\r\n }\r\n setConfirmPwdValue = (value) => {\r\n this.setState({\r\n confirmPwd: value\r\n })\r\n }\r\n inputPwd = async (paymode) => {\r\n const that = this\r\n const { confirmPwd } = this.state;\r\n return new Promise(function (resolve, reject) {\r\n const modal = asyncModal({\r\n onPressEnter: () => {\r\n Keyboard.close();\r\n const v = _trim(that[`inputAmount`]['input']['value']);\r\n // if (v !== '') {\r\n modal.destroy()\r\n const { confirmPwd } = that.state || {};\r\n setTimeout(() => {\r\n paymode.authCode=v;\r\n resolve({\r\n id:paymode.member.id,\r\n pwd: confirmPwd,\r\n })\r\n }, 100)\r\n // } else {\r\n // Message.info('请输入密码');\r\n // throw \"error\";\r\n // }\r\n },\r\n onPressEsc: () => {\r\n Keyboard.close();\r\n reject('cancelpwd')\r\n },\r\n maskClosable: false,\r\n keyboard: false,\r\n closable: true,\r\n title:paymode.name,\r\n width:450,\r\n className: (that.isHorizontalSunMi || !that.isMobileEnvironment) ? 'pwdModal' : 'pwdModal extraHeight',\r\n // 储值卡结账时显示为密码框\r\n content: (<div className=\"scanInput\">\r\n <div>\r\n <span className=\"label\">应收金额:</span><span className=\"yfje\">{getFixedNumber(paymode.value)}</span>\r\n </div>\r\n <div className=\"pwd\">\r\n <span className=\"label\">储值余额密码:</span>\r\n <span>\r\n {/* <input type=\"text\" style={{width:'0px',marginLeft:'20px'}}></input> */}\r\n {/* <Input\r\n className=\"content\"\r\n style={{marginLeft:'-20px'}}\r\n placeholder=\"输入密码\"\r\n ref={input => that[`inputS${paymode.paymethodId}`] = input}\r\n onChange={(e) => {\r\n this.setState({\r\n confirmPwd: e.target.value\r\n })\r\n }}\r\n value={confirmPwd}\r\n onFocus={(e)=>{\r\n const inputTarget = that[`inputS${paymode.paymethodId}`].input;\r\n Keyboard.open((v)=>{\r\n const value = Keyboard.getNewValue(inputTarget, inputTarget.value, v);\r\n console.log('zlf',inputTarget, inputTarget.value);\r\n inputTarget.value=value;\r\n this.setState({\r\n confirmPwd: e.target.value\r\n })\r\n }, that.fKeyboardOnOk(paymode.paymethodId), that.fKeyboardOnClose(paymode.paymethodId))()\r\n }\r\n }\r\n onBlur={(e)=>{\r\n this.setState({\r\n confirmPwd: e.target.value\r\n })\r\n Keyboard.close();\r\n }}\r\n /> */}\r\n <NumkeyboardPassword\r\n className=\"content\"\r\n newType='positive'\r\n bordered\r\n placeholder=\"请输入6位数字密码\"\r\n style={{ width: 266, height: 32 }}\r\n maxLength={6}\r\n ref={input => that.inputAmount = input}\r\n onChange={value => that.setConfirmPwdValue(value)}\r\n // onBlur={value => that.handleConfirmBlur}\r\n />\r\n </span>\r\n </div>\r\n <div className=\"buttonRegion\">\r\n <div className=\"fr\">\r\n <Button size=\"large\" onClick={() => {\r\n modal.destroy()\r\n reject('cancelpwd')//\r\n }}>取消\r\n </Button>\r\n <Button\r\n type=\"primary\" size=\"large\" onClick={() => {\r\n const v = _trim(that[`inputAmount`]['input']['value'])\r\n const { confirmPwd } = that.state || {};\r\n // if (v !== '') {\r\n modal.destroy()\r\n // if (isQuickPay) {\r\n // window.__loadingModal = openLoadingModal()\r\n // }\r\n setTimeout(() => {\r\n paymode.authCode=v;\r\n resolve({\r\n id:paymode.member.id,\r\n pwd: confirmPwd,\r\n })\r\n }, 100)\r\n // } else {\r\n // Message.info('请输入密码');\r\n // }\r\n }}>确定\r\n </Button>\r\n </div>\r\n </div>\r\n </div>),\r\n })\r\n // 扫码框自动聚焦\r\n setTimeout(() => {\r\n that[`inputS${paymode.paymethodId}`] && that[`inputS${paymode.paymethodId}`].input.focus();\r\n that.inputAmount && that.inputAmount.input.focus();\r\n }, 300)\r\n })\r\n }\r\n\r\n isNoProductTip(nonProductMap) {\r\n const { RetailDetails } = this.context.viewModel.data || {};\r\n let temphtml = [];\r\n if(Object.keys(nonProductMap).length > 0){\r\n const columns = [\r\n {\r\n title: '商品名称',\r\n dataIndex: 'name',\r\n key: 'name',\r\n ellipsis: true,\r\n },\r\n {\r\n title: '原因',\r\n dataIndex: 'reason',\r\n key: 'reason',\r\n ellipsis: true,\r\n },\r\n ];\r\n for (let key in nonProductMap){\r\n let product = RetailDetails.find(o=>o.Idinventory == key)\r\n temphtml.push({name: product.Inventory.Name, reason: nonProductMap[key]})\r\n }\r\n const modal = asyncModal({\r\n onPressEnter: () => {\r\n modal.destroy();\r\n },\r\n maskClosable: false,\r\n keyboard: false,\r\n closable: true,\r\n title:'不可配送商品',\r\n width:600,\r\n className: '',\r\n content: (\r\n <div className=\"not-distribution-tip\">\r\n <div className=\"tip-content\">\r\n <Table\r\n columns={columns}\r\n dataSource={temphtml}\r\n scroll={{ y: 240 }}\r\n pagination={false}\r\n size='middle'/>\r\n </div>\r\n <div className=\"not-distribution-btn\">\r\n <Button type=\"primary\" onClick={() => {modal.destroy()}}>知道了</Button>\r\n </div>\r\n </div>\r\n ),\r\n })\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n btnDebounced = async (type, bquick) => {\r\n let IdbusiType = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.IdbusiType;\r\n let CustomerPhone = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.CustomerPhone;\r\n let DistributionMode = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.DistributionMode;\r\n let Address = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.Address;\r\n //预订时,若没录入买家手机号,或配送方式为快递时,弹框买家信息确认框\r\n if(IdbusiType == 38){\r\n if(DistributionMode.Id == 'ON_SITE_PICKUP' && !CustomerPhone && this.context.viewModel.data.Member.Mobilephone){\r\n this.props.syncMemberInfoProcessor();\r\n }\r\n if(!CustomerPhone && !this.context.viewModel.data.Member.Mobilephone || DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE'){\r\n let title = (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && Address ? '收货地址确认' : '收货人'\r\n await this.props.openBuyerModal(title);\r\n }\r\n }\r\n\r\n this.setState({\r\n bquick,\r\n isInputMember: true\r\n })\r\n const { PayStyle } = enumController.getEnumOj();\r\n const { paymode,brefund,boriginReturn,newStyle } = this.store;\r\n\r\n if(bquick && !stores.offlineSys.shouldSettlement(type)) return false;\r\n\r\n let status = false;\r\n paymode.thePaymodes.forEach((v) => {\r\n if (v.paymentType === PayStyle.xianjin && v.value !== '0.00') {\r\n status = true\r\n }\r\n })\r\n this.setState({\r\n isXianjin: status ? true : false\r\n })\r\n\r\n if (this.btndebounced) {\r\n return;\r\n }\r\n this.btndebounced = _debounce(() => {\r\n if (bquick) {\r\n this.quickSettle(type);\r\n } else {\r\n this.showModal();\r\n }\r\n }, 1000, {\r\n 'leading': true,\r\n 'trailing': false\r\n });\r\n this.btndebounced();\r\n setTimeout(() => {\r\n this.btndebounced.cancel();\r\n this.btndebounced = null;\r\n }, 2000)\r\n }\r\n\r\n onCzkChange=(v)=>{\r\n // console.log(\"czk change:\"+new Date().toLocaleTimeString())\r\n const { isNewRetailBCPos } = platform || {};\r\n if (!isNewRetailBCPos) {\r\n this.store.paymode.currentMode.member.setCardNo(v);\r\n }\r\n if (!/^[A-Za-z0-9]*$/.test(v)) {\r\n return;\r\n }\r\n this.setState({\r\n czkValue: v\r\n })\r\n // if(this.debounced){\r\n // this.debounced.cancel();\r\n // this.debounced=null;\r\n // // console.log(\"debounce canceled\");\r\n // }\r\n // this.debounced=_debounce(()=>{this.loadCzk(v)},2000);\r\n // this.debounced();\r\n }\r\n czkKeyboardOnOk = (e) => {\r\n this.czkInput.input.blur();\r\n Keyboard.close();\r\n this.loadCzk(this.czkInput.input[\"value\"]);\r\n }\r\n czkKeyboardOnClose = (e) => {\r\n this.czkInput && this.czkInput.input.blur();\r\n Keyboard.close();\r\n }\r\n\r\n onDjqChange=(v,isKeyBorad = false)=>{\r\n this.inputdjq.input.value=v;\r\n if(this.debounced){\r\n this.debounced.cancel();\r\n this.debounced=null;\r\n // console.log(\"debounce canceled\");\r\n }\r\n if(!isKeyBorad){\r\n this.debounced=_debounce(()=>{this.addDjq()},2000);\r\n this.debounced();\r\n }\r\n }\r\n djqKeyboardOnOk = (e) => {\r\n this.inputdjq.input && this.inputdjq.input.blur();\r\n Keyboard.close();\r\n this.addDjq();\r\n // this.loadCzk(this.czkInput.input[\"value\"]);\r\n }\r\n djqKeyboardOnClose = (e) => {\r\n this.inputdjq.input && this.inputdjq.input.blur();\r\n Keyboard.close();\r\n }\r\n\r\n checkCharge = () => {\r\n const { PayStyle } = enumController.getEnumOj();\r\n const { paymode } = this.store;\r\n const themode=_find(paymode.thePaymodes, mode=>mode.paymentType===PayStyle.xianjin);\r\n return (paymode.receivable < 0 && themode && themode.value>=Math.abs(paymode.receivable));\r\n }\r\n\r\n checkThepaymode(key){\r\n return _findIndex(this.store.paymode.thePaymodes,{paymentType:key})>-1;\r\n }\r\n\r\n onKeyboardChange(key) {\r\n const { PayStyle } = enumController.getEnumOj();\r\n if (this.currentInput) {\r\n if(this.store.paymode.currentMode) {\r\n let paymentType1 = this.store.paymode.currentMode.paymentType;\r\n if (paymentType1 === PayStyle.djq || paymentType1 === PayStyle.hyczk || paymentType1 === PayStyle.jfdx) {\r\n return;\r\n }\r\n }\r\n const value = Keyboard.getNewValue(this.currentInput, this.currentInput.value, key, true);\r\n if (!isNaN(value) || value == '-') {\r\n this.currentInput.value = value;\r\n this.store.changeValue(this.state.currentIndex, value, false);\r\n }\r\n }\r\n }\r\n\r\n renderToolbtn(mode,index,bookType){\r\n const { PayIcon , PayStyle} = enumController.getEnumOj();\r\n let { isReturn } = this.props;\r\n let { paymode, brefund, boriginReturn } = this.store;\r\n let hasSMZF = _find(paymode.paymodes, (item) => { return item.paymentType === PayStyle.smzf});\r\n //同时存在微信、支付宝(或者收钱吧)、扫码支付三种方式,在非退货模式下,隐藏微信、支付宝。\r\n let hotkeyIndex = index;\r\n if (!isReturn && hasSMZF) {\r\n if (mode.paymentType == PayStyle.wx || mode.paymentType == PayStyle.zfb) {\r\n return null;\r\n } else {\r\n let theArr = _filter(paymode.paymodes, t => { return t.paymentType != PayStyle.wx && t.paymentType != PayStyle.zfb })\r\n hotkeyIndex = _findIndex(theArr, m => { return m.paymentType == mode.paymentType })\r\n }\r\n }\r\n\r\n // const classNames = classnames({ 'paymode': true, 'paymodeSelected': this.checkThepaymode(mode.paymentType), 'paymodeDisabled': this.checkModeDisabled(mode.paymentType, brefund, boriginReturn)});\r\n\r\n const paymodeDisabled = this.checkModeDisabled(mode.paymentType, brefund, boriginReturn)? 'paymodeDisabled':'';\r\n const paymodeSelected = this.checkThepaymode(mode.paymentType)? 'paymodeSelected':'';\r\n return (\r\n <div key={index + \"\"} className={paymodeDisabled+' '+paymodeSelected + ' paymode hotkey_' + this.compoundHotkeysList[hotkeyIndex]} onClick={() => { this.onTabsClick(mode.paymentType,bookType) }}>\r\n <div className=\"logo\"><div className=\"icon bg-subsidiary-gray-color4\"><Ticon className=\"primary-color\" type={PayIcon[mode.paymentType] || PayIcon['default']} /></div></div>\r\n <div className=\"text primary-color\">{mode.name.length > 8 ? _truncate(mode.name, { length: 5, omission: '' }) + '...' : mode.name}</div>\r\n <div className=\"hotkey\">{this.isHorizontalPad ? '' : this.compoundHotkeysList[hotkeyIndex] || ''}</div>\r\n </div>\r\n )\r\n }\r\n xianjinChange=(paymethodId,val,receivable)=>{\r\n const inputTarget=this[`inputS${paymethodId}`].input.input;\r\n const inputTarget2=this[`inputS${paymethodId}2`];\r\n let value=val;\r\n if(isNaN(value) && value!=='-'){\r\n value=parseFloat(receivable)+parseFloat(inputTarget2.innerHTML);\r\n }\r\n inputTarget.value=value;\r\n //预订现金快捷支付,这里修改找零计算,大于应收小于全额金额,不找零,大于全额金额找零\r\n if( this.store.paymode.isNotFullBook){\r\n if(parseFloat(value||0) > this.store.paymode.bookMaxValue){\r\n inputTarget2.innerHTML=getFixedNumber(parseFloat(value||0)-parseFloat(this.store.paymode.bookMaxValue));\r\n }\r\n if (parseFloat(value||0) < parseFloat(receivable)){\r\n inputTarget2.innerHTML=getFixedNumber(parseFloat(value||0)-parseFloat(receivable));\r\n }\r\n if(parseFloat(receivable) <= parseFloat(value||0) && parseFloat(value||0) <= this.store.paymode.bookMaxValue){\r\n inputTarget2.innerHTML=getFixedNumber(0);\r\n }\r\n } else {\r\n inputTarget2.innerHTML=getFixedNumber(parseFloat(value||0)-parseFloat(receivable));\r\n }\r\n }\r\n\r\n //移动端:扫描商品\r\n changeScanProduct = () => {\r\n if (this.scanObj) this.scanObj.startScan()\r\n }\r\n onScanResult = (val, modal, el) => {\r\n let _this = this[`${el}`];\r\n if (_this) _this.setStateValue(val, () => {\r\n if (modal) modal.submitHandler()\r\n })\r\n }\r\n onScanCzkResult = (val) => {\r\n let _this = this;\r\n this.onCzkChange(val);\r\n setTimeout(() => { _this.loadCzk(val) }, 0)\r\n }\r\n\r\n //优惠券\r\n onScanDjqResult = (val) => {\r\n let el = this.inputdjq;\r\n if (el && el.input) el.input.value = val;\r\n this.addDjq(val);\r\n }\r\n\r\n //现金支付-存在权限控制\r\n getXianjinPayment = (payType, value) => {\r\n const { PayStyle } = enumController.getEnumOj();\r\n const { isManualIntoAmount } = this.state\r\n return payType === PayStyle.xianjin && isManualIntoAmount === \"1\" && value > 0 ? \"\" : value\r\n }\r\n\r\n getXianjinBalance = (payType, value) => {\r\n const { PayStyle } = enumController.getEnumOj();\r\n //找零金额-存在权限控制\r\n const { isManualIntoAmount } = this.state\r\n return payType === PayStyle.xianjin && isManualIntoAmount === \"1\" && value > 0 ? getFixedNumber(0 - value) : '0.00'\r\n }\r\n\r\n inputConfirm = (paymode, isQuickPay) => {\r\n const that = this\r\n const isStoredValueCard = false\r\n const { discountPrototypeTotalAmount } = this.state;\r\n const {isReturn, type } = this.props;\r\n let isManualIntoAmount\r\n let BuyerPayFreight = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.BuyerPayFreight;\r\n let DistributionMode = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.DistributionMode;\r\n // 付款弹窗\r\n return new Promise(function (resolve, reject) {\r\n const { PayStyle , PayIcon2} = enumController.getEnumOj();\r\n const modal = asyncModal({\r\n onPressEnter: () => {\r\n if (paymode.paymentType == PayStyle.xianjin) {\r\n let zl = parseFloat(that[`inputS${paymode.paymethodId}2`].innerHTML);\r\n if (zl < 0) {\r\n Message.error('支付金额不能小于应收金额');\r\n throw \"error\";\r\n } else if (zl > that.props.initData(\"posChangeUpperAmount\")) {\r\n Message.error('找零不能超过最大找零金额:' + getFixedNumber(that.props.initData(\"posChangeUpperAmount\")) + '元');\r\n throw \"error\";\r\n }\r\n }\r\n const v = _trim(that[`inputS${paymode.paymethodId}`]['input']['input'].getAttribute('value'))\r\n if (v !== '') {\r\n modal.destroy()\r\n setTimeout(() => {\r\n if (paymode.paymentType == PayStyle.xianjin) {\r\n that.store.changeValue(paymode.paymethodId, v, false);\r\n } else {\r\n paymode.authCode = v;\r\n }\r\n resolve();\r\n }, 100)\r\n } else {\r\n if (paymode.paymentType == PayStyle.xianjin){\r\n Message.error('请输入付款金额');\r\n } else {\r\n Message.error('请录入或扫描付款码');\r\n }\r\n throw \"error\";\r\n }\r\n },\r\n isCancelFun: () => {\r\n const { prototypeVisible, protytypeCount } = that.state;\r\n if (protytypeCount === 1) {\r\n that.setState({\r\n protytypeCount: 0\r\n })\r\n // setTimeout(() => {\r\n // that[`inputS${paymode.paymethodId}`].input.input.focus();\r\n // }, 535)\r\n }\r\n return prototypeVisible || protytypeCount;\r\n },\r\n onPressEsc: () => {\r\n Keyboard.close();\r\n that.store.bquick && that.props.onCancelSettle && that.props.onCancelSettle();\r\n reject(`支付方式: ${paymode.name}失败`)\r\n },\r\n maskClosable: false,\r\n keyboard: false,\r\n closable: false,\r\n backdropStyle: {\r\n 'z-index': '1004'\r\n },\r\n width: 440,\r\n content: (\r\n <div className=\"scanInput\">\r\n <div className={classnames({ \"icon primary-color\": true, [\"color\" + paymode.paymentType]: true })}><Ticon type={PayIcon2[paymode.paymentType]} /></div>\r\n <div className=\"title\">{paymode.name}</div>\r\n <div>\r\n <span className=\"label\">应收金额:</span><span className=\"yfje\">\r\n {paymode.value}\r\n {DistributionMode && (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && BuyerPayFreight && BuyerPayFreight > 0 ? <span className=\"freight\">(包含{BuyerPayFreight}元运费)</span> : null}\r\n </span>\r\n </div>\r\n {\r\n (paymode.paymentType == PayStyle.xianjin) &&\r\n <div className='contentzf'>\r\n <span className=\"contentlabel\">{paymode.name}支付:</span>\r\n <span>\r\n <NumKeyboard\r\n id='paymentAmount'\r\n className=\"content\"\r\n type='text'\r\n placeholder='请输入付款金额'\r\n disabled={paymode.value < 0}\r\n defaultValue={that.getXianjinPayment(paymode.paymentType, paymode.value)}\r\n onChange={(value) => { that.xianjinChange(paymode.paymethodId, value, paymode.value); }}\r\n ref={input => that[`inputS${paymode.paymethodId}`] = input}\r\n onBlur={(e) => {\r\n const inputTarget = that[`inputS${paymode.paymethodId}`].input.input;\r\n if (that.state.isManualIntoAmount === \"1\" && paymode.paymentType === PayStyle.xianjin && inputTarget.value === \"\") {\r\n return;\r\n }\r\n inputTarget.value = getFixedNumber(inputTarget.value)\r\n }}\r\n />\r\n </span>\r\n </div>\r\n }\r\n {\r\n (paymode.paymentType == PayStyle.xianjin) &&\r\n <div className=\"zlje\">\r\n <span className=\"label\">找零金额:</span>\r\n <span className=\"yfje\" ref={input => that[`inputS${paymode.paymethodId}2`] = input}>{that.getXianjinBalance(paymode.paymentType, paymode.value)}</span>\r\n </div>\r\n }\r\n {\r\n !isReturn && type !==1 &&\r\n <div className=\"zlje prototype\">\r\n <span className=\"label\">优惠明细:</span>\r\n <span className=\"yfje economize\">省¥{discountPrototypeTotalAmount}</span>\r\n <span onClick={that.prototypeDetailedClick} className='prototypeDetailed primary-color'>优惠明细<Ticon type='you2'/></span>\r\n </div>\r\n }\r\n {\r\n (paymode.paymentType == PayStyle.wx || paymode.paymentType == PayStyle.zfb || paymode.paymentType == PayStyle.smzf || paymode.paymentType == PayStyle.SQBPAY || paymode.paymentType == PayStyle.CSYH) &&\r\n <div className='contentzf'>\r\n <span className=\"contentlabel\">{paymode.name}支付:</span>\r\n <span>\r\n <NumKeyboardScan\r\n className=\"content \"\r\n type='text'\r\n placeholder=\"扫描或输入付款码\"\r\n ref={input => that[`inputS${paymode.paymethodId}`] = input} />\r\n </span>\r\n {\r\n that.isHorizontalPad &&\r\n <span className='contentscan'>\r\n <Ticon type='saomiao1' className='icon' onClick={that.changeScanProduct} />\r\n <Scan ref={scan => that.scanObj = scan} onChange={value => that.onScanResult(value, modal, `inputS${paymode.paymethodId}`)} />\r\n </span>\r\n }\r\n </div>\r\n }\r\n <div className={classnames({ \"buttonRegion\": true, \"buttonRegion2\": paymode.paymentType == PayStyle.xianjin })}>\r\n <div className=\"fr\">\r\n <Button\r\n onClick={() => {\r\n modal.destroy()\r\n that.setState({\r\n settleDisabled: false\r\n })\r\n that.store.bquick && that.props.onCancelSettle && that.props.onCancelSettle();\r\n that.store.bquick && that.store.delPay(paymode.paymethodId, !isQuickPay ? 'bookPay':'');\r\n reject(`支付方式: ${paymode.name}失败`)\r\n }}>取消</Button>\r\n <Button\r\n type=\"primary\"\r\n onClick={() => {\r\n if (paymode.paymentType == PayStyle.xianjin) {\r\n let zl = parseFloat(that[`inputS${paymode.paymethodId}2`].innerHTML);\r\n if (zl < 0) {\r\n if (that[`inputS${paymode.paymethodId}`].input.input.value === '') {\r\n Message.error('请输入付款金额');\r\n } else {\r\n Message.error('支付金额不能小于应收金额');\r\n }\r\n return;\r\n } else if (zl > that.props.initData(\"posChangeUpperAmount\")) {\r\n Message.error('找零不能超过最大找零金额:' + getFixedNumber(that.props.initData(\"posChangeUpperAmount\")) + '元');\r\n return;\r\n }\r\n }\r\n const v = _trim(that[`inputS${paymode.paymethodId}`]['input']['input'].getAttribute('value'))\r\n\r\n if (v !== '') {\r\n modal.destroy()\r\n setTimeout(() => {\r\n if (paymode.paymentType == PayStyle.xianjin) {\r\n that.store.changeValue(paymode.paymethodId, v, false, 'bookPay');\r\n } else {\r\n paymode.authCode = v;\r\n }\r\n resolve();\r\n }, 100)\r\n } else {\r\n if (paymode.paymentType == PayStyle.xianjin){\r\n Message.error('请输入付款金额');\r\n } else {\r\n Message.error('请录入或扫描付款码');\r\n }\r\n }\r\n }}>确定</Button>\r\n </div>\r\n </div>\r\n </div>),\r\n })\r\n // 扫码框自动聚焦\r\n setTimeout(() => {\r\n // console.log(that[`inputS${paymode.paymethodId}`].input, '-------------------')\r\n that[`inputS${paymode.paymethodId}`].input.input.focus()\r\n }, 350)\r\n })\r\n }\r\n\r\n\r\n checkCurrentModeHaveMutex = (type) => {\r\n let { paymode,newStyle } = this.store;\r\n const { PayStyle } = enumController.getEnumOj();\r\n const payTypeList = [PayStyle.SQBPAY,PayStyle.CSYH,PayStyle.smzf];\r\n const payTypeFilterList = payTypeList.filter( filterType => filterType !== type);\r\n // 主要排查当前的支付方式 是否是包含在互斥的支付方式\r\n if(payTypeFilterList.length === payTypeList.length) return false;\r\n const disableUserMode = _find(paymode.thePaymodes,(mode)=>{\r\n const haveUseTypeList = payTypeFilterList.find(filterType =>{\r\n // 单据模式的情况还有要判断互斥的支付方式是否有值 触屏模式直接判断是否选择了某个支付方式\r\n return filterType == mode.paymentType && (newStyle? mode.value != 0 :true)\r\n });\r\n // 如果查找到互斥目标支付方式并且不是当前支付方式 返回true\r\n if(mode.paymentType !== type && haveUseTypeList && haveUseTypeList.length != 0) return true\r\n })\r\n if(disableUserMode) return true\r\n return false\r\n }\r\n\r\n checkModeDisabled=(type,brefund,boriginReturn)=>{\r\n const { PayStyle } = enumController.getEnumOj();\r\n return (((brefund && (type==PayStyle.wx || type==PayStyle.zfb || type==PayStyle.smzf || type==PayStyle.jfdx || type==PayStyle.djq || type==PayStyle.SQBPAY || type==PayStyle.CSYH))\r\n || (boriginReturn && type==PayStyle.hyczk))\r\n && !(boriginReturn && (type==PayStyle.wx || type==PayStyle.zfb))) || this.checkCurrentModeHaveMutex(type) ;\r\n }\r\n\r\n checkSettleDisabled=(paymode,thePaymodes)=>{\r\n const { PayStyle } = enumController.getEnumOj();\r\n console.log(\"settlement.checkSettleDisabled开始执行,参数:\",{paymode,thePaymodes})\r\n if(paymode.amount==0 && paymode.received==0){\r\n console.log(\"settlement.checkSettleDisabled返回结果:\",false)\r\n return false;\r\n }\r\n if(this.store.brefund){\r\n let result=!(paymode.receivable==0 && thePaymodes.length>0);\r\n console.log(\"settlement.checkSettleDisabled返回结果:\",result)\r\n return result;\r\n }\r\n let xj=_find(thePaymodes,(mode)=>{return mode.paymentType==PayStyle.xianjin});\r\n let enabled=paymode.receivable==0 && thePaymodes.length>0;\r\n if(xj && xj.value!=0){\r\n enabled=paymode.receivable<=0 && thePaymodes.length>0 && (Math.abs(paymode.receivable)<xj.value);\r\n }\r\n console.log(\"settlement.checkSettleDisabled返回结果:\",!enabled);\r\n const { settleDisabled } = this.state;\r\n return !enabled || settleDisabled;\r\n }\r\n\r\n changeDecimalBuZero = (number, bitNum) => {\r\n if (bitNum == 0) return number;\r\n var f_x = parseFloat(number);\r\n if (isNaN(f_x)) {\r\n return '';\r\n }\r\n let newBitNum = Math.pow(10,bitNum)\r\n f_x = Math.round(number * newBitNum) / newBitNum;\r\n let s_x = f_x.toString();\r\n let pos_decimal = s_x.indexOf('.');\r\n if (pos_decimal < 0) {\r\n pos_decimal = s_x.length;\r\n s_x += '.';\r\n }\r\n while (s_x.length <= pos_decimal + bitNum) {\r\n s_x += '0';\r\n }\r\n return s_x;\r\n }\r\n // 单据模式下编辑储值卡\r\n editCzkModal = () => {\r\n const { PayStyle } = enumController.getEnumOj();\r\n _find(this.store.paymode.thePaymodes,(mode)=>{\r\n if (mode.paymentType==PayStyle.hyczk) {\r\n this.store.setCurrentMode(mode.paymethodId)\r\n }\r\n })\r\n\r\n this.setState({\r\n czkVisible: true\r\n })\r\n let { currentMode } = this.store.paymode;\r\n setTimeout(() => {\r\n if(!currentMode.member || !currentMode.member.id){\r\n this.czkInput && this.czkInput.input.focus()\r\n }else{\r\n if(this.inputCzkAmount && this.inputCzkAmount.input){\r\n this.inputCzkAmount.input.focus();\r\n this.inputCzkAmount.input.setSelectionRange(0, this.inputCzkAmount.input.value.length);\r\n }\r\n }\r\n }, 350)\r\n }\r\n\r\n paymodesCarouselList = (params,paymodes,carouselStart,CarouseOut) => {\r\n const CarouselTp = CarouseOut || Carousel\r\n const newParams = CarouseOut?{}:params\r\n const mapList = [];\r\n const { type } = this.props;\r\n paymodes.forEach((item,index)=>{\r\n // 整除则新增轮播页面\r\n if(index % carouselStart === 0){\r\n mapList[Math.floor(index/carouselStart)] = [];\r\n }\r\n mapList[Math.floor(index/carouselStart)].push(item);\r\n })\r\n return <CarouselTp vertical dots='true' touchMove='true' {...newParams}>\r\n {_map(mapList, (modeList, index) => {\r\n return <div>\r\n {\r\n _map(modeList, (mode, modeIndex) => {\r\n return this.renderToolbtn(mode, index*carouselStart+modeIndex, type !== 1 ? 'bookPay' : '')\r\n })\r\n }\r\n </div>\r\n })}\r\n </CarouselTp>\r\n }\r\n\r\n prototypeDetailedClick = () => {\r\n this.handleShowPrototype();\r\n this.setState({\r\n prototypeVisible: true,\r\n isPrototypeClick: true\r\n })\r\n }\r\n\r\n handleprototypeCancel = () => {\r\n this.setState({\r\n prototypeVisible: false,\r\n protytypeCount: 1,\r\n isPrototypeClick: false\r\n })\r\n let that = this;\r\n const { bquick, isPrototypeClick } = this.state;\r\n if (!isPrototypeClick) {\r\n if (bquick) {\r\n setTimeout(() => {\r\n this.payQuick();\r\n }, 100)\r\n } else {\r\n this.payFun();\r\n }\r\n } else {\r\n setTimeout(() => {\r\n let input = document.getElementById('paymentAmount');\r\n input && input.select();\r\n }, 700)\r\n }\r\n }\r\n\r\n couponClick = () => {\r\n this.setState({\r\n couponLight: !this.state.couponLight\r\n })\r\n }\r\n\r\n render() {\r\n const { PayIcon , PayIcon2 , PayStyle , Differentiate} = enumController.getEnumOj();\r\n const { btnDissabled, dataSource, discountTotalAmount,discountRetailTotalAount,discountPrototypeTotalAmount, storageValue, czkValue, newPassConfirm, newPass} = this.state;\r\n\r\n const { isNewRetailBCPos } = platform || {};\r\n let { paymode, brefund,newStyle } = this.store;\r\n let { type, amount, totalVariety, totalQuantity, isReturn, quantityDetail,memberDisabled, noIsMinAmount } = this.props\r\n // 原单退货\r\n let boriginReturn=this.context && this.context.viewModel && this.context.viewModel.data && JSON.getCellValue(this.context.viewModel.data, \"IsOriginalReturn\");\r\n let totalTaxAmount = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.TotalTaxAmount;\r\n\r\n //收订金\r\n let IdbusiType = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.IdbusiType;\r\n let BuyerPayFreight = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.BuyerPayFreight;\r\n let DistributionMode = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.DistributionMode;\r\n if(IdbusiType == 38 && this.isBook && this.percentageWhenBook < 100 && (!DistributionMode.Id || DistributionMode.Id == 'ON_SITE_PICKUP')){\r\n totalTaxAmount = totalTaxAmount * this.percentageWhenBook / 100;\r\n }\r\n\r\n // 单据模式\r\n let thePaymodes=newStyle?_filter(paymode.thePaymodes,(m)=>{\r\n if(IdbusiType == 39){\r\n return !(this.checkModeDisabled(m.paymentType,brefund,boriginReturn)&& parseFloat(m.value)==0) && m.paymentType != PayStyle.hyczk;\r\n }\r\n return !(this.checkModeDisabled(m.paymentType,brefund,boriginReturn)&& parseFloat(m.value)==0);\r\n }):paymode.thePaymodes;\r\n let { paymodes, settle, currentMode } =paymode;\r\n\r\n if (IdbusiType == 39){\r\n totalTaxAmount = stores.drawerStore.thisWaitPaidAmount;\r\n paymodes = _filter(paymodes, mode => { return mode.paymentType != PayStyle.hyczk}); //取货过滤掉储值\r\n }\r\n // 积分兑换 总积分\r\n let ExchangeIntegral = this.context && this.context.viewModel && this.context.viewModel.data.ExchangeIntegral;\r\n\r\n let _hasSMZF = _find(paymodes, (item) => { return item.paymentType === PayStyle.smzf });\r\n\r\n //同时存在微信、支付宝、扫码支付三种方式,在非退货模式下,隐藏微信、支付宝。\r\n if (!isReturn && _hasSMZF) {\r\n paymodes = paymodes.filter((mode)=>{\r\n if (mode.paymentType == PayStyle.wx || mode.paymentType == PayStyle.zfb) return null;\r\n return true;\r\n })\r\n }\r\n\r\n const quickPay =boriginReturn ? [] :\r\n _filter(paymodes, (paymode) =>{\r\n if(IdbusiType == 39){\r\n return paymode.isQuick && paymode.paymentType != PayStyle.hyczk; //取货过滤掉储值\r\n } else {\r\n return paymode.isQuick;\r\n }\r\n });\r\n const productsIsEmpty = (type!=1 && this.context.viewModel.data.RetailDetails.length == 0) || (type==1 && parseFloat(amount || 0) <= 0) || memberDisabled || noIsMinAmount;\r\n const moreToolbtns=[];\r\n const params = {\r\n pagination: {\r\n el: '.swiper-pagination',\r\n },\r\n spaceBetween: 30\r\n }\r\n const carouselStart = 10;\r\n const carouselStart2 = 8;\r\n const currentIndex = this.state.currentIndex;\r\n const hasmember = currentMode && currentMode.member && currentMode.member.id;\r\n let quantity1 = 0, quantity2 = 0, quantity3 = 0, quantity4 = 0;\r\n let sumQuantity = 0;//数量总和的值,包括称重的。\r\n let { buyQuantity = 0, returnQuantity = 0 } = quantityDetail || {};\r\n let quantityPrecision = PosInitData(\"QuantityPrecision\");\r\n quantityPrecision = quantityPrecision ? parseInt(quantityPrecision) : '';\r\n if (this.props.showAmount) {\r\n quantity1 = totalVariety || this.context.viewModel.data.RetailDetails.length;\r\n quantity2 = this.changeDecimalBuZero(totalQuantity, quantityPrecision);\r\n quantity3 = this.changeDecimalBuZero(buyQuantity, quantityPrecision);\r\n quantity4 = this.changeDecimalBuZero(returnQuantity, quantityPrecision);\r\n let sumRetailDetails = this.context && this.context.viewModel && this.context.viewModel.data.RetailDetails;\r\n if (sumRetailDetails && sumRetailDetails.length > 0) {\r\n sumRetailDetails.forEach(v => {\r\n sumQuantity += Math.abs(v.Quantity);\r\n })\r\n }\r\n sumQuantity = this.changeDecimalBuZero(sumQuantity, quantityPrecision);\r\n }\r\n\r\n const themodeHyczk=thePaymodes.filter((mode) => mode.paymentType === PayStyle.hyczk && mode.value !== '0.00');\r\n return (\r\n <div className=\"billingSettlement\" ref={r => this.billingSettlementDocumnet = r}>\r\n {\r\n this.props.MemberPoints ?\r\n (\r\n <div className=\"receivable2\">\r\n <div className=\"text\">本次应收:</div>\r\n <div className={classnames({ \"amount\": true, \"smallfont\": Math.abs(totalTaxAmount) > 100000 })}>{getFixedNumber(totalTaxAmount)}</div>\r\n <div className='total'>{`数量合计${quantity2}`}</div>\r\n <div className='total'>{`积分合计${ExchangeIntegral || 0}`}</div>\r\n </div>\r\n )\r\n :\r\n (\r\n this.props.showAmount &&\r\n <div className=\"receivable\">\r\n <div className='summary'>\r\n <div className=\"text\">本次应收:</div>\r\n <div className={classnames({ \"amount\": true, \"smallfont\": Math.abs(totalTaxAmount) > 100000 })}>{getFixedNumber(totalTaxAmount)}</div>\r\n </div>\r\n {\r\n isReturn === true ?\r\n <div className=\"remark1\">\r\n <span>{`共${quantity1}种`}</span>\r\n <span className='span'>销</span><span>{quantity3}</span><span>件</span>\r\n <span className='span'>退</span><span>{quantity4}</span><span>件</span>\r\n <span className='span'>合计</span><span>{sumQuantity}</span>\r\n </div>\r\n :\r\n <div className=\"remark2\">\r\n <span>{`共${quantity1}种`}</span>\r\n <span className=\"span\">{quantity2}</span><span>件</span>\r\n <span className=\"span\">合计</span><span>{sumQuantity}</span>\r\n </div>\r\n }\r\n </div>\r\n )\r\n }\r\n <div className=\"btns\">\r\n {\r\n !this.isHorizontalPad && !this.props.MemberPoints &&\r\n _map(quickPay, (p, i) => {\r\n let iconclass = PayIcon2[p.paymentType] ? `color${p.paymentType}` : \"primary-color\";\r\n return (\r\n <Button className={classnames({ \"quick\": true, \"quick2\": type==1 })} key={`paymentType_${p.paymentType}`} onClick={() => { this.btnDebounced(p.paymentType, true) }}\r\n disabled={productsIsEmpty || (type!=1 && this.checkModeDisabled(p.paymentType, (this.context.viewModel.data.TotalTaxAmount || 0 - this.context.viewModel.data.OnlinePaymentAmount || 0) < 0, boriginReturn))}>\r\n <div className={classnames({ [iconclass]: true, \"icon\": true })}><Ticon type={PayIcon2[p.paymentType] || PayIcon2['default']} /></div>\r\n <div className=\"text\">{p.name.length > 8 ? _truncate(p.name, { length: 7, omission: '' }) + '...' : p.name}</div>\r\n </Button>)\r\n })\r\n }\r\n <Button key=\"settle\" className={classnames({ \"settle\": true, \"settle2\": type == 1,\"settleStorage\" :true ,'primary-btn': true })} onClick={() => { this.btnDebounced() }} disabled={productsIsEmpty}>{this.props.isMemberPoints ? '立即兑换' : this.props.isMemberPointsReturn ? '退货': settle.name}</Button>\r\n </div>\r\n {type!=1 && !newStyle && <Drawer\r\n title=\"复合结算\"\r\n width=\"600px\"\r\n placement=\"right\"\r\n maskClosable={false}\r\n closable={false}\r\n onClose={this.handleCancel}\r\n visible={this.state.visible}\r\n destroyOnClose={true}\r\n className={`settlement-wraper`}\r\n >\r\n <div className= {`settlement ${hotKey.hotKeyBindClass('5')}`}>\r\n <div className={classnames({ \"toolbar bg-subsidiary-gray-color4\": true, \"carousel\": paymodes.length > carouselStart })}>\r\n {paymodes.length <= carouselStart && <div>{_map(paymodes, (mode, index) => {\r\n return this.renderToolbtn(mode, index, 'bookPay')\r\n })}</div>}\r\n {\r\n paymodes.length > carouselStart && this.paymodesCarouselList(params,paymodes,carouselStart)\r\n }\r\n </div>\r\n <div className=\"paydetail\" style={{maxHeight:(document.body.clientHeight-(paymodes.length>6?275:200))+'px'}}>\r\n <div className=\"left\">\r\n {\r\n thePaymodes.length==0&&<div className=\"emptydata detailempty\">请添加结算方式</div>\r\n }\r\n {\r\n // _map(_sortBy(thePaymodes, pay => pay['order'] || 0), (mode) => {\r\n _map(thePaymodes, (mode) => {\r\n const index=mode.paymethodId\r\n return (<div key={index+''} className=\"modeItem\">\r\n <div className={classnames({\"main\":true,\"focusbottom\":currentIndex==index})}>\r\n <div className={classnames({\"name\":true})}>{mode.name}</div>\r\n <div className={classnames({\"content\":true})}>\r\n {\r\n (mode.paymentType == PayStyle.hyczk || mode.paymentType == PayStyle.jfdx || mode.paymentType == PayStyle.djq) ?\r\n <input id={`inputS${index}`}\r\n className={hotKey.hotKeyNotFilter()}\r\n onClick={() => { this.editModal(index, mode.paymentType, boriginReturn) }} value={getFixedNumber(mode.value)} />\r\n :\r\n <input id={`inputS${index}`}\r\n className={hotKey.hotKeyNotFilter()}\r\n value={mode.exchangeRate != 1 ? mode.value2 : mode.value}\r\n onClick={e => this.onHotKeyClick2(index, mode, paymode, e)}\r\n onBlur={e => this.onBlur(index, e, 'bookPay')}\r\n onFocus={e => this.onFocusHack(index, mode, paymode, e)}\r\n onChange={e => this.handleChange(index, e, 'bookPay')}\r\n />\r\n }\r\n </div>\r\n <span className='minus' onClick={() => {\r\n this.onDelPay(index,boriginReturn && mode.boriginReturn,mode.paymentType, 'bookPay');\r\n }}>\r\n <Ticon type=\"shanchu\" className=\"minusIcon primary-color\"/>\r\n </span>\r\n </div>\r\n {\r\n mode.paymentType==PayStyle.djq?\r\n <div className=\"append\" style={{ display:(mode.paymentType==PayStyle.hyczk || mode.paymentType==PayStyle.djq)?'block':'none'}}>\r\n <span className=\"balance\">溢收金额:</span>\r\n <span>{mode.overchargesAmount}</span>\r\n </div>:\r\n <div className=\"append\" style={{ display:(mode.paymentType==PayStyle.hyczk || mode.paymentType==PayStyle.djq)?'block':'none'}}>\r\n <span className=\"fl\">卡号:</span>\r\n <span className=\"fl\">{mode && mode.storageCardNo}</span>\r\n <br />\r\n <span className=\"balance fl\">余额:</span>\r\n <span className=\"fl\">{ getFixedNumber(mode.balance)}</span>\r\n <br />\r\n {themodeHyczk && themodeHyczk.length && themodeHyczk[themodeHyczk.length -1].paymethodId === mode.paymethodId && !isReturn &&\r\n <Button onClick={() => {\r\n this.appendCzkmode(boriginReturn, 'noPlaySetPwd');\r\n }} className='addCard btn-border-primary'><Ticon type=\"jiahao\" className=\"plus b-theme-color\" />\r\n <span>添加卡</span>\r\n </Button>\r\n }\r\n </div>\r\n }\r\n </div>)\r\n })\r\n }\r\n </div>\r\n <div className=\"right\">\r\n <div className=\"righttop\">\r\n {paymode.onlineamount>0 && <div className=\"receivable\">\r\n <span>线上已收</span>\r\n <span>{paymode.onlineamount}</span>\r\n </div>}\r\n <div className=\"receivable\">\r\n <span>应收金额</span>\r\n <span>{paymode.amount}</span>\r\n </div>\r\n <div className=\"receivable\">\r\n <span>剩余应收</span>\r\n <span>{paymode.receivable}</span>\r\n </div>\r\n <div className=\"receivable\">\r\n <span>实收金额</span>\r\n <span className=\"received\">{paymode.received}</span>\r\n </div>\r\n <div className=\"receivable\" style={{display:this.checkCharge()?'block':'none'}}>\r\n <span>找零金额</span>\r\n <span className=\"received\">{getFixedNumber(Math.abs(paymode.receivable))}</span>\r\n </div>\r\n <div className=\"receivable\" style={{display: (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && BuyerPayFreight && BuyerPayFreight >0 ?'block':'none'}}>\r\n <span>运费</span>\r\n <span className=\"received\">{getFixedNumber(Math.abs(BuyerPayFreight))}</span>\r\n </div>\r\n </div>\r\n {\r\n !isReturn && <div onClick={this.prototypeDetailedClick} className='prototypeDetailed primary-color'>优惠明细<Ticon type='shouqi1'/></div>\r\n }\r\n <div className={this.isHorizontalPad ? 'keyboard_ios' : 'keyboard'}>\r\n {\r\n !this.isHorizontalPad &&\r\n <Keyboard type=\"number\" onChange={this.onKeyboardChange.bind(this)}></Keyboard>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"payfooter\">\r\n <span className=\"hotKeyEnter\" onClick={this.onHotKeyEnter}></span>\r\n <span><Button className=\"cancel\" onClick={this.handleCancel}>取消</Button></span>\r\n <span><Button type=\"primary\" className={this.isHorizontalPad ? \"settle1\" : \"settle\"} onClick={this.handleSettle}\r\n disabled={this.checkSettleDisabled(paymode, thePaymodes)}>结算</Button></span>\r\n </div>\r\n </div>\r\n </Drawer>}\r\n {type!=1 && newStyle && <Drawer\r\n title=\"复合结算\"\r\n width=\"600px\"\r\n placement=\"right\"\r\n maskClosable={false}\r\n closable={false}\r\n onClose={this.handleCancel}\r\n visible={this.state.visible}\r\n destroyOnClose={true}\r\n className={`settlement-wraper`}\r\n >\r\n <div className= {`settlement ${hotKey.hotKeyBindClass('5')}`}>\r\n <div className=\"paydetail newstyle\">\r\n <div className=\"top\">\r\n <div className=\"righttop\">\r\n {paymode.onlineamount>0 && <div className=\"receivable\">\r\n <span>线上已收</span>\r\n <span>{paymode.onlineamount}</span>\r\n </div>}\r\n <div className=\"receivable\">\r\n <span>应收金额</span>\r\n <span>{paymode.amount}</span>\r\n </div>\r\n <div className=\"receivable\">\r\n <span>剩余应收</span>\r\n <span>{paymode.receivable}</span>\r\n </div>\r\n <div className=\"receivable\">\r\n <span>实收金额</span>\r\n <span className=\"received\">{paymode.received}</span>\r\n </div>\r\n <div className=\"receivable\" style={{display:this.checkCharge()?'block':'none'}}>\r\n <span>找零金额</span>\r\n <span className=\"received\">{getFixedNumber(Math.abs(paymode.receivable))}</span>\r\n </div>\r\n <div className=\"receivable\" style={{display: (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && BuyerPayFreight && BuyerPayFreight >0 ?'block':'none'}}>\r\n <span>运费</span>\r\n <span className=\"received\">{getFixedNumber(Math.abs(BuyerPayFreight))}</span>\r\n </div>\r\n </div>\r\n {\r\n !isReturn && <div onClick={this.prototypeDetailedClick} className='prototypeDetailed primary-color'>优惠明细<Ticon type='shouqi1'/></div>\r\n }\r\n </div>\r\n <div className=\"bottom\">\r\n {\r\n thePaymodes.length==0&&<div className=\"emptydata detailempty\">请添加结算方式</div>\r\n }\r\n {\r\n _map(thePaymodes, (mode, mindex) => {\r\n let { isReturn } = this.props;\r\n let hasSMZF = _find(thePaymodes, m => { return m.paymentType === PayStyle.smzf});\r\n //同时存在微信、支付宝(或者收钱吧)、扫码支付三种方式,在非退货模式下,隐藏微信、支付宝。\r\n let hotkeyIndex = index;\r\n if (!isReturn && hasSMZF) {\r\n if (mode.paymentType == PayStyle.wx || mode.paymentType == PayStyle.zfb) {\r\n return null;\r\n } else {\r\n let theArr = _filter(paymode.paymodes, t => { return t.paymentType != PayStyle.wx && t.paymentType != PayStyle.zfb })\r\n hotkeyIndex = _findIndex(theArr, m => { return m.paymentType == mode.paymentType })\r\n }\r\n }\r\n const index = mode.paymethodId;\r\n return (mode.paymentType == PayStyle.hyczk && _findIndex(thePaymodes, (m) => { return m.paymentType == PayStyle.hyczk; }) != mindex ? <div></div> :\r\n <div key={index + ''} className=\"modeItem\">\r\n <div className={classnames({\"main\":true,\"focusbottom\":currentIndex==index})}>\r\n <div className={classnames({ \"name\": true})}>\r\n <div className=\"icon\"><Ticon type={PayIcon[mode.paymentType] || PayIcon['default']} /></div>\r\n <div className=\"text\">{mode.name}</div>\r\n <div className=\"hotkey\">{this.isHorizontalPad ? '' : this.compoundHotkeysList[hotkeyIndex] || ''}</div>\r\n </div>\r\n <div className={classnames({ \"content\": true})}>\r\n {\r\n (mode.paymentType == PayStyle.hyczk || mode.paymentType == PayStyle.jfdx || mode.paymentType == PayStyle.djq)\r\n ?\r\n <input id={`inputS${index}`}\r\n\r\n className={hotKey.hotKeyNotFilter(\"paymode hotkey_\" + this.compoundHotkeysList[hotkeyIndex])}\r\n disabled={this.checkModeDisabled(mode.paymentType, brefund, boriginReturn)}\r\n onClick={() => {\r\n // let czkinput = document.getElementById('inputS' + index);\r\n // if (mode.paymentType === PayStyle.hyczk) {\r\n // const { isProhibitMeStorageCard } = this.props;\r\n // if (isProhibitMeStorageCard) {\r\n // Message.warn('储值卡不可键盘录入,请刷卡!');\r\n // return;\r\n // }\r\n // }\r\n // mode.paymentType == PayStyle.hyczk && czkinput && czkinput.value !== '0.00' ? this.editCzkModal() :\r\n if (mode.paymentType == PayStyle.hyczk) {\r\n if (themodeHyczk && themodeHyczk.length === 0) {\r\n this.onHotKeyClick1(mode, index, boriginReturn);\r\n }\r\n } else {\r\n this.onHotKeyClick1(mode, index, boriginReturn, 'bookPay');\r\n }\r\n }}\r\n value={mode.paymentType == PayStyle.hyczk ? getFixedNumber(\r\n _reduce(_filter(thePaymodes, (tm) => { return tm.paymentType == PayStyle.hyczk }), function (sum, m) {\r\n return Math.Add(sum, m.value);\r\n }, 0)\r\n ) : getFixedNumber(mode.value)} />\r\n :\r\n <input id={`inputS${index}`}\r\n className={hotKey.hotKeyNotFilter(\"paymode hotkey_\" + this.compoundHotkeysList[hotkeyIndex])}\r\n disabled={this.checkModeDisabled(mode.paymentType, brefund, boriginReturn) || this.checkScanDisabled(mode.paymentType)}\r\n value={mode.exchangeRate != 1 ? mode.value2 : mode.value}\r\n onClick={e => this.onHotKeyClick2(index, mode, paymode, e, 'bookPay')}\r\n onBlur={e => this.onBlur(index, e, 'bookPay')}\r\n onFocus={e => this.onFocusHack(index, mode, paymode, e)}\r\n onChange={e => this.handleChange(index, e, 'bookPay')}\r\n />\r\n }\r\n </div>\r\n </div>\r\n {mode.paymentType == PayStyle.djq && <div className=\"append\" >\r\n <span className=\"balance\">溢收金额:</span>\r\n <span>{mode.overchargesAmount}</span>\r\n </div>}\r\n {_map(_filter(thePaymodes, (tm) => { return mode.paymentType == PayStyle.hyczk && parseFloat(tm.value || 0) != 0 && tm.paymentType == PayStyle.hyczk }), (m) => {\r\n return <div className=\"append\">\r\n <span >卡号:</span>\r\n <span >{m && m.storageCardNo}</span>\r\n <span className=\"fr\">{getFixedNumber(m.value)}</span>\r\n <span className=\"balance fr\">支付金额:</span>\r\n <br />\r\n {themodeHyczk && themodeHyczk.length && themodeHyczk[themodeHyczk.length -1].paymethodId === m.paymethodId &&\r\n <Button onClick={() => this.onHotKeyClick1(mode, index, boriginReturn)} className='addCard btn-border-primary'><Ticon type=\"jiahao\" className=\"plus b-theme-color\" />\r\n <span>添加卡</span>\r\n </Button>\r\n }\r\n </div>\r\n })}\r\n </div>)\r\n })\r\n }\r\n </div>\r\n </div>\r\n <div className=\"payfooter\">\r\n <span className=\"hotKeyEnter\" onClick={this.onHotKeyEnter}></span>\r\n <span><Button className=\"cancel\" onClick={this.handleCancel}>取消</Button></span>\r\n <span><Button type=\"primary\" className={this.isHorizontalPad ? \"settle1\" : \"settle\"} onClick={this.handleSettle}\r\n disabled={this.checkSettleDisabled(paymode, thePaymodes)}>结算</Button></span>\r\n </div>\r\n </div>\r\n </Drawer>}\r\n {\r\n type==1 && !newStyle &&\r\n <Modal\r\n wrapClassName={`settlement-wraper2`}\r\n width=\"600px\"\r\n visible={this.state.visible}\r\n maskClosable={false}\r\n title={\"复合结算\"}\r\n footer={null}\r\n maskStyle={{'z-index': '1004'}}\r\n onCancel={this.handleCancel}\r\n destroyOnClose={true}\r\n >\r\n <div className= {`settlement ${hotKey.hotKeyBindClass('5')}`}>\r\n <div className='settlementTop'>\r\n <div className={classnames({ \"toolbar\": true, \"toolbar2\": type==1, \"carousel\": paymodes.length > carouselStart2 })}>\r\n {\r\n paymodes.length <= carouselStart2 &&\r\n <div>\r\n {\r\n _map(paymodes, (mode, index) => {\r\n return this.renderToolbtn(mode, index)\r\n })\r\n }\r\n </div>\r\n }\r\n {\r\n paymodes.length > carouselStart2 && this.paymodesCarouselList(params,paymodes,carouselStart2)\r\n }\r\n </div>\r\n <div className=\"rightheader\">\r\n {\r\n paymode.onlineamount > 0 && <div className=\"receivable\">\r\n <span>线上已收</span>\r\n <span>{paymode.onlineamount}</span>\r\n </div>\r\n }\r\n <div className=\"receivable\">\r\n <span>应收金额</span>\r\n <span>{paymode.amount}</span>\r\n </div>\r\n <div className=\"receivable\">\r\n <span>剩余应收</span>\r\n <span>{paymode.receivable}</span>\r\n </div>\r\n <div className=\"receivable\">\r\n <span>实收金额</span>\r\n <span className=\"received\">{paymode.received}</span>\r\n </div>\r\n <div className=\"receivable\" style={{ display: this.checkCharge() ? 'block' : 'none' }}>\r\n <span>找零金额</span>\r\n <span className=\"received\">{getFixedNumber(Math.abs(paymode.receivable))}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"paydetail\">\r\n <div className=\"left\">\r\n {\r\n thePaymodes.length == 0 && <div className=\"emptydata detailempty2\">请添加结算方式</div>\r\n }\r\n {\r\n // _map(_sortBy(thePaymodes, pay => pay['order'] || 0), (mode) => {\r\n _map(thePaymodes, (mode) => {\r\n const index = mode.paymethodId\r\n return (<div key={index + ''} className=\"modeItem\">\r\n <div className={`main b-theme-color ${currentIndex == index && 'settlement-pay-item-border'}`}>\r\n <div className={classnames({ \"name\": true})}>{mode.name}</div>\r\n <div className={classnames({ \"content\": true})}>\r\n {\r\n (mode.paymentType == PayStyle.hyczk || mode.paymentType == PayStyle.jfdx || mode.paymentType == PayStyle.djq) ?\r\n <input id={`inputS${index}`}\r\n onClick={() => { this.editModal(index, mode.paymentType) }} value={getFixedNumber(mode.value)} />\r\n : <input id={`inputS${index}`}\r\n value={mode.exchangeRate != 1 ? mode.value2 : mode.value}\r\n onBlur={e => this.onBlur(index, e)}\r\n onChange={e => this.handleChange(index, e)}\r\n onFocus={e => this.onFocusHack(index, mode, paymode, e)}\r\n />\r\n }\r\n </div>\r\n <div className=\"minus\" onClick={() => {\r\n this.onDelPay(index);\r\n }}><Ticon type=\"shanchu\" className=\"minusIcon primary-color\"/></div>\r\n </div>\r\n {\r\n mode.paymentType == PayStyle.djq ?\r\n <div className=\"append\" style={{ display: (mode.paymentType == PayStyle.hyczk || mode.paymentType == PayStyle.djq) ? 'block' : 'none' }}>\r\n <span className=\"balance\">溢收金额:</span>\r\n <span>{mode.overchargesAmount}</span>\r\n </div> :\r\n <div className=\"append\" style={{ display: (mode.paymentType == PayStyle.hyczk || mode.paymentType == PayStyle.djq) ? 'block' : 'none' }}>\r\n <span className=\"fl\">卡号:</span>\r\n <span className=\"fl\">{mode && mode.storageCardNo}</span>\r\n <br />\r\n <span className=\"balance fl\">余额:</span>\r\n <span className=\"fl\">{getFixedNumber(mode.balance)}</span>\r\n </div>\r\n }\r\n </div>)\r\n })\r\n }\r\n </div>\r\n <div className=\"right\">\r\n <div className={this.isHorizontalPad ? 'keyboard_ios' : 'keyboard'}>\r\n {\r\n !this.isHorizontalPad &&\r\n <Keyboard type=\"number\" onChange={this.onKeyboardChange.bind(this)}></Keyboard>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"payfooter2\">\r\n <span className=\"hotKeyEnter\" onClick={this.onHotKeyEnter}></span>\r\n <span><Button className=\"cancel\" onClick={this.handleCancel}>取消</Button></span>\r\n <span><Button type=\"primary\" className=\"settle\" onClick={this.handleSettle}\r\n disabled={this.checkSettleDisabled(paymode, thePaymodes)}>结算</Button></span>\r\n </div>\r\n </div>\r\n </Modal>\r\n }\r\n {\r\n type==1 && newStyle &&\r\n <Modal\r\n wrapClassName={`settlement-wraper2`}\r\n width=\"600px\"\r\n visible={this.state.visible}\r\n maskClosable={false}\r\n title={\"复合结算\"}\r\n footer={null}\r\n backdropStyle={{'z-index': '1004'}}\r\n onCancel={this.handleCancel}\r\n destroyOnClose={true}\r\n >\r\n <div className= {`settlement ${hotKey.hotKeyBindClass('5')}`}>\r\n <div className=\"paydetail newstyle newstyle2\">\r\n <div className=\"top\">\r\n <div className=\"righttop\">\r\n {paymode.onlineamount>0 && <div className=\"receivable\">\r\n <span>线上已收</span>\r\n <span>{paymode.onlineamount}</span>\r\n </div>}\r\n <div className=\"receivable\">\r\n <span>应收金额</span>\r\n <span>{paymode.amount}</span>\r\n </div>\r\n <div className=\"receivable\">\r\n <span>剩余应收</span>\r\n <span>{paymode.receivable}</span>\r\n </div>\r\n <div className=\"receivable\">\r\n <span>实收金额</span>\r\n <span className=\"received\">{paymode.received}</span>\r\n </div>\r\n <div className=\"receivable\" style={{display:this.checkCharge()?'block':'none'}}>\r\n <span>找零金额</span>\r\n <span className=\"received\">{getFixedNumber(Math.abs(paymode.receivable))}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"bottom\">\r\n {\r\n thePaymodes.length==0&&<div className=\"emptydata detailempty\">请添加结算方式</div>\r\n }\r\n {\r\n // _map(_sortBy(thePaymodes, pay => pay['order'] || 0), (mode) => {\r\n _map(thePaymodes, (mode,mindex) => {\r\n let { isReturn } = this.props;\r\n let hasSMZF = _find(thePaymodes, m => { return m.paymentType === PayStyle.smzf });\r\n let hotkeyIndex = mindex;\r\n //同时存在微信、支付宝、扫码支付三种方式,在非退货模式下,隐藏微信、支付宝。\r\n if (!isReturn && hasSMZF) {\r\n if (mode.paymentType == PayStyle.wx || mode.paymentType == PayStyle.zfb) {\r\n return null;\r\n } else {\r\n let theArr = _filter(thePaymodes, t => { return t.paymentType != PayStyle.wx && t.paymentType != PayStyle.zfb })\r\n hotkeyIndex = _findIndex(theArr, m => { return m.paymentType == mode.paymentType })\r\n }\r\n }\r\n const index=mode.paymethodId\r\n return (mode.paymentType==PayStyle.hyczk && _findIndex(thePaymodes,(m)=>{return m.paymentType==PayStyle.hyczk;})!=mindex ? <div></div> :\r\n <div key={index+''} className=\"modeItem\">\r\n <div className={classnames({\"main\":true,\"focusbottom\":currentIndex==index})}>\r\n <div className={classnames({\"name\":true})}>\r\n <div className=\"icon\"><Ticon type={PayIcon[mode.paymentType]||PayIcon['default']}/></div>\r\n <div className=\"text\">{mode.name}</div>\r\n <div className=\"hotkey\">{this.isHorizontalPad? '' : this.compoundHotkeysList[mindex] || \"\"}</div>\r\n </div>\r\n <div className={classnames({\"content\":true})}>\r\n {\r\n (mode.paymentType == PayStyle.hyczk || mode.paymentType == PayStyle.jfdx || mode.paymentType == PayStyle.djq) ?\r\n <input id={`inputS${index}`}\r\n // className={classnames({'paymode':mode.paymentType == PayStyle.hyczk?(_findIndex(thePaymodes,(m)=>{return m.paymentType==PayStyle.hyczk;})==mindex?true:false):true})}\r\n className={hotKey.hotKeyNotFilter(\"paymode hotkey_\" + this.compoundHotkeysList[hotkeyIndex])}\r\n // className=\"paymode\"\r\n disabled={this.checkModeDisabled(mode.paymentType,brefund,boriginReturn)}\r\n onClick={() => {\r\n this.onHotKeyClick1(mode,index,boriginReturn);\r\n }}\r\n value={mode.paymentType==PayStyle.hyczk?getFixedNumber(\r\n _reduce(_filter(thePaymodes,(tm)=>{return tm.paymentType==PayStyle.hyczk}), function(sum, m) {\r\n return Math.Add(sum,m.value);\r\n }, 0)\r\n ):getFixedNumber(mode.value)} />\r\n :\r\n <input id={`inputS${index}`}\r\n className={hotKey.hotKeyNotFilter(\"paymode hotkey_\" + this.compoundHotkeysList[hotkeyIndex])}\r\n // className=\"paymode\"\r\n disabled={this.checkModeDisabled(mode.paymentType,brefund,boriginReturn) || this.checkScanDisabled(mode.paymentType)}\r\n value={mode.exchangeRate != 1 ? mode.value2 : mode.value}\r\n onClick={e => this.onHotKeyClick2(index, mode, paymode, e)}\r\n onBlur={e => this.onBlur(index, e)}\r\n onFocus={e => this.onFocusHack(index, mode, paymode, e)}\r\n onChange={e => this.handleChange(index, e)}\r\n />\r\n }\r\n </div>\r\n {/* <div className=\"righticon\" style={{ display:mode.paymentType==PayStyle.hyczk?'inline-block':'none'}}\r\n onClick={() => {\r\n this.appendCzkmode(boriginReturn);\r\n }}><Ticon type=\"zengjia\" className=\"plus\" /></div> */}\r\n </div>\r\n {mode.paymentType==PayStyle.djq && <div className=\"append\" >\r\n <span className=\"balance\">溢收金额:</span>\r\n <span>{mode.overchargesAmount}</span>\r\n </div>}\r\n {_map(_filter(thePaymodes,(tm)=>{return mode.paymentType==PayStyle.hyczk && parseFloat(tm.value||0)!=0 && tm.paymentType==PayStyle.hyczk}),(m)=>{\r\n return <div className=\"append\">\r\n <span >卡号:</span>\r\n <span >{m.member && m.member.cardNo}</span>\r\n <span className=\"fr\">{ getFixedNumber(m.value)}</span>\r\n <span className=\"balance fr\">支付金额:</span>\r\n </div>\r\n })}\r\n </div>)\r\n })\r\n }\r\n </div>\r\n </div>\r\n <div className=\"payfooter2\">\r\n <span className=\"hotKeyEnter\" onClick={this.onHotKeyEnter}></span>\r\n <span><Button className=\"cancel\" onClick={this.handleCancel}>取消</Button></span>\r\n <span><Button type=\"primary\" className=\"settle\" onClick={this.handleSettle}\r\n disabled={this.checkSettleDisabled(paymode, thePaymodes)}>结算</Button></span>\r\n </div>\r\n </div>\r\n </Modal>\r\n }\r\n <Modal\r\n wrapClassName={`czk ${this.isHorizontalPad ? 'extraHeight' : ''}`}\r\n width=\"400px\"\r\n visible={this.state.czkVisible}\r\n maskClosable={false}\r\n destroyOnClose={true}\r\n title={\"储值结算\"}\r\n onCancel={this.handleCzkCancel}\r\n keyboard={false}\r\n centered={ !this.isHorizontalPad ? true : false}\r\n footer={<div className=\"action\">\r\n <Button onClick={this.handleCzkCancel}>取消</Button>\r\n <Button type=\"primary\" disabled={currentMode && currentMode.errinfo!=''} onClick={this.handleCzkOk}>确定</Button>\r\n </div>}\r\n >\r\n <div>\r\n <div className=\"info\">\r\n {hasmember && <div className={classnames({\"type\":true,'colwidth3':hasmember})}>\r\n <div className=\"value valuetext\">{(currentMode && currentMode.member && currentMode.member.type) || '普通'}</div>\r\n <div className=\"name\">类型</div>\r\n </div>}\r\n <div className=\"gap\">\r\n <div className=\"gap1\"></div>\r\n <div className=\"gap2\"></div>\r\n <div className=\"gap1\"></div>\r\n </div>\r\n <div className={classnames({\"balance\":true,'colwidth2':!hasmember,'colwidth3':hasmember})}>\r\n <div className=\"value\">{currentMode && getFixedNumber(currentMode.balance)}</div>\r\n <div className=\"name\">可用余额</div>\r\n </div>\r\n <div className=\"gap\">\r\n <div className=\"gap1\"></div>\r\n <div className=\"gap2\"></div>\r\n <div className=\"gap1\"></div>\r\n </div>\r\n <div className={classnames({\"available\":true,'colwidth2':!hasmember,'colwidth3':hasmember})}>\r\n <div className=\"value\">{currentMode && getFixedNumber(Math.max(0,Math.min(currentMode.maxamount,currentMode.balance)))}</div>\r\n <div className=\"name\">本单可用</div>\r\n </div>\r\n </div>\r\n <div className=\"no\">\r\n <span>储值卡号:</span>\r\n <span>\r\n {/* <input value={currentMode && currentMode.member.cardNo} ref={input => this['inputczk'] =input } onKeyDown={e=>{if(e.keyCode==13){this.loadCzk(e.target.value);}}}></input> */}\r\n <Input\r\n type='text'\r\n placeholder=\"请扫描或输入手机号/储值卡号\"\r\n className={`input ${(this.hasElectron === true && this.iCCardServer === 1 || this.isHorizontalPad === true) ? 'temp' : ''}`}\r\n onChange={(e) => this.onCzkChange(e.target.value)}\r\n defaultValue={currentMode && currentMode.storageCardNo}\r\n value={czkValue}\r\n ref={input => this.czkInput =input}\r\n onKeyDown={\r\n async (e)=>{\r\n if(e.keyCode==13){\r\n let time = Date.parse(new Date());\r\n if (this.isStorageCardInputType && (time - this.keypressStime > 350)) {\r\n Message.warn('储值卡不可键盘录入,请刷卡!');\r\n this.keypressStime = null;\r\n this.setState({\r\n czkValue: null\r\n })\r\n return;\r\n }\r\n this.keypressStime = null;\r\n await this.loadCzk(e.target.value);\r\n const {paymode} = this.store;\r\n if (!paymode.currentMode.storageCardNo) {\r\n this.setState({\r\n czkvalue: null\r\n })\r\n }\r\n } else if (!this.keypressStime && e.keyCode !== 8) {\r\n this.keypressStime = Date.parse(new Date());\r\n }\r\n }\r\n }\r\n onFocus={(e)=>{\r\n this.inputTarget = this.czkInput.input;\r\n !this.state.prototypeVisible && Keyboard.open((v)=>{\r\n const value = Keyboard.getNewValue(this.inputTarget, this.inputTarget.value, v);\r\n this.onCzkChange(value);\r\n }, this.czkKeyboardOnOk, this.czkKeyboardOnClose)()\r\n }\r\n }\r\n onBlur={(e)=>{\r\n Keyboard.close();\r\n }}\r\n />\r\n </span>\r\n {\r\n this.hasElectron === true && this.iCCardServer === 1 &&\r\n <Ticon className='icon' onClick={this.handleReadICard} type=\"ICka\" />\r\n }\r\n {\r\n this.isHorizontalPad &&\r\n <Ticon type='saomiao1' className='icon' onClick={this.changeScanProduct} />\r\n }\r\n {\r\n /* 扫描组件 */\r\n this.isHorizontalPad &&\r\n <Scan ref={scan => this.scanObj = scan} onChange={this.onScanCzkResult} />\r\n }\r\n </div>\r\n <div className=\"receivable\">\r\n <span>剩余应收:</span>\r\n <span>{paymode.receivable}</span>\r\n </div>\r\n {/* <div className=\"receivable\">\r\n <span>限收金额:</span>\r\n <span>{currentMode && getFixedNumber(currentMode.maxamount)}</span>\r\n </div> */}\r\n <div className=\"received receivedNumber\">\r\n <span>实收金额:</span>\r\n <span>\r\n {/* <NumKeyboard\r\n id='paymentAmount'\r\n className={`${hotKey.hotKeyNotFilter('input')} receivedInput`}\r\n type='text'\r\n style={{ width: 230}}\r\n onChange={(value)=>{this.setCurrentModeValue(value,Math.min(currentMode.maxamount,currentMode.member.balance))}}\r\n defaultValue={currentMode && getFixedNumber(brefund?currentMode.value:Math.min(currentMode.value,currentMode.maxamount,currentMode.member.balance))}\r\n maxLength={12}\r\n precisionLength={2}\r\n ref={input => this.inputCzkAmount = input}\r\n onFocus={(e)=>{\r\n this.inputkey=\"inputCzkAmount\";\r\n Keyboard.open((v)=>{\r\n const value = Keyboard.getNewValue(this[this.inputkey].input, this[this.inputkey].input.value, v);\r\n this.setCurrentModeValue(value,Math.min(currentMode.maxamount,currentMode.member.balance));\r\n }, this.keyboardOnOk, this.keyboardOnClose)()\r\n }\r\n }\r\n onBlur={(e)=>{\r\n Keyboard.close();\r\n this.setCurrentModeValue(getFixedNumber(this.inputCzkAmount.input.value),Math.min(currentMode.maxamount,currentMode.member.balance));\r\n }}\r\n /> */}\r\n <Input\r\n id='paymentAmount'\r\n type='text'\r\n className={hotKey.hotKeyNotFilter('input')}\r\n value={storageValue}\r\n onChange={(event)=>{this.setCurrentModeValue(event.target.value,Math.min(currentMode.maxamount,currentMode.balance))}}\r\n defaultValue={currentMode && getFixedNumber(brefund?currentMode.value:Math.min(currentMode.value,currentMode.maxamount,currentMode.balance))}\r\n ref={ref => this[\"inputCzkAmount\"] = ref}\r\n onFocus={(e)=>{\r\n this.inputkey=\"inputCzkAmount\";\r\n Keyboard.open((v)=>{\r\n const value = Keyboard.getNewValue(this[this.inputkey].input, this[this.inputkey].input.value, v);\r\n this.setCurrentModeValue(value,Math.min(currentMode.maxamount,currentMode.balance));\r\n }, this.keyboardOnOk, this.keyboardOnClose)()\r\n }\r\n }\r\n onBlur={(e)=>{\r\n Keyboard.close();\r\n this.setCurrentModeValue(getFixedNumber(this.inputCzkAmount.input.value),Math.min(currentMode.maxamount,currentMode.balance));\r\n }}\r\n />\r\n </span>\r\n </div>\r\n {\r\n !isReturn && <div className=\"received\">\r\n <span className=\"label\">优惠明细:</span>\r\n <span className=\"yfje economize\">省¥{discountPrototypeTotalAmount}</span>\r\n <span onClick={this.prototypeDetailedClick} className='prototypeDetailed primary-color'>优惠明细<Ticon type='you2'/></span>\r\n </div>\r\n }\r\n <div className=\"error\">{currentMode && currentMode.errinfo}</div>\r\n {(!this.store.member || !this.store.member.ID) && <div className=\"tipStype\">在此处录入会员不会享有折扣、会员价等优惠,若需要优惠请返回至开单界面录入会员!</div>}\r\n </div>\r\n </Modal>\r\n <Modal\r\n wrapClassName={`${hotKey.hotKeyBindClass('5', 'moreCzkModal')} ${this.isHorizontalPad ? 'extraHeight' : ''}`}\r\n width=\"400px\"\r\n visible={this.state.moreCzkVisible}\r\n maskClosable={false}\r\n destroyOnClose={true}\r\n title={\"储值结算\"}\r\n onCancel={this.handleMoreCzkCancel}\r\n keyboard={false}\r\n centered={ !this.isHorizontalPad ? true : false}\r\n footer={<div className=\"action\">\r\n <span className='showUseCard'>仅列示可用的储值卡</span>\r\n <Button onClick={this.handleMoreCzkCancel}>取消</Button>\r\n <Button type=\"primary\" onClick={this.handleMoreCzkOk}>确定</Button>\r\n </div>}\r\n >\r\n <div>\r\n <MoreCzkTable\r\n setMoreCzkIndex={this.setMoreCzkIndex}\r\n selectedRowIndex={this.state.selectedRowIndex}\r\n dataSource={this.state.memberdata1}>\r\n </MoreCzkTable>\r\n </div>\r\n </Modal>\r\n <Modal\r\n wrapClassName={`djq ${this.isHorizontalPad ? 'extraHeight' : ''} passwordContainer`}\r\n width=\"400px\"\r\n visible={this.state.showSetPwdModal}\r\n backdropClosable={false}\r\n destroyOnClose={true}\r\n footer={null}\r\n onCancel={this.handleSetPwdCancel}\r\n keyboard={false}\r\n centered={ !this.isHorizontalPad ? true : false}\r\n title='设置密码'\r\n footer={<div className=\"action\">\r\n <Button onClick={this.handleSetPwdCancel}>取消</Button>\r\n <Button type=\"primary\" disabled={btnDissabled} onClick={this.handleSetModal}>确定</Button>\r\n </div>}\r\n >\r\n <div className='setPwdContainer'>\r\n <div className='setPwdDiv'>\r\n <div className=\"one\">新密码</div>\r\n <div className=\"two\">\r\n <Input.Password\r\n className=\"content\"\r\n placeholder=\"请输入6位数字密码\"\r\n style={{ width: 266, height: 32 }}\r\n maxLength={6}\r\n value={newPass}\r\n ref={input => this.inputNewAmount = input}\r\n onChange={value => this.setPwdValue('newPass', value.target.value)}\r\n onBlur={value => this.handleBlur('newPass')}\r\n onPressEnter={() => this.onPressEnterCzk('newPass')}\r\n />\r\n </div>\r\n </div>\r\n <div className='setPwdDiv'>\r\n <div className=\"one\">确认新密码</div>\r\n <div className=\"two\">\r\n <Input.Password\r\n className=\"content\"\r\n placeholder=\"请确认6位数字密码\"\r\n style={{ width: 266, height: 32 }}\r\n maxLength={6}\r\n value={newPassConfirm}\r\n ref={input => this.inputConfirmAmount = input}\r\n onChange={value => this.setPwdValue('newPassConfirm', value.target.value)}\r\n onBlur={value => this.handleBlur('newPassConfirm')}\r\n onPressEnter={() => this.onPressEnterCzk('newPassConfirm')}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n {/* <div className=\"action\">\r\n <Button onClick={this.handleSetPwdCancel}>取消</Button>\r\n <Button type=\"primary\" disabled={currentMode && currentMode.errinfo!=''} onClick={this.handleSetModal}>确定</Button>\r\n </div> */}\r\n </Modal>\r\n <Modal\r\n wrapClassName={`djq ${this.isHorizontalPad ? 'extraHeight' : ''}`}\r\n width=\"810px\"\r\n visible={this.state.djqVisible}\r\n maskClosable={false}\r\n onOk={this.handleDjqOk}\r\n destroyOnClose={true}\r\n onCancel={this.handleDjqCancel}\r\n centered={ !this.isHorizontalPad ? true : false}\r\n title={Differentiate.COUPON+'支付'}\r\n footer={<div className=\"action\">\r\n <Button onClick={this.handleDjqCancel}>取消</Button>\r\n <Button type=\"primary\" disabled={currentMode && currentMode.errinfo!=''} onClick={this.handleDjqOk}>确定</Button>\r\n </div>}\r\n >\r\n <div>\r\n {currentMode && !currentMode.boriginReturn && <div className=\"djq1\">\r\n <div className=\"col1\">{Differentiate.COUPON}号</div>\r\n <div className=\"col2\">\r\n <div>\r\n {/* <input ref={input => this['inputdjq'] =input } onKeyDown={e=>{if(e.keyCode==13){this.addDjq();}}}></input> */}\r\n <Input\r\n type='text'\r\n placeholder={`扫描/输入${Differentiate.COUPON}号并回车`}\r\n className=\"input\"\r\n id='djqInput'\r\n // onChange={this.onDjqChange}\r\n // value={currentMode && currentMode.member.cardNo}\r\n ref={input => this.inputdjq =input}\r\n onKeyDown={\r\n (e)=>{if(e.keyCode==13){this.addDjq(e.target.value)}}\r\n }\r\n onFocus={e => {\r\n this.inputTarget = this.inputdjq.input;\r\n Keyboard.open((v) => {\r\n const value = Keyboard.getNewValue(this.inputTarget, this.inputTarget.value, v);\r\n this.onDjqChange(value,true);\r\n }, this.djqKeyboardOnOk, this.djqKeyboardOnClose)()\r\n }}\r\n onBlur={(e) => { Keyboard.close(); this.inputdjq.input.value = ''; }}\r\n />\r\n </div>\r\n <div className=\"row2\">{currentMode && currentMode.errinfo}</div>\r\n </div>\r\n <div className='col4'>\r\n <Button className={`${this.state.couponLight ? \"primary-color b-theme\" : 'couponBorder'}`} onClick={this.couponClick}>可用优惠券</Button>\r\n <Button className={`${!this.state.couponLight ? \"primary-color b-theme\" : 'couponBorder'}`} onClick={this.couponClick}>不可用优惠券</Button>\r\n <span className='couponTip'>选择券后、不可叠加、金额不满足的券会置灰</span>\r\n </div>\r\n {\r\n this.isHorizontalPad &&\r\n <div className=\"col3\">\r\n <Ticon type='saomiao1' className='icon' onClick={this.changeScanProduct} />\r\n <Scan ref={scan => this.scanObj = scan} onChange={this.onScanDjqResult} />\r\n </div>\r\n }\r\n </div>}\r\n <div className=\"djq2outer\">\r\n <div className=\"djq2\">\r\n {\r\n currentMode && currentMode.djqs && currentMode.djqs.length > 0 ? _map(currentMode.djqs || [],(q,index)=>{\r\n if (!this.state.couponLight && !q.count) {\r\n return;\r\n }\r\n if (this.state.couponLight && (q.count && q.count === 1)) {\r\n return;\r\n }\r\n return (<div key={index + ''} className=\"djqItem\">\r\n {\r\n (!q.promoMethodEnum || q.promoMethodEnum == 'CASH_COUPON') ?\r\n <div className={`djqLeft ${q.IsEnable ? 'djqLeftCash' : 'djqLeftCashGrey'}`}>\r\n <div className=\"amount\">\r\n <span>{q.nominalAmount}</span>\r\n <span>元</span>\r\n </div>\r\n <div className=\"lijian\">立减</div>\r\n </div>\r\n :\r\n <div className={`djqLeft ${q.IsEnable ? 'djqLeftCash' : 'djqLeftCashGrey'}`}>\r\n <div className=\"amount\">\r\n <span>{tools.cutZero(q.discountPct * 10)}</span>\r\n <span>折</span>\r\n </div>\r\n <div className=\"lijian\">折扣</div>\r\n </div>\r\n }\r\n <div className={classnames('djqRight', { 'djqRightSelected': q.checked })} onClick={(e) => q.IsEnable ? this.djqChecked(q, this.props.dto) : null}>\r\n {q.checked ? <Ticon className='checkIcon primary-color' type='xuanzhong1'/> : <span className={`${q.IsEnable ? 'noxuanzhong' : 'noxuanzhong1'}`}></span>}\r\n {q.checked ? <div className='name overflow-hidden-point primary-color'>{q.name}</div> : <div className='name overflow-hidden-point'>{q.name}</div>}\r\n {\r\n q.displayText ?\r\n <div className=\"info overflow-hidden-point\"><span>{q.displayText}</span></div> :\r\n <div className=\"info overflow-hidden-point\"><span>使用门槛:</span><span>{q.doorsill}</span><span>元</span></div>\r\n }\r\n {\r\n q.expired ? <div className=\"info info_red overflow-hidden-point\"><span>{q.expired}</span></div> : null\r\n }\r\n </div>\r\n <div className=\"point_top\"/>\r\n <div className=\"point_bottom\"/>\r\n </div>)\r\n }) : <ProgressState\r\n state={\"empty\"}\r\n stateCommonStyle={{ 'paddingTop': \"30px\", backgroundColor: 'transparent' }}\r\n empty={{ buttonVisible: false, imgStyle: {width: '120px', height: '120px'} }} />\r\n }\r\n </div>\r\n </div>\r\n {currentMode && !currentMode.boriginReturn && <div className=\"djq3\">\r\n <div className=\"col1\">\r\n <div className=\"row1\">剩余应收</div>\r\n <div className=\"row2\">{currentMode ? currentMode.receivable:'0.00'}</div>\r\n </div>\r\n <div className=\"col2\">\r\n <div className=\"row1\">本单可用</div>\r\n <div className=\"row2\">{currentMode ? currentMode.maxamount:'0.00'}</div>\r\n </div>\r\n <div className=\"col2\">\r\n <div className=\"row1\">{Differentiate.COUPON}结算金额</div>\r\n <div className=\"row2\">{currentMode ? currentMode.value:'0.00'}</div>\r\n </div>\r\n <div className=\"col3\">\r\n <div className=\"row1\">溢收金额</div>\r\n <div className=\"row2\">{currentMode ? currentMode.overchargesAmount:'0.00'}</div>\r\n </div>\r\n </div>}\r\n {currentMode && currentMode.boriginReturn && <div className=\"djq3\">\r\n <div className=\"col1\">\r\n <div className=\"row1\">数量</div>\r\n <div className=\"row2\">{currentMode && currentMode.djqs ? currentMode.djqs.length:'0'}</div>\r\n </div>\r\n <div className=\"col2\">\r\n <div className=\"row1\">退款金额</div>\r\n <div className=\"row2\">{currentMode ? currentMode.value:'0.00'}</div>\r\n </div>\r\n </div>}\r\n </div>\r\n </Modal>\r\n <Modal\r\n wrapClassName={`czk ${this.isHorizontalPad ? 'extraHeight' : ''}`}\r\n width=\"420px\"\r\n visible={this.state.jfdxVisible}\r\n maskClosable={false}\r\n onCancel = { this.handleJfdxCancel }\r\n centered={ !this.isHorizontalPad ? true : false}\r\n title={\"积分抵现\"}\r\n destroyOnClose={true}\r\n footer={<div className=\"action\">\r\n <Button onClick={this.handleJfdxCancel}>取消</Button>\r\n <Button type=\"primary\" disabled={currentMode && currentMode.errinfo!=''} onClick={this.handleJfdxOk}>确定</Button>\r\n </div>}\r\n >\r\n <div>\r\n <div className=\"info\">\r\n <div className={classnames({\"type\":true,'colwidth4':hasmember})}>\r\n <div className=\"value valuetext\">{(currentMode && currentMode.member && currentMode.member.type) || '普通'}</div>\r\n <div className=\"name\">类型</div>\r\n </div>\r\n <div className=\"gap\">\r\n <div className=\"gap1\"></div>\r\n <div className=\"gap2\"></div>\r\n <div className=\"gap1\"></div>\r\n </div>\r\n <div className={classnames({\"balance\":true,'colwidth4':hasmember})}>\r\n <div className=\"value\">{currentMode && currentMode.member && currentMode.member.bonusPoints}</div>\r\n <div className=\"name\">积分</div>\r\n </div>\r\n <div className=\"gap\">\r\n <div className=\"gap1\"></div>\r\n <div className=\"gap2\"></div>\r\n <div className=\"gap1\"></div>\r\n </div>\r\n <div className={classnames({\"balance\":true,'colwidth4':hasmember})}>\r\n <div className=\"value\">{currentMode && currentMode.member && getFixedNumber(currentMode.member.exchangable)}</div>\r\n <div className=\"name\">可抵现金额</div>\r\n </div>\r\n <div className=\"gap\">\r\n <div className=\"gap1\"></div>\r\n <div className=\"gap2\"></div>\r\n <div className=\"gap1\"></div>\r\n </div>\r\n <div className={classnames({\"available\":true,'colwidth4':hasmember})}>\r\n <div className=\"value\">{currentMode && currentMode.member && getFixedNumber(Math.max(0,Math.min(currentMode.maxamount,currentMode.member.exchangable)))}</div>\r\n <div className=\"name\">本单可用</div>\r\n </div>\r\n </div>\r\n <div className=\"no\">\r\n <span>会员卡号:</span>\r\n <span className=\"notext\">{currentMode && currentMode.member && currentMode.member.cardNo}</span>\r\n </div>\r\n <div className=\"receivable\">\r\n <span>剩余应收:</span>\r\n <span>{paymode.receivable}</span>\r\n </div>\r\n <div className=\"received\">\r\n <span>实收金额:</span>\r\n <span>\r\n {/* <input value={currentMode && currentMode.value} onChange={(value)=>{this.setCurrentModeValue(value,currentMode.member.exchangable)}}></input> */}\r\n <Input\r\n className={hotKey.hotKeyNotFilter('input')}\r\n type='text'\r\n value={storageValue}\r\n onChange={(e)=>{this.setCurrentModeValue(e.target.value,Math.min(currentMode.maxamount,currentMode.member.exchangable))}}\r\n defaultValue={currentMode && currentMode.member && getFixedNumber(Math.min(currentMode.value,currentMode.maxamount,currentMode.member.exchangable))}\r\n ref={ref => this[\"inputJfdxAmount\"] = ref}\r\n onFocus={(e)=>{\r\n this.inputkey=\"inputJfdxAmount\";\r\n Keyboard.open((v)=>{\r\n const value = Keyboard.getNewValue(this[this.inputkey].input, this[this.inputkey].input.value, v);\r\n this.setCurrentModeValue(value,Math.min(currentMode.maxamount,currentMode.member.exchangable));\r\n }, this.keyboardOnOk, this.keyboardOnClose)()\r\n }\r\n }\r\n onBlur={(e)=>{\r\n Keyboard.close();\r\n this.setCurrentModeValue(getFixedNumber(this.inputJfdxAmount.input.value),Math.min(currentMode.maxamount,currentMode.member.exchangable));\r\n }}\r\n />\r\n </span>\r\n </div>\r\n <div className=\"error\">{currentMode && currentMode.errinfo}</div>\r\n </div>\r\n </Modal>\r\n <PrototypeTableModal discount={\r\n {\r\n discountTotalAmount,discountRetailTotalAount,discountPrototypeTotalAmount,\r\n }\r\n } handleprototypeCancel={this.handleprototypeCancel} isHorizontalPad={this.isHorizontalPad} dataSource={dataSource} prototypeVisible={this.state.prototypeVisible}/>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default Settlement;\r\n\r\n"]}
|