tplus-components-touch 3.54.12 → 3.54.13

Sign up to get free protection for your applications and to get access to all the features.
@@ -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","selectedRowIndex","isNotAutoFocus","returnAmount","confirmStatus","compoundHotkeysList","window","$","operationControl","control","map","key","toLocaleUpperCase","hotkeydebounced","hotkeydebouncedPayMode","voucherRunningFast","currentInput","getIsReturn","dataModal","context","viewModel","data","IdbusiType","getBoriginReturn","boriginReturn","JSON","getCellValue","getNotBoriginReturn","isReturn","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","newAmount","init","amounthandler","onHandleAmount","datasource","Code_02","storeinfo","storeInfo","dto","payModeKey","settleZero","hyczk","isProhibitMeStorageCard","warn","showCzkModal","quickSettle","handleSettle","handleGuestShow","isAutoShowCouponWhenCash","setState","resolve","onValidate","fn","isNoProductTip","then","result","count","handleShowPrototype","checkIsIntegralExchange","payFun","creditSalesVoucher","custVendorId","handleDefault","brefund","thePaymodes","m","checkModeDisabled","paymentType","setFocusAndSelectionMode","pricePrecision","quantityPrecision","RetailDetails","TotalTaxAmount","o","item","count1","ShowFreeItem","i","test","Name","FreeItem","IsPresent","badge","text","position","IsGWPBuyGift","PromotionDetails","length","InventoryName","Inventory","Discount","RetailPrice","TaxPrice","DetailDiscountAmount","TotalDiscount","nAmount","TaxAmount","UnitName","Unit","nQuantity","Quantity","nTaxPrice","nRetailPrice","showModal","that","ModalWraper","confirm","title","content","onOk","onCancel","handleOk","e","handleCancel","onCancelSettle","cancelState","setInventoryFocus","clean","handleCzkMoreData","params","_val","value11","czkInput","focus","setSelectionRange","id","append","returnType","setCurrentMode","connectRfCard","memberId","ID","updateCurrentMode","handleCzkData","handleMoreCzkCancel","setMoreCzkIndex","index","handleMoreCzkOk","updateCardInfo","loadCzk","mode","paymethodId","calcMemberBalance","handleCzk","handleCzkOk","walletEnabled","cardTypeEnum","freePaymentPasswordStore","isNeedPassword","Keyboard","close","handleSetPwdCancel","handleSetModal","modifyPass","updateMemberInfo","handleConfirmPwdModal","curmode","validePwd","pwd","setCurrentFocusAndAddPay","info","handleConfirmPwdCancel","getConfirmPwd","changeBtnDisabled","onPressEnterCzk","field","inputConfirmAmount","isHorizontalPad","doms","document","getElementsByClassName","getElementById","console","log","showDjqModal","djq","calcCheckList","inputdjq","getCouponList","handleDjqOk","Differentiate","handleDjqCancel","djqs","checked","COUPON","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","isDjqValidated","MultiPay","shouldSettlement","exchangeRate","forign","setCurrentFocusOnly","FORBIDDEN","NOTIFICATION","editModal","payId","changeFocusAndAddPay","setFocusAndSelection","onDelPay","storeType","delPay","handleChange","currentFocus","target","amountMaxLength","parseInt","isNaN","changeValue","val","max","reg","value1","split","onBlur","changeFocusOnly","onFocus","onFocusHack","appendCzkmode","bappend","djqChecked","q","calcDjqCheckValue","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","zIndex","__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","isFull","settleGiftOpenedInRunningFast","resp1","__loadingModal","MemberPoints","isMemberPointsReturn","settlementType","message","Number","drawerStore","hide","success","__successModal","onModalClose","resp","isCheckGift","vocherPayGift","getSettleGift","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","pwdStatus","fKeyboardOnOk","paymethodeId","blur","fKeyboardOnClose","keyboardOnOk","keyboardOnClose","changefn","setConfirmPwdValue","handleBtnDebounced","CustomerPhone","DistributionMode","Address","isEnableSerialNumber","resultObj","IsSerialNumber","IsBatch","IsQualityPeriod","Id","Member","Mobilephone","syncMemberInfoProcessor","openBuyerModal","productStore","checkShouldSettlement","checkResult","btndebounced","btnDebounced","notSelectableVoucherList","SettleStatusEnum","ArrearsAmount","returnAmount1","onCzkChange","isNewRetailBCPos","setCardNo","czkKeyboardOnOk","onDjqChange","isKeyBorad","debounced","djqKeyboardOnOk","djqKeyboardOnClose","xianjinChange","inputTarget","inputTarget2","innerHTML","isNotFullBook","bookMaxValue","changeScanProduct","scanObj","startScan","onScanResult","modal","el","setStateValue","submitHandler","onScanCzkResult","onScanDjqResult","getXianjinPayment","payType","getXianjinBalance","isStoredValueCard","BuyerPayFreight","PayIcon2","onPressEnter","zl","getAttribute","authCode","isCancelFun","onPressEsc","maskClosable","keyboard","closable","backdropStyle","width","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","isMobileEnvironment","bind","setTimer","keypressStime","settlementVoucherStore","settlementMemberStore","initPaymodes","nextProps","clear","cardPsw","cardSec","cardKm","Minus","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","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","height","paddingBottom","maxHeight","body","clientHeight","hotKeyNotFilter","display","overchargesAmount","onlineamount","onKeyboardChange","mindex","hyczkFindIndex","hyczkList","lastStorageCardIndex","tm","sum","Add","cardNo","errinfo","keyCode","time","Date","parse","czkvalue","open","event","ref","promoMethodEnum","IsEnable","nominalAmount","tools","cutZero","discountPct","displayText","doorsill","expired","backgroundColor","buttonVisible","imgStyle","bonusPoints","steadCashIntegral","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 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'\nimport ModifyPass from '../password/ModifyPass'\nimport ConfirmPwd from '../password/confirmPwd'\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 selectedRowIndex: 0,\n isNotAutoFocus: true,\n returnAmount: 0,// 赊销退款金额\n confirmStatus: false //确认密码弹框\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 voucherRunningFast = false\n static contextTypes = {\n viewModel: PropTypes.object,\n stores: PropTypes.object,\n }\n\n currentInput = null;\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 this.store = !props.type ? stores.settlementVoucherStore : stores.settlementMemberStore;\n this.voucherRunningFast = localStore && (localStore.get('vocherRunningFast') == '1')\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 getIsReturn = () => {\n let dataModal = this.context && this.context.viewModel && this.context.viewModel.data;\n return dataModal.IdbusiType === 35 || dataModal.IdbusiType === 40; //40预售退货类型。\n }\n\n //原单退货状态\n getBoriginReturn = () => {\n const boriginReturn = this.context && this.context.viewModel && this.context.viewModel.data && JSON.getCellValue(this.context.viewModel.data, \"IsOriginalReturn\");\n return boriginReturn || false;\n }\n\n //非原单退货状态\n getNotBoriginReturn = () => {\n let isReturn = this.getIsReturn();\n let boriginReturn = this.getBoriginReturn();\n return isReturn && !boriginReturn;\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 handleReadICard = () => {\n this.readRfCard();\n }\n\n updateInput=()=>{\n let {currentMode}=this.store.paymode;\n if(this.state.jfdxVisible &&currentMode && 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, returnAmount } = this.state;\n const { PayStyle } = enumController.getEnumOj();\n let newAmount = this.props.amount;\n if (this.props.type != 1) {\n const { IdbusiType } = this.context.viewModel.data;\n if (IdbusiType === 42) newAmount=-returnAmount;\n }\n this.store.init({\n context: this.props.type == 1 ? null : this.context,\n amounthandler: this.props.onHandleAmount,\n datasource: this.props.dataSource.Code_02,\n storeinfo: this.props.storeInfo,\n bquick: true,\n amount: newAmount,\n type: this.props.type,\n data: this.props.dto,\n payModeKey: currentKey,\n });\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), type})).then(result=>{\n if (result) {\n this.setState({\n settleDisabled: false\n })\n if (!type) {\n let count = this.handleShowPrototype();\n if (!isReturn && isAutoShowCouponWhenCash && count > 0) {\n this.setState({\n prototypeVisible: true,\n isNotAutoFocus: false\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 const { returnAmount } = this.state;\n let newAmount = this.props.amount;\n if (this.props.type != 1) {\n const { IdbusiType } = this.context.viewModel.data;\n if (IdbusiType === 42) newAmount=-returnAmount;\n }\n this.store.init({\n context: this.props.type == 1 ? null : this.context,\n amounthandler: this.props.onHandleAmount,\n datasource: this.props.dataSource.Code_02,\n storeinfo: this.props.storeInfo,\n bquick: false,\n amount:newAmount,\n type: this.props.type,\n data: this.props.dto,\n creditSalesVoucher: this.props.creditSalesVoucher,\n custVendorId: this.props.custVendorId,\n });\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 let { paymode, brefund, newStyle } = this.store;\n let boriginReturn = this.getBoriginReturn();\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 discountPrototypeTotalAmount = 0;\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.PromotionDetails && item.PromotionDetails.length > 0) {\n count++;\n }\n item.InventoryName = item.Inventory.Name;\n item.Discount = getRoundValue(item.RetailPrice - item.TaxPrice, pricePrecision);\n if (!item.IsPresent) {\n discountPrototypeTotalAmount += item.DetailDiscountAmount;\n item.TotalDiscount = item.DetailDiscountAmount;\n } else {\n item.TotalDiscount = 0;\n }\n //item.TotalDiscount = getFixedNumber(item.Discount * item.Quantity);\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(this.props.amount),\n discountPrototypeTotalAmount: getFixedNumber(discountPrototypeTotalAmount),\n discountRetailTotalAount: getFixedNumber(this.props.amount + parseFloat(discountPrototypeTotalAmount))\n })\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({fn: (data)=>this.isNoProductTip(data), type})).then(result => {\n if (result) {\n this.setState({\n settleDisabled: false\n })\n if (!type) {\n let count = this.handleShowPrototype();\n if (!isReturn && isAutoShowCouponWhenCash && count > 0) {\n this.setState({\n prototypeVisible: true,\n isNotAutoFocus: false\n })\n } else {\n this.payFun();\n }\n } else {\n this.payFun();\n }\n }\n })\n }\n\n settleZero=()=>{\n const that = this;\n //预售取货无需支付时省略弹框确认这一步\n let IdbusiType = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.IdbusiType;\n if(IdbusiType == 39){\n that.handleSettle(\"zero\");\n return;\n }\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\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 const returnType = this.getNotBoriginReturn();\n const { PayStyle } = enumController.getEnumOj();\n this.store.setCurrentMode(id, PayStyle.hyczk, append);\n this.connectRfCard();\n const memberId = this.store && this.store.member && this.store.member.ID;\n let memberdata1 = memberId && await this.store.updateCurrentMode(memberId, returnType);\n this.setState({ czkVisible: true });\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 const { PayStyle } = enumController.getEnumOj();\n if (!this.store.paymode.currentMode.storageCardNo) {\n const returnType = this.getNotBoriginReturn();\n await this.store.loadCzk(this.czkInput.input.value, returnType);\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.store.paymode.calcMemberBalance();\n this.handleCzk();\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 Keyboard.close();\n this.setInventoryFocus();\n }\n\n handleSetPwdCancel = () => {\n this.setState({\n showSetPwdModal: false\n })\n }\n\n handleSetModal = async () => {\n this.modifyPass && (await this.modifyPass.handleOk(this.handleCzkData, this.store,this.props.updateMemberInfo));\n }\n handleConfirmPwdModal = async () => {\n this.setState({\n confirmStatus: false\n })\n const curmode = this.store.paymode.currentMode;\n //密码校验\n const result= await this.store.validePwd({\n pwd: this.state.confirmPwd\n })\n if(result==\"\"){//成功\n //返回\n this.setCurrentFocusAndAddPay(curmode.paymentType, null, curmode.paymethodId);\n Promise.resolve()\n }else{\n this.setState({\n confirmStatus: true\n })\n Message.info(result);\n }\n }\n\n handleConfirmPwdCancel = () => {\n this.setState({\n confirmStatus: false\n })\n }\n\n getConfirmPwd = (value) => {\n this.setState({\n confirmPwd: value\n })\n }\n\n changeBtnDisabled = (value) => {\n this.setState({\n btnDissabled: value\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 //关闭弹框时,执行此方法,把焦点设定到商品录入框\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 if (!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 }, 300)\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 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.showCzkModal(-1);\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 if (!this.isDjqValidated(key)) { return };\n const { paymode, brefund, boriginReturn } = this.store;\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 { 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 const { type: storeType } = this.props\n if(!storeType && 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 returnType = this.getNotBoriginReturn();\n const { PayStyle } = enumController.getEnumOj();\n let reg = returnType ? /^[\\d.-]+$/g : /^[\\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 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 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 this.store.paymode.calcDjqCheckValue(q, this.store.dto);\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 const returnType = this.getNotBoriginReturn();\n let memberdata1 = await this.store.loadCzk(v, returnType);\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 isDjqValidated(key) {\n const { paymode } = this.store;\n const { PayStyle } = enumController.getEnumOj();\n if (key === PayStyle.djq && Math.Minus(paymode.received, paymode.amount) > 0) {\n Message.warn('实收金额已大于应收金额,不允许使用优惠券');\n return false;\n }\n return true;\n }\n\n onHotKeyClick1=(mode,index,boriginReturn,bookType)=>{\n if (!this.isDjqValidated(mode.paymentType)){ return };\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 boriginReturn = this.getBoriginReturn();\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 // 根据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 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 * @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 zIndex: 1007,\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\n settleCanceled=()=>{\n console.log('settlement--settleCanceled--调用清除数据==Focus==')\n this.props.clearVoucherData && this.props.clearVoucherData();\n this.cancelState();\n }\n\n settleSuccess = async (params) => {\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 { isFull } = this.store;\n const resp1 = await this.settleGiftOpenedInRunningFast()\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, type: settlementType } = _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 } else if (IdbusiType == 39 && received == 0){\n message = \"取货成功\"\n }\n // 收款的时候,drawerStore才消失\n if (settlementType === 2) {\n stores.drawerStore.hide();\n }\n if (params === 'onCreditReturn') {\n Message.success('退货成功,此单无须退款!')\n } else {\n window.__successModal = showSuccessModal(amount, received, charge, _this.props.onModalClose, isXianjin, message, resp1 && resp1.data, stores, IdbusiType, isFull, () => {\n _this.handleGuestShow(5)\n })\n }\n this.setState({ isXianjin: false })\n this.cancelState();\n }, 0)\n }\n // 极速模式下是否开启了支付有礼功能\n settleGiftOpenedInRunningFast = async () => {\n let resp = false;\n let isCheckGift = true\n if (this.voucherRunningFast) {\n const vocherPayGift = localStore && localStore.get('vocherPayGift')\n if (!vocherPayGift || vocherPayGift == 'false') {\n isCheckGift = false\n }\n }\n if (isCheckGift) {\n const { getSettleGift } = this.store;\n const { type } = this.props;\n if (!type) {\n try {\n // 获取支付成功后礼包情况\n resp = await getSettleGift();\n } catch(e) {\n console.log(\"获取支付礼包getSettleGift失败\");\n }\n }\n }\n return resp\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 { PayStyle } = enumController.getEnumOj();\n if (curmode.value > 0) {\n if (curmode.paymentType === PayStyle.hyczk) {\n if (curmode.cardTypeEnum === 'BALANCE_CARD') {\n !curmode.freePaymentPasswordStore && this.setState({\n confirmStatus: true\n });\n } else {\n curmode.isNeedPassword && this.setState({\n confirmStatus: true\n });\n }\n }\n }\n\n let pwdStatus = true;\n if (curmode.cardTypeEnum === 'BALANCE_CARD') {\n if (!curmode.freePaymentPasswordStore) {\n pwdStatus = false\n }\n } else {\n if (curmode.isNeedPassword) {\n pwdStatus = false\n }\n }\n\n if (curmode.paymentType !== PayStyle.hyczk || pwdStatus) {\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 handleUserInputs(promises)\n }\n }\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\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\n changefn=(e)=>{\n console.log(e)\n }\n\n setConfirmPwdValue = (value) => {\n this.setState({\n confirmPwd: value\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 handleBtnDebounced = 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 //预售下单时,启用了序列号管理和批号/有效期管理的商品,不支持快递和同城配送\n let isEnableSerialNumber = PosInitData(\"IsEnableSerialNumber\");\n let resultObj = this.context.viewModel.data.RetailDetails.find(o=>{\n return o.Inventory.IsSerialNumber && (o.Inventory.IsBatch || o.Inventory.IsQualityPeriod);\n });\n if(isEnableSerialNumber && resultObj && (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE')){\n return Message.error('启用了序列号管理和批号/有效期管理的商品,不支持快递和同城配送');\n }\n\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 // 极速模式错误校验\n\n const { productStore } = stores;\n const checkResult = await productStore.checkShouldSettlement();\n if(!checkResult) return false\n\n this.setState({\n bquick,\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 btnDebounced = async (type, bquick) => {\n const { type: settlementType, creditSalesVoucher = [], amount } = this.props;\n let notSelectableVoucherList = [];\n //赊销-未生成零售结算单的单据不能进行收款\n if(settlementType == 2){\n if(Number(amount) < 0){\n return Message.warn('所勾选零售单的欠款合计须大于等于0!')\n }\n notSelectableVoucherList = creditSalesVoucher.filter(o => o.SettleStatusEnum != 'SETTLED');\n if(notSelectableVoucherList.length > 0){\n ModalWraper.confirm({\n className: 'not-selectable-voucher',\n title: '以下零售单尚未生成零售结算单,不能进行收款',\n content: <ul>\n {\n notSelectableVoucherList.map(o=>{\n return (\n <li>{o.Code}</li>\n )\n })\n }\n </ul>,\n })\n return;\n }\n }\n if (this.props.type != 1) {\n const { IdbusiType, TotalTaxAmount = 0, ArrearsAmount = 0} = this.context.viewModel.data;\n //赊销原单退货\n if(IdbusiType === 42){\n //实际退款金额\n let returnAmount1 = Math.abs(TotalTaxAmount) - ArrearsAmount;\n this.setState({\n returnAmount: returnAmount1\n })\n //判断欠款金额\n if (returnAmount1 > 0){\n ModalWraper.confirm({\n className: 'tplus-confirm-modal',\n title: '退款',\n content: `本单须退款:${returnAmount1}元,本次退款金额=本次退货金额-该客户未收款金额`,\n onOk: () => {\n this.handleBtnDebounced(type, bquick);\n },\n onCancel() {\n\n },\n });\n } else {\n returnAmount1 = 0;\n const result = await this.store.commit(this.props.bTest, this.context.viewModel.data, this.context);\n if (result === true) {//成功\n this.settleSuccess('onCreditReturn');\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 }, 0)\n }\n }\n } else {\n this.handleBtnDebounced(type, bquick);\n }\n } else {\n this.handleBtnDebounced(type, bquick);\n }\n }\n\n onCzkChange = (v) => {\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 }\n\n czkKeyboardOnOk = (e) => {\n this.czkInput.input.blur();\n Keyboard.close();\n this.loadCzk(this.czkInput.input[\"value\"]);\n }\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 }\n if(!isKeyBorad){\n this.debounced=_debounce(()=>{this.addDjq()},2000);\n this.debounced();\n }\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\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\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': '1006'\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 bordered\n placement=\"rightBottom\"\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 &&\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 bordered\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 const { type } = this.props;\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 //type == 2 是赊销类型,赊销支付可低于应收\n let receivable = Number(paymode.receivable);\n let amount = Number(paymode.amount);\n let enabled = (receivable == 0 || (type == 2 && 0 < receivable && receivable < amount)) && thePaymodes.length>0;\n if(xj && xj.value!=0){\n enabled = receivable <= 0 && thePaymodes.length>0 && (Math.abs(receivable)<xj.value) || (type == 2 && 0 < receivable && receivable < amount);\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 ? 'bookPay' : '')\n })\n }\n </div>\n })}\n </CarouselTp>\n }\n\n prototypeDetailedClick = () => {\n this.handleShowPrototype();\n this.setState({\n prototypeVisible: true,\n isNotAutoFocus: 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, isNotAutoFocus} = this.state;\n\n let { paymode, brefund,newStyle } = this.store;\n let { type, amount, totalVariety, totalQuantity, isReturn, quantityDetail,memberDisabled, noIsMinAmount, creditSalesVoucher = [], } = this.props\n // 原单退货\n let boriginReturn = this.getBoriginReturn();\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\n // 单据模式\n let thePaymodes=newStyle?_filter(paymode.thePaymodes,(m)=>{\n if(IdbusiType == 39){\n return !(this.checkModeDisabled(m.paymentType,brefund,boriginReturn)&& parseFloat(m.value)==0) && m.paymentType != PayStyle.hyczk;\n }\n return !(this.checkModeDisabled(m.paymentType,brefund,boriginReturn)&& parseFloat(m.value)==0);\n }):paymode.thePaymodes;\n let { paymodes, settle, currentMode } =paymode;\n\n if (IdbusiType == 39){\n totalTaxAmount = stores.drawerStore.thisWaitPaidAmount;\n paymodes = _filter(paymodes, mode => { return mode.paymentType != PayStyle.hyczk}); //取货过滤掉储值\n }\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 const quickPay =boriginReturn ? [] :\n _filter(paymodes, (paymode) =>{\n if(IdbusiType == 39){\n return paymode.isQuick && paymode.paymentType != PayStyle.hyczk; //取货过滤掉储值\n } else {\n return paymode.isQuick;\n }\n });\n const productsIsEmpty = (!type && this.context.viewModel.data.RetailDetails.length == 0) || ((type==1 && parseFloat(amount || 0) <= 0) || memberDisabled || noIsMinAmount) || (type == 2 && creditSalesVoucher.length === 0);\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 && type != 2 &&\n _map(quickPay, (p, i) => {\n let iconclass = PayIcon2[p.paymentType] ? `color${p.paymentType}` : \"primary-color\";\n return (\n <Button\n className={classnames({ \"quick\": true, \"quick2\": type==1 })}\n key={`paymentType_${p.paymentType}`}\n onClick={() => { this.btnDebounced(p.paymentType, true) }}\n disabled={productsIsEmpty || (!type && this.checkModeDisabled(p.paymentType, (this.context.viewModel.data.TotalTaxAmount || 0 - this.context.viewModel.data.OnlinePaymentAmount || 0) < 0, boriginReturn))}\n >\n <div className={classnames({ [iconclass]: true, \"icon\": true })}>\n <Ticon type={PayIcon2[p.paymentType] || PayIcon2['default']} />\n </div>\n <div className=\"text\">\n {p.name.length > 8 ? _truncate(p.name, { length: 7, omission: '' }) + '...' : p.name}\n </div>\n </Button>)\n })\n }\n <Button key=\"settle\"\n className={classnames({ \"settle\": true, \"settle2\": type == 1,\"settleStorage\" :true ,'primary-btn': true })}\n onClick={() => { this.btnDebounced() }}\n disabled={productsIsEmpty}>\n {\n this.props.isMemberPoints ?\n '立即兑换' : this.props.isMemberPointsReturn ?\n '退货': ( IdbusiType == 39 && stores.drawerStore.thisWaitPaidAmount == 0 ) ?\n '取货' : type == 2 ?\n '收款' : settle.name\n }\n </Button>\n </div>\n\n\n {/* // 触屏模式复合结算 */}\n {!newStyle && <Drawer\n title=\"复合结算\"\n width=\"600px\"\n placement=\"right\"\n maskClosable\n closable={false}\n onClose={this.handleCancel}\n visible={this.state.visible}\n destroyOnClose={true}\n className={`settlement-wraper ${this.voucherRunningFast ? 'no-zoom' : null}`}\n style={{'zIndex': 1006}}\n >\n <div className= {`settlement ${hotKey.hotKeyBindClass('5')}`} style={{height: '100%', paddingBottom: '68px'}}>\n <div className={classnames({ \"toolbar bg-subsidiary-gray-color4\": true, \"carousel\": paymodes.length > carouselStart })}>\n {\n paymodes.length <= carouselStart &&\n <div>\n {\n _map(paymodes, (mode, index) => {\n return this.renderToolbtn(mode, index, 'bookPay')\n })\n }\n </div>\n }\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', height: 'calc(100% - 198px)'}}>\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, !type ? boriginReturn : null) }} 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 {!type && 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 && (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 !type && !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 {/* // 触屏模式储值结算 */}\n\n {/* // 单据模式的复合结算 */}\n {newStyle && <Drawer\n title=\"复合结算\"\n width=\"600px\"\n placement=\"right\"\n maskClosable\n closable={false}\n onClose={this.handleCancel}\n visible={this.state.visible}\n destroyOnClose={true}\n className={`settlement-wraper ${this.voucherRunningFast ? 'no-zoom' : ''}`}\n style={{'zIndex': 1006}}\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 && (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 !type && !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 = mindex;\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 hyczkFindIndex = _findIndex(thePaymodes, (m) => { return m.paymentType == PayStyle.hyczk; })\n const hyczkList = _filter(thePaymodes, (m) => { return m.paymentType == PayStyle.hyczk; })\n let lastStorageCardIndex = 0\n _map(thePaymodes, (m, i) => {\n if (m.paymentType === PayStyle.hyczk) lastStorageCardIndex = i\n })\n if ( mindex > 0 && hyczkList.length > 1 && mindex > lastStorageCardIndex) {\n hotkeyIndex = hotkeyIndex - hyczkList.length + 1\n }\n\n console.log(thePaymodes)\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 if (!type && 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 {\n !type ?\n (<span >{m && m.storageCardNo}</span>) :\n (<span >{m.member && m.member.cardNo}</span>)\n }\n <span className=\"fr\">{getFixedNumber(m.value)}</span>\n <span className=\"balance fr\">支付金额:</span>\n <br />\n {!type && 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 <Modal\n wrapClassName={`czk ${this.voucherRunningFast ? 'no-zoom' : ''} ${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 zIndex={1007}\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.voucherRunningFast ? 'no-zoom' : ''} ${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 zIndex={1007}\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 {/* 设置密码弹框 开始*/}\n <Modal\n wrapClassName={`djq ${hotKey.hotKeyBindClass('5', 'modify-password')} ${this.voucherRunningFast ? 'no-zoom' : ''} ${this.isHorizontalPad ? 'extraHeight' : ''}`}\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 zIndex={1007}\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 <ModifyPass changeBtnDisabled={this.changeBtnDisabled} passwordTitle='设置密码' ref={ref => this.modifyPass = ref} cardList={this.store.paymode.currentMode} cancelModal={this.handleSetPwdCancel}></ModifyPass>\n </Modal>\n {/* 确认密码弹框 开始*/}\n <Modal\n wrapClassName={`djq ${hotKey.hotKeyBindClass('5', 'confirmPwdWraper')} ${this.isHorizontalPad ? 'extraHeight' : ''}`}\n width=\"400px\"\n visible={this.state.confirmStatus}\n backdropClosable={false}\n destroyOnClose={true}\n footer={null}\n onCancel={this.handleConfirmPwdCancel}\n keyboard={false}\n centered={ !this.isHorizontalPad ? true : false}\n title='储值卡'\n zIndex={1007}\n footer={<div className=\"action\">\n <Button onClick={this.handleConfirmPwdCancel}>取消</Button>\n <Button type=\"primary\" onClick={this.handleConfirmPwdModal}>确定</Button>\n </div>}\n >\n <ConfirmPwd\n isLimit='yes'\n placeholder=''\n maxLength={6}\n labelName='储值余额密码'\n ok={this.handleConfirmPwdModal}\n getConfirmPwd={this.getConfirmPwd}\n params='pay'\n amount={this.store.paymode.currentMode && getFixedNumber(this.store.paymode.currentMode.value)}\n />\n </Modal>\n {/* 确认密码弹框 结束*/}\n {/* 代金券弹框 开始*/}\n <Modal\n wrapClassName={`djq ${this.voucherRunningFast ? 'no-zoom' : ''} ${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 zIndex={1007}\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 {/* 代金券弹框 结束*/}\n {/* 积分抵现弹框 开始*/}\n <Modal\n wrapClassName={`czk ${this.voucherRunningFast ? 'no-zoom' : ''} ${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 zIndex={1007}\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.steadCashIntegral)}</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 {/* 积分抵现弹框 结束*/}\n <PrototypeTableModal discount={\n {\n discountTotalAmount,discountRetailTotalAount,discountPrototypeTotalAmount,\n }\n } handleprototypeCancel={this.handleprototypeCancel} isHorizontalPad={this.isHorizontalPad} dataSource={dataSource} prototypeVisible={this.state.prototypeVisible} isNotAutoFocus={isNotAutoFocus}/>\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","selectedRowIndex","isNotAutoFocus","returnAmount","confirmStatus","compoundHotkeysList","window","$","operationControl","control","map","key","toLocaleUpperCase","hotkeydebounced","hotkeydebouncedPayMode","voucherRunningFast","currentInput","getIsReturn","dataModal","context","viewModel","data","IdbusiType","getBoriginReturn","boriginReturn","JSON","getCellValue","getNotBoriginReturn","isReturn","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","newAmount","init","amounthandler","onHandleAmount","datasource","Code_02","storeinfo","storeInfo","dto","payModeKey","settleZero","hyczk","isProhibitMeStorageCard","warn","showCzkModal","quickSettle","handleSettle","handleGuestShow","isAutoShowCouponWhenCash","setState","resolve","onValidate","fn","isNoProductTip","then","result","count","handleShowPrototype","checkIsIntegralExchange","payFun","creditSalesVoucher","custVendorId","handleDefault","brefund","thePaymodes","m","checkModeDisabled","paymentType","setFocusAndSelectionMode","pricePrecision","quantityPrecision","RetailDetails","TotalTaxAmount","o","item","count1","ShowFreeItem","i","test","Name","FreeItem","IsPresent","badge","text","position","IsGWPBuyGift","PromotionDetails","length","InventoryName","Inventory","Discount","RetailPrice","TaxPrice","DetailDiscountAmount","TotalDiscount","nAmount","TaxAmount","UnitName","Unit","nQuantity","Quantity","nTaxPrice","nRetailPrice","showModal","that","ModalWraper","confirm","title","content","onOk","onCancel","handleOk","e","handleCancel","onCancelSettle","cancelState","setInventoryFocus","clean","handleCzkMoreData","params","_val","value11","czkInput","focus","setSelectionRange","id","append","returnType","setCurrentMode","connectRfCard","memberId","ID","updateCurrentMode","handleCzkData","handleMoreCzkCancel","setMoreCzkIndex","index","handleMoreCzkOk","updateCardInfo","loadCzk","mode","paymethodId","calcMemberBalance","handleCzk","handleCzkOk","walletEnabled","cardTypeEnum","freePaymentPasswordStore","isNeedPassword","Keyboard","close","handleSetPwdCancel","handleSetModal","modifyPass","updateMemberInfo","handleConfirmPwdModal","curmode","validePwd","pwd","setCurrentFocusAndAddPay","info","handleConfirmPwdCancel","getConfirmPwd","changeBtnDisabled","onPressEnterCzk","field","inputConfirmAmount","isHorizontalPad","doms","document","getElementsByClassName","getElementById","console","log","showDjqModal","djq","calcCheckList","inputdjq","getCouponList","handleDjqOk","Differentiate","handleDjqCancel","djqs","checked","COUPON","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","isDjqValidated","MultiPay","shouldSettlement","exchangeRate","forign","setCurrentFocusOnly","FORBIDDEN","NOTIFICATION","editModal","payId","changeFocusAndAddPay","setFocusAndSelection","onDelPay","storeType","delPay","handleChange","currentFocus","target","amountMaxLength","parseInt","isNaN","changeValue","val","max","reg","value1","split","onBlur","changeFocusOnly","onFocus","onFocusHack","appendCzkmode","bappend","djqChecked","q","calcDjqCheckValue","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","zIndex","__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","isFull","settleGiftOpenedInRunningFast","resp1","__loadingModal","MemberPoints","isMemberPointsReturn","settlementType","message","Number","drawerStore","hide","success","__successModal","onModalClose","resp","isCheckGift","vocherPayGift","getSettleGift","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","pwdStatus","fKeyboardOnOk","paymethodeId","blur","fKeyboardOnClose","keyboardOnOk","keyboardOnClose","changefn","setConfirmPwdValue","handleBtnDebounced","CustomerPhone","DistributionMode","Address","isEnableSerialNumber","resultObj","IsSerialNumber","IsBatch","IsQualityPeriod","Id","Member","Mobilephone","syncMemberInfoProcessor","openBuyerModal","productStore","checkShouldSettlement","checkResult","btndebounced","btnDebounced","notSelectableVoucherList","SettleStatusEnum","ArrearsAmount","returnAmount1","onCzkChange","isNewRetailBCPos","setCardNo","czkKeyboardOnOk","onDjqChange","isKeyBorad","debounced","djqKeyboardOnOk","djqKeyboardOnClose","xianjinChange","inputTarget","inputTarget2","innerHTML","isNotFullBook","bookMaxValue","changeScanProduct","scanObj","startScan","onScanResult","modal","el","setStateValue","submitHandler","onScanCzkResult","onScanDjqResult","getXianjinPayment","payType","getXianjinBalance","isStoredValueCard","BuyerPayFreight","PayIcon2","onPressEnter","zl","getAttribute","authCode","isCancelFun","onPressEsc","maskClosable","keyboard","closable","backdropStyle","width","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","isMobileEnvironment","bind","setTimer","keypressStime","settlementVoucherStore","settlementMemberStore","initPaymodes","nextProps","clear","cardPsw","cardSec","cardKm","Minus","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","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","height","paddingBottom","maxHeight","body","clientHeight","hotKeyNotFilter","display","overchargesAmount","onlineamount","onKeyboardChange","mindex","hyczkFindIndex","hyczkList","lastStorageCardIndex","tm","sum","Add","cardNo","errinfo","keyCode","time","Date","parse","czkvalue","open","event","ref","promoMethodEnum","IsEnable","nominalAmount","tools","cutZero","discountPct","displayText","doorsill","expired","backgroundColor","buttonVisible","imgStyle","bonusPoints","steadCashIntegral","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 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'\nimport ModifyPass from '../password/ModifyPass'\nimport ConfirmPwd from '../password/confirmPwd'\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 selectedRowIndex: 0,\n isNotAutoFocus: true,\n returnAmount: 0,// 赊销退款金额\n confirmStatus: false //确认密码弹框\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 voucherRunningFast = false\n static contextTypes = {\n viewModel: PropTypes.object,\n stores: PropTypes.object,\n }\n\n currentInput = null;\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 this.store = !props.type ? stores.settlementVoucherStore : stores.settlementMemberStore;\n this.voucherRunningFast = localStore && (localStore.get('vocherRunningFast') == '1')\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 getIsReturn = () => {\n let dataModal = this.context && this.context.viewModel && this.context.viewModel.data;\n return dataModal.IdbusiType === 35 || dataModal.IdbusiType === 40 || dataModal.IdbusiType === 42; //40预售退货类型。 42赊销退货类型\n }\n\n //原单退货状态\n getBoriginReturn = () => {\n const boriginReturn = this.context && this.context.viewModel && this.context.viewModel.data && JSON.getCellValue(this.context.viewModel.data, \"IsOriginalReturn\");\n return boriginReturn || false;\n }\n\n //非原单退货状态\n getNotBoriginReturn = () => {\n let isReturn = this.getIsReturn();\n let boriginReturn = this.getBoriginReturn();\n return isReturn && !boriginReturn;\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 handleReadICard = () => {\n this.readRfCard();\n }\n\n updateInput=()=>{\n let {currentMode}=this.store.paymode;\n if(this.state.jfdxVisible &&currentMode && 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, returnAmount } = this.state;\n const { PayStyle } = enumController.getEnumOj();\n let newAmount = this.props.amount;\n if (this.props.type != 1) {\n const { IdbusiType } = this.context.viewModel.data;\n if (IdbusiType === 42) newAmount=-returnAmount;\n }\n this.store.init({\n context: this.props.type == 1 ? null : this.context,\n amounthandler: this.props.onHandleAmount,\n datasource: this.props.dataSource.Code_02,\n storeinfo: this.props.storeInfo,\n bquick: true,\n amount: newAmount,\n type: this.props.type,\n data: this.props.dto,\n payModeKey: currentKey,\n });\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), type})).then(result=>{\n if (result) {\n this.setState({\n settleDisabled: false\n })\n if (!type) {\n let count = this.handleShowPrototype();\n if (!isReturn && isAutoShowCouponWhenCash && count > 0) {\n this.setState({\n prototypeVisible: true,\n isNotAutoFocus: false\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 const { returnAmount } = this.state;\n let newAmount = this.props.amount;\n if (this.props.type != 1) {\n const { IdbusiType } = this.context.viewModel.data;\n if (IdbusiType === 42) newAmount=-returnAmount;\n }\n this.store.init({\n context: this.props.type == 1 ? null : this.context,\n amounthandler: this.props.onHandleAmount,\n datasource: this.props.dataSource.Code_02,\n storeinfo: this.props.storeInfo,\n bquick: false,\n amount:newAmount,\n type: this.props.type,\n data: this.props.dto,\n creditSalesVoucher: this.props.creditSalesVoucher,\n custVendorId: this.props.custVendorId,\n });\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 let { paymode, brefund, newStyle } = this.store;\n let boriginReturn = this.getBoriginReturn();\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 discountPrototypeTotalAmount = 0;\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.PromotionDetails && item.PromotionDetails.length > 0) {\n count++;\n }\n item.InventoryName = item.Inventory.Name;\n item.Discount = getRoundValue(item.RetailPrice - item.TaxPrice, pricePrecision);\n if (!item.IsPresent) {\n discountPrototypeTotalAmount += item.DetailDiscountAmount;\n item.TotalDiscount = item.DetailDiscountAmount;\n } else {\n item.TotalDiscount = 0;\n }\n //item.TotalDiscount = getFixedNumber(item.Discount * item.Quantity);\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(this.props.amount),\n discountPrototypeTotalAmount: getFixedNumber(discountPrototypeTotalAmount),\n discountRetailTotalAount: getFixedNumber(this.props.amount + parseFloat(discountPrototypeTotalAmount))\n })\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({fn: (data)=>this.isNoProductTip(data), type})).then(result => {\n if (result) {\n this.setState({\n settleDisabled: false\n })\n if (!type) {\n let count = this.handleShowPrototype();\n if (!isReturn && isAutoShowCouponWhenCash && count > 0) {\n this.setState({\n prototypeVisible: true,\n isNotAutoFocus: false\n })\n } else {\n this.payFun();\n }\n } else {\n this.payFun();\n }\n }\n })\n }\n\n settleZero=()=>{\n const that = this;\n //预售取货无需支付时省略弹框确认这一步\n let IdbusiType = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.IdbusiType;\n if(IdbusiType == 39){\n that.handleSettle(\"zero\");\n return;\n }\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\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 const returnType = this.getNotBoriginReturn();\n const { PayStyle } = enumController.getEnumOj();\n this.store.setCurrentMode(id, PayStyle.hyczk, append);\n this.connectRfCard();\n const memberId = this.store && this.store.member && this.store.member.ID;\n let memberdata1 = memberId && await this.store.updateCurrentMode(memberId, returnType);\n this.setState({ czkVisible: true });\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 const { PayStyle } = enumController.getEnumOj();\n if (!this.store.paymode.currentMode.storageCardNo) {\n const returnType = this.getNotBoriginReturn();\n await this.store.loadCzk(this.czkInput.input.value, returnType);\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.store.paymode.calcMemberBalance();\n this.handleCzk();\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 Keyboard.close();\n this.setInventoryFocus();\n }\n\n handleSetPwdCancel = () => {\n this.setState({\n showSetPwdModal: false\n })\n }\n\n handleSetModal = async () => {\n this.modifyPass && (await this.modifyPass.handleOk(this.handleCzkData, this.store,this.props.updateMemberInfo));\n }\n handleConfirmPwdModal = async () => {\n this.setState({\n confirmStatus: false\n })\n const curmode = this.store.paymode.currentMode;\n //密码校验\n const result= await this.store.validePwd({\n pwd: this.state.confirmPwd\n })\n if(result==\"\"){//成功\n //返回\n this.setCurrentFocusAndAddPay(curmode.paymentType, null, curmode.paymethodId);\n Promise.resolve()\n }else{\n this.setState({\n confirmStatus: true\n })\n Message.info(result);\n }\n }\n\n handleConfirmPwdCancel = () => {\n this.setState({\n confirmStatus: false\n })\n }\n\n getConfirmPwd = (value) => {\n this.setState({\n confirmPwd: value\n })\n }\n\n changeBtnDisabled = (value) => {\n this.setState({\n btnDissabled: value\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 //关闭弹框时,执行此方法,把焦点设定到商品录入框\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 if (!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 }, 300)\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 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.showCzkModal(-1);\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 if (!this.isDjqValidated(key)) { return };\n const { paymode, brefund, boriginReturn } = this.store;\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 { 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 const { type: storeType } = this.props\n if(!storeType && 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 returnType = this.getNotBoriginReturn();\n const { PayStyle } = enumController.getEnumOj();\n let reg = returnType ? /^[\\d.-]+$/g : /^[\\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 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 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 this.store.paymode.calcDjqCheckValue(q, this.store.dto);\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 const returnType = this.getNotBoriginReturn();\n let memberdata1 = await this.store.loadCzk(v, returnType);\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 isDjqValidated(key) {\n const { paymode } = this.store;\n const { PayStyle } = enumController.getEnumOj();\n if (key === PayStyle.djq && Math.Minus(paymode.received, paymode.amount) > 0) {\n Message.warn('实收金额已大于应收金额,不允许使用优惠券');\n return false;\n }\n return true;\n }\n\n onHotKeyClick1=(mode,index,boriginReturn,bookType)=>{\n if (!this.isDjqValidated(mode.paymentType)){ return };\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 boriginReturn = this.getBoriginReturn();\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 // 根据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 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 * @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 zIndex: 1007,\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\n settleCanceled=()=>{\n console.log('settlement--settleCanceled--调用清除数据==Focus==')\n this.props.clearVoucherData && this.props.clearVoucherData();\n this.cancelState();\n }\n\n settleSuccess = async (params) => {\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 { isFull } = this.store;\n const resp1 = await this.settleGiftOpenedInRunningFast()\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, type: settlementType } = _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 } else if (IdbusiType == 39 && received == 0){\n message = \"取货成功\"\n }\n // 收款的时候,drawerStore才消失\n if (settlementType === 2) {\n stores.drawerStore.hide();\n }\n if (params === 'onCreditReturn') {\n Message.success('退货成功,此单无须退款!')\n } else {\n window.__successModal = showSuccessModal(amount, received, charge, _this.props.onModalClose, isXianjin, message, resp1 && resp1.data, stores, IdbusiType, isFull, () => {\n _this.handleGuestShow(5)\n })\n }\n this.setState({ isXianjin: false })\n this.cancelState();\n }, 0)\n }\n // 极速模式下是否开启了支付有礼功能\n settleGiftOpenedInRunningFast = async () => {\n let resp = false;\n let isCheckGift = true\n if (this.voucherRunningFast) {\n const vocherPayGift = localStore && localStore.get('vocherPayGift')\n if (!vocherPayGift || vocherPayGift == 'false') {\n isCheckGift = false\n }\n }\n if (isCheckGift) {\n const { getSettleGift } = this.store;\n const { type } = this.props;\n if (!type) {\n try {\n // 获取支付成功后礼包情况\n resp = await getSettleGift();\n } catch(e) {\n console.log(\"获取支付礼包getSettleGift失败\");\n }\n }\n }\n return resp\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 { PayStyle } = enumController.getEnumOj();\n if (curmode.value > 0) {\n if (curmode.paymentType === PayStyle.hyczk) {\n if (curmode.cardTypeEnum === 'BALANCE_CARD') {\n !curmode.freePaymentPasswordStore && this.setState({\n confirmStatus: true\n });\n } else {\n curmode.isNeedPassword && this.setState({\n confirmStatus: true\n });\n }\n }\n }\n\n let pwdStatus = true;\n if (curmode.cardTypeEnum === 'BALANCE_CARD') {\n if (!curmode.freePaymentPasswordStore) {\n pwdStatus = false\n }\n } else {\n if (curmode.isNeedPassword) {\n pwdStatus = false\n }\n }\n\n if (curmode.paymentType !== PayStyle.hyczk || pwdStatus) {\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 handleUserInputs(promises)\n }\n }\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\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\n changefn=(e)=>{\n console.log(e)\n }\n\n setConfirmPwdValue = (value) => {\n this.setState({\n confirmPwd: value\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 handleBtnDebounced = 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 //预售下单时,启用了序列号管理和批号/有效期管理的商品,不支持快递和同城配送\n let isEnableSerialNumber = PosInitData(\"IsEnableSerialNumber\");\n let resultObj = this.context.viewModel.data.RetailDetails.find(o=>{\n return o.Inventory.IsSerialNumber && (o.Inventory.IsBatch || o.Inventory.IsQualityPeriod);\n });\n if(isEnableSerialNumber && resultObj && (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE')){\n return Message.error('启用了序列号管理和批号/有效期管理的商品,不支持快递和同城配送');\n }\n\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 // 极速模式错误校验\n\n const { productStore } = stores;\n const checkResult = await productStore.checkShouldSettlement();\n if(!checkResult) return false\n\n this.setState({\n bquick,\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 btnDebounced = async (type, bquick) => {\n const { type: settlementType, creditSalesVoucher = [], amount } = this.props;\n let notSelectableVoucherList = [];\n //赊销-未生成零售结算单的单据不能进行收款\n if(settlementType == 2){\n if(Number(amount) < 0){\n return Message.warn('所勾选零售单的欠款合计须大于等于0!')\n }\n notSelectableVoucherList = creditSalesVoucher.filter(o => o.SettleStatusEnum != 'SETTLED');\n if(notSelectableVoucherList.length > 0){\n ModalWraper.confirm({\n className: 'not-selectable-voucher',\n title: '以下零售单尚未生成零售结算单,不能进行收款',\n content: <ul>\n {\n notSelectableVoucherList.map(o=>{\n return (\n <li>{o.Code}</li>\n )\n })\n }\n </ul>,\n })\n return;\n }\n }\n if (this.props.type != 1) {\n const { IdbusiType, TotalTaxAmount = 0, ArrearsAmount = 0} = this.context.viewModel.data;\n //赊销原单退货\n if(IdbusiType === 42){\n //实际退款金额\n let returnAmount1 = Math.abs(TotalTaxAmount) - ArrearsAmount;\n this.setState({\n returnAmount: returnAmount1\n })\n //判断欠款金额\n if (returnAmount1 > 0){\n ModalWraper.confirm({\n className: 'tplus-confirm-modal',\n title: '退款',\n content: `本单须退款:${returnAmount1}元,本次退款金额=本次退货金额-该客户未收款金额`,\n onOk: () => {\n this.handleBtnDebounced(type, bquick);\n },\n onCancel() {\n\n },\n });\n } else {\n returnAmount1 = 0;\n const result = await this.store.commit(this.props.bTest, this.context.viewModel.data, this.context);\n if (result === true) {//成功\n this.settleSuccess('onCreditReturn');\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 }, 0)\n }\n }\n } else {\n this.handleBtnDebounced(type, bquick);\n }\n } else {\n this.handleBtnDebounced(type, bquick);\n }\n }\n\n onCzkChange = (v) => {\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 }\n\n czkKeyboardOnOk = (e) => {\n this.czkInput.input.blur();\n Keyboard.close();\n this.loadCzk(this.czkInput.input[\"value\"]);\n }\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 }\n if(!isKeyBorad){\n this.debounced=_debounce(()=>{this.addDjq()},2000);\n this.debounced();\n }\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\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\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': '1006'\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 bordered\n placement=\"rightBottom\"\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 &&\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 bordered\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 const { type } = this.props;\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 //type == 2 是赊销类型,赊销支付可低于应收\n let receivable = Number(paymode.receivable);\n let amount = Number(paymode.amount);\n let enabled = (receivable == 0 || (type == 2 && 0 < receivable && receivable < amount)) && thePaymodes.length>0;\n if(xj && xj.value!=0){\n enabled = receivable <= 0 && thePaymodes.length>0 && (Math.abs(receivable)<xj.value) || (type == 2 && 0 < receivable && receivable < amount);\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 ? 'bookPay' : '')\n })\n }\n </div>\n })}\n </CarouselTp>\n }\n\n prototypeDetailedClick = () => {\n this.handleShowPrototype();\n this.setState({\n prototypeVisible: true,\n isNotAutoFocus: 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, isNotAutoFocus} = this.state;\n\n let { paymode, brefund,newStyle } = this.store;\n let { type, amount, totalVariety, totalQuantity, isReturn, quantityDetail,memberDisabled, noIsMinAmount, creditSalesVoucher = [], } = this.props\n // 原单退货\n let boriginReturn = this.getBoriginReturn();\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\n // 单据模式\n let thePaymodes=newStyle?_filter(paymode.thePaymodes,(m)=>{\n if(IdbusiType == 39){\n return !(this.checkModeDisabled(m.paymentType,brefund,boriginReturn)&& parseFloat(m.value)==0) && m.paymentType != PayStyle.hyczk;\n }\n return !(this.checkModeDisabled(m.paymentType,brefund,boriginReturn)&& parseFloat(m.value)==0);\n }):paymode.thePaymodes;\n let { paymodes, settle, currentMode } =paymode;\n\n if (IdbusiType == 39){\n totalTaxAmount = stores.drawerStore.thisWaitPaidAmount;\n paymodes = _filter(paymodes, mode => { return mode.paymentType != PayStyle.hyczk}); //取货过滤掉储值\n }\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 const quickPay =boriginReturn ? [] :\n _filter(paymodes, (paymode) =>{\n if(IdbusiType == 39){\n return paymode.isQuick && paymode.paymentType != PayStyle.hyczk; //取货过滤掉储值\n } else {\n return paymode.isQuick;\n }\n });\n const productsIsEmpty = (!type && this.context.viewModel.data.RetailDetails.length == 0) || ((type==1 && parseFloat(amount || 0) <= 0) || memberDisabled || noIsMinAmount) || (type == 2 && creditSalesVoucher.length === 0);\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 && type != 2 &&\n _map(quickPay, (p, i) => {\n let iconclass = PayIcon2[p.paymentType] ? `color${p.paymentType}` : \"primary-color\";\n return (\n <Button\n className={classnames({ \"quick\": true, \"quick2\": type==1 })}\n key={`paymentType_${p.paymentType}`}\n onClick={() => { this.btnDebounced(p.paymentType, true) }}\n disabled={productsIsEmpty || (!type && this.checkModeDisabled(p.paymentType, (this.context.viewModel.data.TotalTaxAmount || 0 - this.context.viewModel.data.OnlinePaymentAmount || 0) < 0, boriginReturn))}\n >\n <div className={classnames({ [iconclass]: true, \"icon\": true })}>\n <Ticon type={PayIcon2[p.paymentType] || PayIcon2['default']} />\n </div>\n <div className=\"text\">\n {p.name.length > 8 ? _truncate(p.name, { length: 7, omission: '' }) + '...' : p.name}\n </div>\n </Button>)\n })\n }\n <Button key=\"settle\"\n className={classnames({ \"settle\": true, \"settle2\": type == 1,\"settleStorage\" :true ,'primary-btn': true })}\n onClick={() => { this.btnDebounced() }}\n disabled={productsIsEmpty}>\n {\n this.props.isMemberPoints ?\n '立即兑换' : this.props.isMemberPointsReturn ?\n '退货': ( IdbusiType == 39 && stores.drawerStore.thisWaitPaidAmount == 0 ) ?\n '取货' : type == 2 ?\n '收款' : settle.name\n }\n </Button>\n </div>\n\n\n {/* // 触屏模式复合结算 */}\n {!newStyle && <Drawer\n title=\"复合结算\"\n width=\"600px\"\n placement=\"right\"\n maskClosable\n closable={false}\n onClose={this.handleCancel}\n visible={this.state.visible}\n destroyOnClose={true}\n className={`settlement-wraper ${this.voucherRunningFast ? 'no-zoom' : null}`}\n style={{'zIndex': 1006}}\n >\n <div className= {`settlement ${hotKey.hotKeyBindClass('5')}`} style={{height: '100%', paddingBottom: '68px'}}>\n <div className={classnames({ \"toolbar bg-subsidiary-gray-color4\": true, \"carousel\": paymodes.length > carouselStart })}>\n {\n paymodes.length <= carouselStart &&\n <div>\n {\n _map(paymodes, (mode, index) => {\n return this.renderToolbtn(mode, index, 'bookPay')\n })\n }\n </div>\n }\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', height: 'calc(100% - 198px)'}}>\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, !type ? boriginReturn : null) }} 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 {!type && 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 && (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 !type && !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 {/* // 触屏模式储值结算 */}\n\n {/* // 单据模式的复合结算 */}\n {newStyle && <Drawer\n title=\"复合结算\"\n width=\"600px\"\n placement=\"right\"\n maskClosable\n closable={false}\n onClose={this.handleCancel}\n visible={this.state.visible}\n destroyOnClose={true}\n className={`settlement-wraper ${this.voucherRunningFast ? 'no-zoom' : ''}`}\n style={{'zIndex': 1006}}\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 && (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 !type && !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 = mindex;\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 hyczkFindIndex = _findIndex(thePaymodes, (m) => { return m.paymentType == PayStyle.hyczk; })\n const hyczkList = _filter(thePaymodes, (m) => { return m.paymentType == PayStyle.hyczk; })\n let lastStorageCardIndex = 0\n _map(thePaymodes, (m, i) => {\n if (m.paymentType === PayStyle.hyczk) lastStorageCardIndex = i\n })\n if ( mindex > 0 && hyczkList.length > 1 && mindex > lastStorageCardIndex) {\n hotkeyIndex = hotkeyIndex - hyczkList.length + 1\n }\n\n console.log(thePaymodes)\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 if (!type && 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 {\n !type ?\n (<span >{m && m.storageCardNo}</span>) :\n (<span >{m.member && m.member.cardNo}</span>)\n }\n <span className=\"fr\">{getFixedNumber(m.value)}</span>\n <span className=\"balance fr\">支付金额:</span>\n <br />\n {!type && 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 <Modal\n wrapClassName={`czk ${this.voucherRunningFast ? 'no-zoom' : ''} ${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 zIndex={1007}\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.voucherRunningFast ? 'no-zoom' : ''} ${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 zIndex={1007}\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 {/* 设置密码弹框 开始*/}\n <Modal\n wrapClassName={`djq ${hotKey.hotKeyBindClass('5', 'modify-password')} ${this.voucherRunningFast ? 'no-zoom' : ''} ${this.isHorizontalPad ? 'extraHeight' : ''}`}\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 zIndex={1007}\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 <ModifyPass changeBtnDisabled={this.changeBtnDisabled} passwordTitle='设置密码' ref={ref => this.modifyPass = ref} cardList={this.store.paymode.currentMode} cancelModal={this.handleSetPwdCancel}></ModifyPass>\n </Modal>\n {/* 确认密码弹框 开始*/}\n <Modal\n wrapClassName={`djq ${hotKey.hotKeyBindClass('5', 'confirmPwdWraper')} ${this.isHorizontalPad ? 'extraHeight' : ''}`}\n width=\"400px\"\n visible={this.state.confirmStatus}\n backdropClosable={false}\n destroyOnClose={true}\n footer={null}\n onCancel={this.handleConfirmPwdCancel}\n keyboard={false}\n centered={ !this.isHorizontalPad ? true : false}\n title='储值卡'\n zIndex={1007}\n footer={<div className=\"action\">\n <Button onClick={this.handleConfirmPwdCancel}>取消</Button>\n <Button type=\"primary\" onClick={this.handleConfirmPwdModal}>确定</Button>\n </div>}\n >\n <ConfirmPwd\n isLimit='yes'\n placeholder=''\n maxLength={6}\n labelName='储值余额密码'\n ok={this.handleConfirmPwdModal}\n getConfirmPwd={this.getConfirmPwd}\n params='pay'\n amount={this.store.paymode.currentMode && getFixedNumber(this.store.paymode.currentMode.value)}\n />\n </Modal>\n {/* 确认密码弹框 结束*/}\n {/* 代金券弹框 开始*/}\n <Modal\n wrapClassName={`djq ${this.voucherRunningFast ? 'no-zoom' : ''} ${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 zIndex={1007}\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 {/* 代金券弹框 结束*/}\n {/* 积分抵现弹框 开始*/}\n <Modal\n wrapClassName={`czk ${this.voucherRunningFast ? 'no-zoom' : ''} ${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 zIndex={1007}\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.steadCashIntegral)}</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 {/* 积分抵现弹框 结束*/}\n <PrototypeTableModal discount={\n {\n discountTotalAmount,discountRetailTotalAount,discountPrototypeTotalAmount,\n }\n } handleprototypeCancel={this.handleprototypeCancel} isHorizontalPad={this.isHorizontalPad} dataSource={dataSource} prototypeVisible={this.state.prototypeVisible} isNotAutoFocus={isNotAutoFocus}/>\n </div>\n );\n }\n}\n\nexport default Settlement;\n\n"]}