tplus-components-touch 3.53.6 → 3.53.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2203,9 +2203,6 @@ exports.default = SettlementStore;
|
|
2203
2203
|
var PayMode = exports.PayMode = (_class3 = function () {
|
2204
2204
|
//预订场景下,现场提货,且选项设置订金比例非100% or 取货最大补款数大于0时 为 true
|
2205
2205
|
function PayMode() {
|
2206
|
-
// this.amount=getFixedNumber(amount);
|
2207
|
-
// this.calcReserved();
|
2208
|
-
|
2209
2206
|
(0, _classCallCheck3.default)(this, PayMode);
|
2210
2207
|
this._counter = 0;
|
2211
2208
|
this.amount = 0;
|
@@ -2242,6 +2239,10 @@ var PayMode = exports.PayMode = (_class3 = function () {
|
|
2242
2239
|
_initDefineProp(this, 'setCouponNum', _descriptor15, this);
|
2243
2240
|
|
2244
2241
|
_initDefineProp(this, 'addDjqs', _descriptor16, this);
|
2242
|
+
|
2243
|
+
// this.amount=getFixedNumber(amount);
|
2244
|
+
// this.calcReserved();
|
2245
|
+
this.SettlementApi = _settlementApi2.default;
|
2245
2246
|
}
|
2246
2247
|
// @observable store = null;
|
2247
2248
|
//只是预订场景下,现场提货,且选项设置订金比例非100%时 为 true
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["tplus-components-touch/components/settlement/settlementStore.js"],"names":["t","i18n","getFixedT","SettlementStore","paymode","PayMode","params","localStore","get","cloudPrintArguments","setNewStyle","SettlementApi","event","type","isIntegralExchange","setPaymodes","updateEvent","context","amounthandler","datasource","storeinfo","bquick","amount","data","payModeKey","amountHandler","dataSource","storeInfo","dto","viewModel","global","DealSingleRowAmountSettingProcessorBlock","execute","enumController","getEnumOj","PayStyle","isQuickCash","xianjin","DealAmountSettingProcessorBlock","member","Member","isNotFullBook","isNotFullOnlyBook","value","TotalTaxAmount","getLoginInfo","PreSellOrBook","PercentageWhenBook","IdbusiType","DistributionMode","Id","bookMaxValue","PrepaidAmount","BuyerPayFreight","stores","drawerStore","thisWaitPaidAmount","totalWaitPaidAmount","brefund","setAmount","OnlinePaymentAmount","clean","boriginReturn","JSON","getCellValue","initByOriginReturn","newStyle","setModes","paymodes","p","thePaymodes","mode","paymentType","addPay","length","changeValue","paymethodId","platform","isNewRetailBCPos","console","log","checkList","RetailPaymentDetails","detail","themode","IdsettleStyle","SettleStyle","Code","hyczk","ModalWraper","info","title","content","okText","okType","newmode","genNewMode","Amount","authCode","PaymentCode","steadCashIntegral","SteadCashIntegral","overchargesAmount","OverchargesAmount","thirdPaymentReturnInfo","ThirdPaymentReturnInfo","currentMode","djq","RetailCouponDetails","displayText","promoRuleId","dateMount","promoMethodEnum","discountPct","promoId","id","addDjq","CouponCode","CouponTitle","ReductionAmount","EnableAmount","LastTS","Idmember","push","RetailStorageDetails","balanceAmount","storageCardNo","meStorageCardId","DynamicPropertyKeys","forEach","ele","index","DynamicPropertyValues","BalanceStorage","StoragePaymentAmount","StorageCardNo","MeStorageCardId","Password","balance","calcReserved","key","bookType","currentFocus","jfdx","m","splice","addPayDirectly","CalculdateIntegralSteadCash","IntegralSteadCashParams","memberId","BalanceTaxAmount","then","result","integralCashOverOrderAmount","isIntegralCashOverOrderAmount","user","options","v","returnType","errinfo","isOnlyEnabled","getCardInfoByCardNo","CardTypeEnum","updateCardInfo","handleCzkData","validateRetailStorageCard","result1","data1","parse","enable","Message","warn","disableReason","promoCouponCode","name","IsEnable","nominalAmount","doorsill","checked","IsRepelWithPoints","UMemberID","expired","couponCategoryEnum","unCheck","count","code","djqs","calcDjqValue","append","afterSetCurrentMode","parseFloat","Math","Minus","setExchangable","MaxAmount","perIntegral","cashAmount","checkReceived","maxamount","notwithm","isQuick","receivable","max","ID","counter","exchangeRate","calDirection","thridPayment","value2","value3","order","card","virtualPay","setMaxAmount","sum","q","Add","getViewItem","availableAmount","shouldSetValue","blur","isNaN","pay","pos","undefined","StorageMutiSettleDetails","giveChange","abs","StorageAmount","GiveChange","idSettleStyle","IdbankAccount","idBankAccount","DataSource","findStorageBillValidate","bTest","resolve","status","paylist","filter","ret","returnMsg","repeatStorageModal","state","saveMember","ret1","offlineSys","generatorCode","save","ret2","retailSequenceUpload","error","thirdPayRefund","resp","DoNameList","DO_STORAGE_PRINT","TradeType","ThirdPaymentInfo","IPMSG","window","localStorage","dtoParams","payList","payment","tradeType","PAY","REFUND","thirdPay","msg","INewRetailMemberStorageSave","handlePrint","czkSum","IsOrigReturn","OrigAmount","Idcurrency","idCurrency","ExchangeRate","Name","IdMember","PromotionId","PromotionRuleId","PromoCouponAllocatedId","RetailTypeEnum","prepaidAmount","reduce","c","item","fullPayment","RetailDetails","TaxAmount","isFull","checkIntegralExchangeReturn","ReturnSourceId","cut","RetailOms","retailPosSettle","cip","query","longitude","latitude","setDtoID","billID","vType","trade","cto","removeThirdPayDto","VoucherType","Payment","reject","nativeMs","setIpcRendererMethod","res","Result","setTimeout","duration","QuerySettleResult","RetailCode","Flag","val","exp","Date","setTime","endOf","valueOf","document","cookie","toGMTString","cookies","split","cookieObj","cook1","getAllCookies","cook2","message","memberStorageId","hasOwnProperty","cardTypeEnum","cardStatusEnum","checkPaymentPasswordParams","checkPaymentPasswordId","md5Password","User","pwdEncrypt","pwd","cardType","password","checkPaymentPassword","setCookie","CheckoutMemberPassword","Success","isCanSettleOnQuickKey","setCanSettleOnQuickKey","total","cur","String","isNullOrEmpty","nextInput","querySelector","select","getCouponList","Differentiate","couponApplyRule","CouponApplyRule","SHOWN_BY_CUSTOMER","coupon_code","promoVoucher","clearDjqs","reCalculationDjqs","boName","voucherId","onlinePaymentAmount","promoLinks","totalAmountWithTax","redBlueFlagEnum","meMemberId","storeFactorId","Idstore","voucherDetailList","detailDTO","uuid","detailBoName","voucherDetailId","productId","Idinventory","uomId","Idunit","productSpecId","ProductSpecId","isManualFreeGift","IsPresent","isListPriceIncludingTax","TaxFlag","IsManualChangePrice","bookingQuantity","BookingQuantity","listPrice","netAmountWithTax","Multiply","Quantity","taxRate","TaxRate","quantity","amountWithTax","RetailAmount","PromotionDetails","promotion","IdSalesPromotionDTO","findUsefulCouponPromoList","element","couponCode","tieredAmountResult","fromDate","condValue","promoDiscount","COUPON","SN","calcDjqCheckValue","getSettleGift","executeRightsForPos","getRefWareHouseList","checkCoupon","sn","request","Uid","uid","StoreCode","Inventories","d","IdInventory","Inventory","IdUnit","FreeItem0","FreeItem1","FreeItem2","FreeItem3","FreeItem4","FreeItem5","FreeItem6","FreeItem7","FreeItem8","FreeItem9","InventoryClassCodes","InventoryClass","CheckCoupon","Title","ReduceAmount","StartAmount","confirm","className","zIndex","onOk","onCancel","GetNewIntegralExchange","param","refVoucherId","expireIntegral","cancelable","observable","action","voucherDefaultPosMode","newPass","newPassConfirm","idstore","setWalletPayPassword","oldPassword","newPassword","successful","_this","IdStore","GetUmemberDTO","updateMemberStorageCardNo","WalletEnabled","getCardInfoByMemberId","ctMode","cardNo","_counter","onlineamount","settle","hotKey","a","o","received","walletEnabled","CardStatusEnum","isNeedPassword","IsNeedPassword","rawbalance","freePaymentPasswordStore","FreePaymentPasswordStore","q1","useLimitPerOrder","qList","i","min","djq1","addDjqs","setCouponNum","ceil","v1","floor","isHorizontalPad","isHorizontalSunMi","isMobileEnvironment","settleStyleType","memberStoreCode","settlementCode","GetNewStoreSettleStyles","modes","settleLists","SettleStyles","isDefault","IsDefaultSettleStyle","QuickSettleStyles","orderBy","offlineDisable","IdSettleStyle","IdBankAccount","Currency","CalDirection","VirtualPay","couponNum","MemberType","CardCode","needPwd","IsNeedPwd","NeedModifyPassword","bonusPoints","BalanceIntegral","exchangable"],"mappings":"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","file":"settlementStore.js","sourcesContent":["import { observable, computed, action, autorun, runInAction } from 'mobx'\nimport { stores, i18n, localStore, nativeMs } from 'mutants-microfx';\nimport _find from 'lodash/find';\nimport _remove from 'lodash/remove';\nimport _each from 'lodash/each';\nimport _map from 'lodash/map';\nimport _join from 'lodash/join';\nimport _trim from 'lodash/trim';\nimport _filter from 'lodash/filter';\nimport _findIndex from 'lodash/findIndex';\nimport _findLastIndex from 'lodash/findLastIndex';\nimport _findKey from 'lodash/findKey';\nimport { PosInitData } from 'tplus-poslogin';\nimport { getFixedNumber, stopPropagation } from './utils'\nimport {ccApi,tApi, User} from 'tplus-api';\nimport _clonedeep from 'lodash/cloneDeep';\nimport Message from '../message';\nimport { platform,enumController } from 'mutants-util';\nimport { printDispatch,DoNameList,ModalWraper } from 'tplus-components-touch'\nimport moment from \"moment\";\nimport _reduce from 'lodash/reduce';\nimport { Card } from 'antd';\nimport SettlementApi from './settlementApi';\n\nconst t = i18n.getFixedT(null, 'newretail');\n\nexport default class SettlementStore {\n paymode = null\n dto=null\n dtoParams = null\n member=null\n brefund=false\n context\n bquick=false;\n amountHandler\n dataSource\n storeInfo\n updateEvent\n type\n boriginReturn=false\n @observable newStyle=true //type==2\n billID\n isFull = true; // 预售都是全款;预订是否全款,在点击确认支付时计算订金和商品金额计算得出\n\n isCanSettleOnQuickKey = true;\n\n constructor(){\n this.paymode= new PayMode()\n let params = localStore && localStore.get('cloudPrintArguments');\n if (params) this.cloudPrintArguments = params;\n this.setNewStyle();\n this.SettlementApi = SettlementApi\n }\n\n setCanSettleOnQuickKey = (value) => {\n this.isCanSettleOnQuickKey = value;\n }\n\n @action\n setNewStyle = () => {\n const voucherDefaultPosMode = localStore && localStore.get('voucherDefaultPosMode') || 'touch'\n this.newStyle = voucherDefaultPosMode=='voucher';\n }\n\n initPaymodes(event,type,isIntegralExchange){\n this.isIntegralExchange = isIntegralExchange;\n this.paymode.setPaymodes(type,isIntegralExchange);\n this.updateEvent=event;\n }\n\n init(context,amounthandler,datasource,storeinfo,bquick,amount,type,data,payModeKey){\n this.setNewStyle();\n this.type=type;\n if(context){\n this.context=context;\n this.amountHandler=amounthandler;\n this.dataSource=datasource;\n this.storeInfo=storeinfo;\n this.dto=context.viewModel.data;\n runInAction(()=>{\n // 单品金额抹零\n if (global.DealSingleRowAmountSettingProcessorBlock) {\n global.DealSingleRowAmountSettingProcessorBlock.execute(this.dto);\n }\n const { PayStyle } = enumController.getEnumOj();\n const isQuickCash = bquick && payModeKey == PayStyle.xianjin;\n\n // 成交金额抹零\n if (global.DealAmountSettingProcessorBlock) {\n global.DealAmountSettingProcessorBlock.execute(this.dto,isQuickCash);\n }\n });\n // this.member=context.stores && context.stores.memberStore && context.stores.memberStore.member;\n this.member=this.dto.Member;//stores.selectMemberStore.selectMemberInfo;\n\n this.paymode.isNotFullBook = false;\n this.paymode.isNotFullOnlyBook = false;\n //预订按比例收取订金处理\n let value = this.dto.TotalTaxAmount;\n const { PreSellOrBook, PercentageWhenBook } = this.getLoginInfo();\n const { IdbusiType, DistributionMode } = this.dto || {};\n if(IdbusiType == 38 && PreSellOrBook == 'BOOK' && PercentageWhenBook < 100 && (!DistributionMode.Id || DistributionMode.Id == 'ON_SITE_PICKUP')){\n this.paymode.bookMaxValue = value;\n this.paymode.isNotFullBook = true;\n this.paymode.isNotFullOnlyBook = true;\n value = value * PercentageWhenBook / 100;\n }\n if (IdbusiType == 38 && PreSellOrBook == 'BOOK'){\n runInAction(()=>{\n this.dto.PrepaidAmount = value;\n });\n }\n //预订计算快递或同城配送运费\n if (IdbusiType == 38 && PreSellOrBook != 'DISABLED' && (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE')){\n value += this.dto.BuyerPayFreight || 0;\n }\n //预订取货应补款金额\n if (IdbusiType == 39){\n value = stores.drawerStore.thisWaitPaidAmount;\n if(stores.drawerStore.totalWaitPaidAmount > 0){\n this.paymode.isNotFullBook = true;\n this.paymode.bookMaxValue = stores.drawerStore.totalWaitPaidAmount;\n }\n }\n\n this.brefund=this.paymode.setAmount( value ,this.dto.OnlinePaymentAmount );\n }else{\n this.brefund=this.paymode.setAmount( amount ,0 );\n this.dto=data;\n }\n this.paymode.clean();\n\n //this.dto.TotalTaxAmount<0;\n this.bquick=!!bquick;\n this.boriginReturn=JSON.getCellValue(this.dto, \"IsOriginalReturn\");\n if(this.boriginReturn){\n this.initByOriginReturn();\n }\n if(this.newStyle){\n this.setModes();\n }\n }\n\n setModes(){\n _each(this.paymode.paymodes,(p)=>{\n if(_findIndex(this.paymode.thePaymodes,(mode)=>{return p.paymentType==mode.paymentType})==-1){\n this.addPay(p.paymentType);\n }\n });\n if(!this.boriginReturn && this.paymode.thePaymodes.length>0){\n this.changeValue(this.paymode.thePaymodes[0].paymethodId,0,true);\n }\n }\n\n amountChanged(amount){\n if(this.type==1){\n this.brefund=this.paymode.setAmount( amount ,0 );\n }\n\n }\n\n @action queryPwd = (newPass, newPassConfirm) => {\n if (!newPass || !newPassConfirm) {\n return Message.warn('您还有未填写项');\n }\n if (newPass !== newPassConfirm) {\n return Message.warn('您两次输入的密码不一致');\n }\n let idstore = PosInitData('storeID');\n return this.SettlementApi.setWalletPayPassword({\n Idstore: idstore,\n meMemberId: this.paymode.currentMode.memberId,\n oldPassword: null,\n newPassword: User.pwdEncrypt(newPassConfirm),\n dataSource:\"POS\"\n }).then((resp) => {\n if (resp.successful) {\n return true;\n }\n });\n }\n\n @action\n initByOriginReturn(){\n const { PayStyle } = enumController.getEnumOj();\n const { isNewRetailBCPos } = platform || {};\n console.log(this.dto, 'dto==========');\n this.paymode.checkList = [];\n _each(this.dto.RetailPaymentDetails,(detail)=>{\n let themode=_find(this.paymode.paymodes,{'idSettleStyle':detail.IdsettleStyle});\n if (detail.SettleStyle.Code === PayStyle.hyczk && !themode) {\n ModalWraper.info({\n title: '温馨提示',\n content: '没有储值结算方式,请在后台添加储值余额结算方式。',\n okText:'确定',\n okType:'primary'\n });\n }\n if(themode && themode.paymentType && themode.paymentType!=PayStyle.hyczk){\n let newmode={\n ...this.genNewMode(themode.paymentType,false,detail.Amount),\n authCode:detail.PaymentCode,\n steadCashIntegral:detail.SteadCashIntegral,\n overchargesAmount:detail.OverchargesAmount,\n boriginReturn:true,\n thirdPaymentReturnInfo: detail.ThirdPaymentReturnInfo\n };\n this.paymode.currentMode=newmode;\n if(themode.paymentType==PayStyle.djq){\n _each(this.dto.RetailCouponDetails,(djq)=>{\n if (isNewRetailBCPos) {\n const { displayText, promoRuleId, dateMount, promoMethodEnum, discountPct, promoId, id } = djq || {};\n this.addDjq(djq.CouponCode, djq.CouponTitle, true, null,djq.ReductionAmount, djq.EnableAmount, djq.LastTS, true, false,\n this.dto.Idmember,\n dateMount,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n null,\n id,\n true);\n return;\n }\n this.addDjq(djq.CouponCode, djq.CouponTitle, true, null, djq.ReductionAmount, djq.EnableAmount, djq.LastTS, true, false,);\n })\n }\n this.paymode.thePaymodes.push(newmode)\n }\n })\n _each(this.dto.RetailStorageDetails,(detail)=>{\n let balanceAmount = null;\n let storageCardNo = null;\n let meStorageCardId = null;\n detail.DynamicPropertyKeys.forEach((ele, index) => {\n if (ele === \"mestoragecard\") {\n balanceAmount = detail.DynamicPropertyValues[index].BalanceStorage - detail.StoragePaymentAmount;\n storageCardNo = detail.DynamicPropertyValues[index].StorageCardNo;\n meStorageCardId = detail.DynamicPropertyValues[index].MeStorageCardId;\n }\n })\n let newmode={\n ...this.genNewMode(PayStyle.hyczk,false,detail.StoragePaymentAmount),\n member:new Member(detail.Member ? detail.Member :null),\n authCode:detail.Password ? detail.Password: null,\n balance:balanceAmount,\n boriginReturn:true,\n meStorageCardId: meStorageCardId ? meStorageCardId : detail.MeStorageCardId,\n storageCardNo: storageCardNo ? storageCardNo : detail.StorageCardNo\n };\n this.paymode.thePaymodes.push(newmode)\n })\n this.paymode.calcReserved();\n }\n\n clean(){\n this.bquick=false;\n this.paymode.clean();\n }\n\n @action quickSettle(key){\n this.addPay(key,null, true);\n }\n\n //outer call\n //(type===PayStyle.hyczk || type===PayStyle.jfczk || type===PayStyle.jfdx || type===PayStyle.djq)\n @action changeFocusAndAddPay(type, bookType){\n const { PayStyle } = enumController.getEnumOj();\n this.paymode.currentFocus=type;\n if(this.paymode.currentMode){\n if(type==PayStyle.jfdx){\n if(this.newStyle){\n let index=_findIndex(this.paymode.thePaymodes,(m)=>{return m.paymentType==PayStyle.jfdx});\n this.paymode.thePaymodes.splice(index,1,this.paymode.currentMode);\n this.paymode.calcReserved();\n }else{\n this.addPayDirectly(this.paymode.currentMode);\n }\n\n //抵现积分\n this.SettlementApi.CalculdateIntegralSteadCash({IntegralSteadCashParams:{\n Idmember:this.paymode.currentMode.memberId,\n TotalTaxAmount:this.paymode.amount,\n BalanceTaxAmount: this.paymode.currentMode.value,\n }}).then((result)=>{\n // this.paymode.currentMode.steadCashIntegral=result.Integral;\n // this.paymode.currentMode.perIntegral=result.perIntegral;\n // this.paymode.currentMode.cashAmount=result.cashAmount;\n this.paymode.currentMode.integralCashOverOrderAmount=result.isIntegralCashOverOrderAmount;\n this.paymode.currentMode.overchargesAmount=result.Amount-this.paymode.currentMode.value;\n });\n }else{\n this.addPayDirectly(this.paymode.currentMode);\n }\n }else{\n this.addPay(type, bookType);\n }\n }\n\n // 设置密码后更新会员信息\n @action updateMemberInfo = async (_this) => {\n const { IdStore, StoreCode } = this.getLoginInfo();\n const resp = await this.SettlementApi.GetUmemberDTO({ Idmember: this.member.ID, IdStore, StoreCode });\n _this.member = resp;\n _this.paymode.updateMemberStorageCardNo(resp.StorageCardNo, resp.WalletEnabled);\n return Promise.resolve(resp);\n }\n \n // 查看会员卡信息\n @action updateCurrentMode = async (memberId, returnType) => {\n let isOnlyEnabled = returnType ? false : true; //非原单退货为false,其他true\n // 查看会员卡信息\n let result = await this.SettlementApi.getCardInfoByMemberId(memberId, isOnlyEnabled)\n if (result && result.data.length) {\n if (result.data.length === 1) {\n this.paymode.updateCardInfo(result.data[0]);\n return result.data;\n } else {\n if (result.data && result.data.length === 1) {\n this.paymode.updateCardInfo(result.data[0]);\n return result.data;\n } else if (result.data && result.data.length > 1) {\n return result.data;\n } else {\n Message.warn('没有可用储值卡!');\n return false;\n }\n }\n }\n }\n\n @action updateCardInfo = async () => {\n const ctMode = this.paymode && this.paymode.currentMode;\n let cardNo = ctMode && ctMode.storageCardNo;\n let result = await this.SettlementApi.getCardInfoByCardNo(cardNo)\n this.paymode.updateCardInfo(result && result.data);\n }\n\n getLoginInfo() {\n return stores.user.options.get('loginInfo');\n }\n\n handleCzkData = (m) => {\n if(!m || !m.StorageCardNo){\n runInAction(()=>{this.paymode.currentMode.errinfo=\"无效的会员卡号\";});\n }\n else{\n runInAction(()=>{\n this.paymode.currentMode.errinfo=\"\";\n this.paymode.currentMode.memberId = m.ID;\n this.paymode.currentMode.value=getFixedNumber(this.brefund?this.paymode.receivable:Math.max(this.paymode.receivable,0));\n this.updateEvent();\n let message='';\n const sum = _reduce(this.paymode.thePaymodes, (total, cur) => total + cur.value, 0)\n // 对于卡不用判断会员的一些信息\n // if (global.CheckMemberStorageProcessorBlock ) {\n // message= CheckMemberStorageProcessorBlock.execute(m);\n // }\n if (!String.isNullOrEmpty(message)) {\n this.paymode.currentMode.errinfo=message;\n }\n else if(this.checkReceived(this.paymode.currentMode,\"balance\")){\n this.paymode.currentMode.errinfo=\"余额不足\";\n }else if(this.paymode.amount>0 && parseFloat(this.paymode.amount) !== sum && this.paymode.currentMode.value==0){\n this.paymode.currentMode.errinfo=\"实收金额必须录入\";\n } else {\n // 查询成功后将焦点移入下一个输入框\n setTimeout(() => {\n const nextInput = document.querySelector('.czk .received .input');\n nextInput && nextInput.select();\n }, 300)\n }\n });\n }\n }\n loadCzk(v, returnType) {\n if (_trim(v) === \"\") {\n runInAction(() => {\n this.paymode.currentMode.errinfo = \"请输入储值卡\";\n });\n return;\n }\n let isOnlyEnabled = returnType ? false : true; //非原单退货为false,其他true\n return this.SettlementApi.getCardInfoByCardNo(v, isOnlyEnabled)\n .then(async (result) => {\n let data = result.data;\n let m = (data && data.length && data[0]);\n if (result && result.data.length) {\n if (result.data.length === 1) {\n if (m.CardTypeEnum === 'BALANCE_CARD') {\n this.paymode.updateCardInfo(m);\n this.handleCzkData(m);\n return result.data;\n } else {\n // 校验储值卡是否可用\n await this.SettlementApi.validateRetailStorageCard({dto:this.dto,meStorageCardId:m.MeStorageCardId})\n .then((result1) => {\n let data1 = result1.data ? JSON.parse(result1.data)[0] : {};\n if (data1.enable) {\n this.paymode.updateCardInfo(m);\n this.handleCzkData(m)\n return result1.data;\n } else {\n Message.warn(data1.disableReason);\n }\n })\n }\n } else {\n if (result.data && result.data.length === 1) {\n this.paymode.updateCardInfo(result.data[0]);\n return result.data;\n } else if (result.data && result.data.length > 1) {\n return result.data;\n } else {\n Message.warn('没有可用储值卡!');\n return false;\n }\n }\n }\n })\n }\n getCouponList = coupon_code => {\n const { PayStyle, Differentiate } = enumController.getEnumOj();\n const couponApplyRule = PosInitData('CouponApplyRule');\n const { CouponApplyRule } = enumController.getEnumOj();\n if((couponApplyRule == CouponApplyRule.SHOWN_BY_CUSTOMER && !!coupon_code) || couponApplyRule != CouponApplyRule.SHOWN_BY_CUSTOMER){\n let dto = this.dto;\n let promoVoucher = {};\n this.paymode.clearDjqs();\n this.paymode.reCalculationDjqs();\n promoVoucher.coupon_code = coupon_code || \"\";\n promoVoucher.boName = \"Retail\";\n promoVoucher.voucherId = dto.ID;\n let onlinePaymentAmount=0;\n if(dto.OnlinePaymentAmount)\n {\n onlinePaymentAmount=dto.OnlinePaymentAmount;\n }\n promoVoucher.promoLinks = _filter(this.paymode.currentMode.djqs,djq=>djq.checked);\n promoVoucher.totalAmountWithTax =Math.Minus(dto.TotalTaxAmount,onlinePaymentAmount);\n promoVoucher.redBlueFlagEnum = \"BLUE\";\n promoVoucher.meMemberId = dto.Idmember;\n promoVoucher.storeFactorId = dto.Idstore;\n promoVoucher.voucherDetailList = [];\n dto.RetailDetails.forEach(item => {\n let detailDTO = {};\n detailDTO.uuid = item.Code;\n detailDTO.detailBoName = \"RetailDetail\";\n detailDTO.voucherDetailId = item.ID;\n detailDTO.productId = item.Idinventory;\n detailDTO.uomId = item.Idunit;\n detailDTO.productSpecId=item.ProductSpecId;\n detailDTO.isManualFreeGift = item.IsPresent;\n detailDTO.isListPriceIncludingTax = item.TaxFlag || true;\n detailDTO.IsManualChangePrice = item.IsManualChangePrice;\n // if(detailDTO.IsManualChangePrice)//如果是手工改价\n // {\n // detailDTO.listPrice = item.TaxPrice;\n // detailDTO.netAmountWithTax = item.TaxAmount;\n // }\n // else\n // {\n let bookingQuantity=0;\n if(item.BookingQuantity)\n {\n bookingQuantity=item.BookingQuantity;\n }\n detailDTO.listPrice = JSON.getCellValue(item, \"listPrice\");\n detailDTO.netAmountWithTax = Math.Multiply(detailDTO.listPrice,Math.Minus(item.Quantity,bookingQuantity));//item.TaxAmount;\n //}\n detailDTO.taxRate = item.TaxRate;\n detailDTO.quantity = item.Quantity;\n\n detailDTO.amountWithTax = item.RetailAmount;\n // 促销 start\n if(item.PromotionDetails && item.PromotionDetails.length != 0){\n let promoLinks = [];\n item.PromotionDetails.forEach((promotion)=>{\n promoLinks.push({\n promoId:promotion.IdSalesPromotionDTO,\n promoRuleId:promotion.PromotionRuleId\n })\n })\n if(promoLinks.length != 0) detailDTO.promoLinks = promoLinks;\n }\n // 促销 end\n promoVoucher.voucherDetailList.push(detailDTO);\n });\n return this.SettlementApi.findUsefulCouponPromoList(promoVoucher)\n .then((result)=>{\n if(result && result.length != 0 ){\n result.forEach((element)=>{\n const { couponCode, name, tieredAmountResult, fromDate , dateMount , promoMethodEnum , discountPct, nominalAmount,promoId,id} = element || {};\n const { condValue, promoDiscount,displayText,promoRuleId, couponCategoryEnum } = tieredAmountResult\n if (result.IsRepelWithPoints && _find(this.paymode.thePaymodes, (themode) => { return themode.paymentType == PayStyle.jfdx; })) {\n Message.error(`${Differentiate.COUPON}(${result.SN})不可与积分一起使用`);\n }\n else {\n let IsEnable = (couponCategoryEnum === 'RIGUP' || couponCategoryEnum === 'UN_MATCH' || couponCategoryEnum === \"PREPARING\" || couponCategoryEnum === 'PROMO_LIMITED' || couponCategoryEnum === 'COUPON_CONFLICT') ? false : true ;\n this.addDjq(\n couponCode,\n name,\n IsEnable,\n promoMethodEnum == \"CASH_COUPON\" && nominalAmount,\n promoDiscount,\n condValue,\n null,\n false,\n !result.IsRepelWithPoints,\n dto.Idmember,\n dateMount,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n couponCategoryEnum,\n id,\n true, 1)\n }\n })\n if(promoVoucher.coupon_code){\n this.paymode.calcDjqCheckValue(this.paymode.currentMode.djqs[0], this.dto, 'single')\n }\n }else{\n if (promoVoucher.coupon_code) {\n Message.info(`${Differentiate.COUPON}号不存在!`);\n this.getCouponList();\n } else {\n Message.info(`没有找到可使用的${Differentiate.COUPON}!`)\n }\n }\n })\n }\n }\n\n getSettleGift = () => {\n return this.SettlementApi.executeRightsForPos(this.billID)\n }\n\n getRefWareHouseList = () => {\n return this.SettlementApi.getRefWareHouseList();\n }\n\n checkCoupon = async (sn) => {\n let { isNewRetailBCPos } = platform || {};\n if (isNewRetailBCPos) {\n return await this.getCouponList(sn, 'sinlge');\n } else {\n const { PayStyle, Differentiate } = enumController.getEnumOj();\n const params = {request:{\n Uid:this.paymode.currentMode.member.uid || '',\n SN:sn,\n StoreCode:this.dto.Idstore,\n Inventories:_map(_filter(this.dto.RetailDetails,(d)=>{return d.Quantity>0 && !d.IsPresent}),(detail)=>{return {\n IdInventory:detail.Inventory.ID,\n IdUnit:detail.Idunit,\n Code:detail.Inventory.Code,\n FreeItem0:JSON.getCellValue(detail,\"freeitem0\"),\n FreeItem1:JSON.getCellValue(detail,\"freeitem1\"),\n FreeItem2:JSON.getCellValue(detail,\"freeitem2\"),\n FreeItem3:JSON.getCellValue(detail,\"freeitem3\"),\n FreeItem4:JSON.getCellValue(detail,\"freeitem4\"),\n FreeItem5:JSON.getCellValue(detail,\"freeitem5\"),\n FreeItem6:JSON.getCellValue(detail,\"freeitem6\"),\n FreeItem7:JSON.getCellValue(detail,\"freeitem7\"),\n FreeItem8:JSON.getCellValue(detail,\"freeitem8\"),\n FreeItem9:JSON.getCellValue(detail,\"freeitem9\"),\n }}),\n // inventoryCodes:_join(_map(this.dto.RetailDetails,(detail)=>{return detail.Inventory.Code;}),','),\n InventoryClassCodes:_join(_map(_filter(this.dto.RetailDetails,(d)=>{return d.Quantity>0}),(detail)=>{return (detail.Inventory.InventoryClass||{Code:''}).Code;}),','),\n Amount:this.paymode.amount\n }}\n return this.SettlementApi.CheckCoupon(params)\n .then((result)=>{\n if(_find(this.paymode.currentMode.djqs,(djq)=>{return djq.code==result.SN})){\n Message.info(`${Differentiate.COUPON}已添加`);\n }else if(result.IsRepelWithPoints && _find(this.paymode.thePaymodes,(themode)=>{return themode.paymentType==PayStyle.jfdx;})){\n Message.error(`${Differentiate.COUPON}(${result.SN})不可与积分一起使用`);\n }\n else{\n this.addDjq(\n result.SN,\n result.Title,\n result.ReduceAmount,\n result.StartAmount,\n result.LastTS,\n false,\n !result.IsRepelWithPoints,\n result.UMemberID)\n }\n\n })\n }\n }\n @action addDjq(\n promoCouponCode,\n name,\n IsEnable,\n nominalAmount,\n amount,\n doorsill,\n LastTS,\n checked,\n IsRepelWithPoints,\n UMemberID,\n expired,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n couponCategoryEnum,\n id,\n unCheck,count\n ){\n let djq={\n code: promoCouponCode,\n promoCouponCode,\n name,\n IsEnable,\n nominalAmount,\n amount,\n doorsill,//:\"无门槛\"\n LastTS,\n checked,\n IsRepelWithPoints,\n UMemberID,\n expired, //还剩多少过期\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n couponCategoryEnum,\n id,\n count: (count === 1 && (couponCategoryEnum === 'RIGUP' || couponCategoryEnum === 'UN_MATCH' || couponCategoryEnum === \"PREPARING\" || couponCategoryEnum === 'PROMO_LIMITED' || couponCategoryEnum === 'COUPON_CONFLICT') ? 1 : null)\n };\n this.paymode.currentMode.djqs.push(\n djq\n );\n // let copyData = _clonedeep(this.data[targetIndex]);\n !unCheck && !this.boriginReturn && this.paymode.calcDjqValue(djq);\n }\n\n setCurrentMode(id,type,append){\n const { PayStyle } = enumController.getEnumOj();\n const mode=_find(this.paymode.thePaymodes,{paymethodId:id});\n if(mode){\n this.paymode.currentMode=mode;\n if(this.newStyle){\n this.afterSetCurrentMode(type);\n }\n }else{\n this.paymode.currentMode=this.genNewMode(type,append);\n this.afterSetCurrentMode(type);\n }\n }\n \n afterSetCurrentMode(type){\n const { PayStyle } = enumController.getEnumOj();\n if(type==PayStyle.djq){\n this.paymode.calcDjqValue();\n }else if(type==PayStyle.jfdx){\n //获取可兑换的金额\n if(this.newStyle){\n const themode=_find(this.paymode.thePaymodes,{paymentType:PayStyle.jfdx});\n if(themode && parseFloat(themode.value||0)!=0){\n this.paymode.currentMode.value=themode.value;\n }\n }\n\n //积分抵现不包含运费\n let BuyerPayFreight = this.dto.BuyerPayFreight;\n let DistributionMode = this.dto.DistributionMode;\n let IdbusiType = this.dto.IdbusiType;\n const { PreSellOrBook, PercentageWhenBook } = this.getLoginInfo();\n let value = 0;\n if((DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && BuyerPayFreight && BuyerPayFreight > 0){\n value = getFixedNumber(Math.Minus(this.paymode.amount, BuyerPayFreight))\n } else if (IdbusiType == 38 && PreSellOrBook == 'BOOK' && PercentageWhenBook < 100 && (!DistributionMode.Id || DistributionMode.Id == 'ON_SITE_PICKUP')){\n //预订场景下:现场提货,且订金比例非100%时,积分抵现按全款计算(因为只有全款才能使用积分抵现)\n value = this.paymode.bookMaxValue;\n } else {\n value = this.paymode.amount;\n }\n\n this.SettlementApi.CalculdateIntegralSteadCash({IntegralSteadCashParams:{\n Idmember:this.paymode.currentMode.memberId,\n TotalTaxAmount:value,\n BalanceTaxAmount:value,\n }}).then((result)=>{\n this.paymode.currentMode.member.setExchangable(result.MaxAmount);\n this.paymode.currentMode.perIntegral=result.perIntegral;\n this.paymode.currentMode.cashAmount=result.cashAmount;\n this.paymode.currentMode.integralCashOverOrderAmount=result.isIntegralCashOverOrderAmount;\n this.updateEvent();\n if(this.checkReceived(this.paymode.currentMode,\"exchangable\")){\n runInAction(()=>{this.paymode.currentMode.errinfo='余额不足'})\n }\n });\n\n }\n }\n\n checkReceived(mode,name){\n return !this.brefund && parseFloat(mode.value)>parseFloat(mode.maxamount || mode.member[name]||0);\n }\n\n genNewMode(type,notwithm,v,isQuick){\n const { PayStyle } = enumController.getEnumOj();\n let value=getFixedNumber(v || (this.brefund?this.paymode.receivable:Math.max(this.paymode.receivable,0)));\n let themode=_find(this.paymode.paymodes,{'paymentType':type});\n let memberId = (this.member && this.member.ID ? this.member.ID : null);\n const mode = observable({\n paymethodId:this.paymode.counter,\n name:themode.name,\n exchangeRate:themode.exchangeRate,\n calDirection:themode.calDirection,\n thridPayment: themode.thridPayment,\n value,\n value2:getFixedNumber(themode.calDirection==\"88\"?value / themode.exchangeRate:(value * themode.exchangeRate)),\n value3:value,\n order:this.paymode.thePaymodes.length+1,\n paymentType:type,\n djqs:[],\n card: null,\n memberId: !notwithm?memberId:null,\n member:new Member(!notwithm?this.member:null),\n authCode:'',\n steadCashIntegral:null,\n errinfo:'',\n maxamount:this.paymode.amount,\n virtualPay: themode.virtualPay\n });\n if(type==PayStyle.hyczk){\n if(!mode.storageCardNo){\n runInAction(()=>{mode.errinfo='未录入手机号或储值卡号'})\n }else if(this.checkReceived(mode,\"balance\")){\n runInAction(()=>{mode.errinfo='余额不足'})\n }\n\n }\n if(type==PayStyle.hyczk || type==PayStyle.jfdx || type==PayStyle.djq){\n this.setMaxAmount(type,mode);\n }\n console.log(`当前操作结算方式信息:${mode}`);\n return mode;\n }\n\n setMaxAmount(type,mode){\n const { PayStyle } = enumController.getEnumOj();\n let sum=0;\n if(type==PayStyle.hyczk){\n _each(_filter(this.paymode.thePaymodes,(m)=>{return m.paymentType==type;}),(q)=>{\n sum=Math.Add(sum,q.value);\n });\n }else if(type==PayStyle.djq || type==PayStyle.jfdx){\n _each(_filter(this.paymode.thePaymodes,(m)=>{return m.paymentType==PayStyle.djq || m.paymentType==PayStyle.jfdx;}),(q)=>{\n sum=Math.Add(sum,q.value);\n });\n }\n\n this.amountHandler && this.amountHandler(type).then(()=>{\n runInAction(()=>{\n\n //预售储值结算应包含运费\n let BuyerPayFreight = this.dto.BuyerPayFreight;\n let DistributionMode = this.dto.DistributionMode;\n let value = 0;\n if((DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && BuyerPayFreight && BuyerPayFreight > 0 && type == PayStyle.hyczk){\n value = getFixedNumber(parseFloat(this.context.viewModel.getViewItem('Voucher').availableAmount) + parseFloat(BuyerPayFreight))\n } else {\n value = this.context.viewModel.getViewItem('Voucher').availableAmount;\n }\n mode.maxamount=getFixedNumber(Math.Minus(value,sum));\n this.updateEvent();\n })\n })\n }\n\n @action changeFocusOnly(type){\n this.paymode.currentFocus=type;\n }\n\n @action changeClickFocusOnly(type) {\n this.paymode.currentFocus=type;\n // 获取焦点时带入剩余的值\n let mode=_find(this.paymode.thePaymodes,{'paymentType':type});\n if(mode){\n const shouldSetValue =getFixedNumber(parseFloat(this.paymode.receivable) + parseFloat(mode.value));\n mode.value = shouldSetValue;\n mode.value2 = getFixedNumber(mode.calDirection==\"88\"?shouldSetValue / mode.exchangeRate:(shouldSetValue * mode.exchangeRate));\n mode.value3 = shouldSetValue;\n this.paymode.calcReserved('bookPay'); //参数multiPay代表复合结算\n }\n }\n\n @action changeValue(index,value,blur,type){\n let mode=_find(this.paymode.thePaymodes,{'paymethodId':index});\n let v=blur?getFixedNumber(value) : (isNaN(value)&&value!='-'?0.00:value);\n if(mode){\n if(mode.exchangeRate != 1){\n if(getFixedNumber(mode.calDirection==\"88\"?mode.value3 / mode.exchangeRate:(mode.value3 * mode.exchangeRate)) !=v){\n mode.value=getFixedNumber(mode.calDirection==\"88\"?v*mode.exchangeRate : (v / mode.exchangeRate));\n }\n else{\n mode.value=mode.value3;\n }\n mode.value2=v;\n }else{\n mode.value=v;\n mode.value2=v;\n }\n\n this.paymode.calcReserved(type);\n }\n }\n\n @action addPayDirectly(pay){\n const { PayStyle } = enumController.getEnumOj();\n if(!_find(this.paymode.thePaymodes,{paymethodId:pay.paymethodId})){\n let pos=this.paymode.thePaymodes.length;\n if(pay.paymentType==PayStyle.hyczk){\n let index=_findLastIndex(this.paymode.thePaymodes,(m)=>{return m.paymethodId!=pay.paymethodId && m.paymentType==PayStyle.hyczk});\n pos=index==-1?pos:(index+1);\n }\n // this.paymode.thePaymodes.push(pay);\n this.paymode.thePaymodes.splice(pos,0,pay);\n }\n this.paymode.calcReserved();\n }\n\n @action addPay(type, bookType, isQuick){\n const { PayStyle } = enumController.getEnumOj();\n let pos = this.paymode.thePaymodes.length;\n if (type == PayStyle.hyczk) {\n let index = _findLastIndex(this.paymode.thePaymodes, (m) => { return m.paymentType == PayStyle.hyczk });\n pos = index == -1 ? pos : (index + 1);\n }\n this.paymode.thePaymodes.splice(pos, 0, this.genNewMode(type,this.newStyle && type==PayStyle.hyczk,undefined, isQuick));\n this.paymode.calcReserved(bookType);\n }\n\n @action delPay(index, bookType){\n const { PayStyle } = enumController.getEnumOj();\n _remove(this.paymode.thePaymodes,(mode)=>{\n return mode.paymethodId===index;\n });\n this.paymode.currentFocus = -1;\n this.paymode.calcReserved(bookType);\n }\n\n // 获取储值是否重复, 在commit方法中使用\n findStorageBillValidate () {\n const { PayStyle } = enumController.getEnumOj();\n runInAction(()=>{\n this.dto.StorageMutiSettleDetails=[];\n const thePaymodes = this.newStyle ?_filter(this.paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):this.paymode.thePaymodes;\n _each(thePaymodes,(mode)=>{\n const themode=_find(this.paymode.paymodes,{'paymentType':mode.paymentType});\n\n let value=parseFloat(mode.value);\n let giveChange=null;\n if(mode.paymentType==PayStyle.xianjin && this.paymode.receivable<0 && value>Math.abs(this.paymode.receivable)){\n value=Math.Add(value,this.paymode.receivable);\n giveChange=Math.abs(this.paymode.receivable);\n }\n this.dto.StorageMutiSettleDetails.push({\n Code:mode.paymethodId,\n StorageAmount:value,\n GiveChange:giveChange,\n IdsettleStyle:themode.idSettleStyle,\n IdbankAccount:themode.idBankAccount,\n PaymentCode:mode.authCode,\n DynamicPropertyKeys:[],\n DynamicPropertyValues:[],\n DataSource:{Id:this.dataSource},\n })\n });\n\n });\n return this.SettlementApi.findStorageBillValidate({...this.dto})\n }\n\n //判断是否重复弹框\n repeatStorageModal = (content) => {\n return new Promise((resolve, reject) => {\n ModalWraper.confirm({\n title: '',\n okText: '继续储值',\n className: 'repeat-modal',\n zIndex: 1007,\n content,\n onOk: async () => {\n let ret = await this.saveMember();\n if (ret === false) {\n resolve(false)\n } else {\n resolve(true)\n }\n },\n onCancel() {\n resolve(false)\n }\n })\n })\n }\n\n async commit(bTest){\n console.log('settlementStore.commit开始,参数:' + bTest);\n if (bTest) {\n return Promise.resolve(true);\n }\n const status = this.type;\n try {\n const paylist = this.paymode.thePaymodes.filter(v => !!v.thridPayment && Math.abs(v.value) > 0) || [];\n if (paylist && paylist.length > 1) {\n Message.warn('二开支付目前仅支持单一结算方式。');\n return Promise.resolve(false);\n }\n if (status == 1) {\n const ret = await this.findStorageBillValidate();\n const { data: { code, returnMsg } = {} } = ret || {}\n if (code && code == 10001) {\n const state = await this.repeatStorageModal(returnMsg);\n if (state === false) return Promise.resolve(false);\n } else {\n let ret1 = await this.saveMember();\n if (ret1 === false) {\n return Promise.resolve(false);\n }\n }\n } else {\n await stores.offlineSys.generatorCode(this.dto);\n let ret2 = await this.save();\n if (ret2 === false) {\n return Promise.resolve(false);\n }\n await stores.offlineSys.retailSequenceUpload();\n }\n return Promise.resolve(true);\n } catch (err) {\n console.error('settlementStore.commit失败,错误信息:' + err);\n //其他支付失败时,处理二开支付情况。\n this.thirdPayRefund(status == 1 ? 2 : 1);\n return Promise.resolve(err);\n }\n }\n\n handlePrint(resp) {\n // 储值打印\n return printDispatch(DoNameList.DO_STORAGE_PRINT,resp,{})\n }\n\n async saveMember(){\n const { PayStyle, TradeType } = enumController.getEnumOj();\n runInAction(()=>{\n this.dto.StorageMutiSettleDetails=[];\n const thePaymodes = this.newStyle ?_filter(this.paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):this.paymode.thePaymodes;\n _each(thePaymodes,(mode)=>{\n const themode=_find(this.paymode.paymodes,{'paymentType':mode.paymentType});\n\n let value=parseFloat(mode.value);\n let giveChange=null;\n if(mode.paymentType==PayStyle.xianjin && this.paymode.receivable<0 && value>Math.abs(this.paymode.receivable)){\n value=Math.Add(value,this.paymode.receivable);\n giveChange=Math.abs(this.paymode.receivable);\n }\n this.dto.StorageMutiSettleDetails.push({\n Code:mode.paymethodId,\n StorageAmount:value,\n GiveChange:giveChange,\n IdsettleStyle:themode.idSettleStyle,\n IdbankAccount:themode.idBankAccount,\n PaymentCode:mode.authCode,\n DynamicPropertyKeys:[],\n DynamicPropertyValues:[],\n DataSource:{Id:this.dataSource},\n ThirdPaymentInfo: themode.thridPayment || null,\n ThirdPaymentReturnInfo:mode.thirdPaymentReturnInfo || null\n })\n });\n\n });\n // cc结算调用\n let IPMSG = {};\n if (!!window.localStorage.IPMSG) {\n IPMSG = JSON.parse(window.localStorage.IPMSG);\n }\n let dtoParams = this.dto;\n //处理存在二开支付情况\n let payList = dtoParams.StorageMutiSettleDetails.filter(v => v.ThirdPaymentInfo);\n if (payList && payList.length > 0) {\n let payment = payList[0];\n let tradeType = payment && payment.StorageAmount > 0 ? TradeType.PAY : TradeType.REFUND;\n const ret = await this.thirdPay(2, payment, tradeType, dtoParams);\n const { type, data, msg, code } = ret || {};\n if (type === true) {\n dtoParams = data;\n } else {\n Message.warn(`刷卡支付失败,错误码:${code}`);\n return false;\n }\n }\n this.dtoParams = dtoParams;\n console.log('储值结算信息:', dtoParams);\n return this.SettlementApi.INewRetailMemberStorageSave({ dto: dtoParams }).then((resp) => {\n this.handlePrint(resp);\n });\n }\n\n async save(){\n const { PayStyle, TradeType } = enumController.getEnumOj();\n runInAction(()=>{\n this.dto.RetailPaymentDetails=[];\n this.dto.RetailStorageDetails=[];\n this.dto.RetailCouponDetails=[];\n let czkSum=0;\n let count = 0;\n const thePaymodes = this.newStyle ?_filter(this.paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):this.paymode.thePaymodes;\n _each(thePaymodes,(mode, index)=>{\n const themode=_find(this.paymode.paymodes,{'paymentType':mode.paymentType});\n if(mode.paymentType==PayStyle.hyczk){\n czkSum=Math.Add(czkSum,mode.value);\n this.dto.RetailStorageDetails.push({\n Code:mode.paymethodId,\n MeStorageCardId: mode.meStorageCardId,\n StoragePaymentAmount:mode.value,\n IsOrigReturn:false,\n BalanceStorage:mode.balance,\n Idmember:mode.memberId,\n DynamicPropertyKeys:[],\n DynamicPropertyValues:[],\n DataSource:{Id:this.dataSource},\n Password:mode.authCode,\n })\n }else{\n let value=parseFloat(mode.value);\n let giveChange=null;\n if(mode.paymentType==PayStyle.xianjin && this.paymode.receivable<0 && value>Math.abs(this.paymode.receivable)){\n value=Math.Add(value,this.paymode.receivable);\n giveChange=Math.abs(this.paymode.receivable);\n }\n this.dto.RetailPaymentDetails.push({\n Code:mode.paymethodId,\n OrigAmount:mode.exchangeRate!=1?mode.value2:value,\n Amount:value,\n GiveChange:giveChange,\n IdsettleStyle:themode.idSettleStyle,\n IdbankAccount:themode.idBankAccount,\n Idcurrency:themode.idCurrency,\n ExchangeRate:themode.exchangeRate,\n PaymentCode:mode.authCode,\n SteadCashIntegral:mode.steadCashIntegral,\n OverchargesAmount:mode.overchargesAmount,\n DynamicPropertyKeys:[],\n DynamicPropertyValues:[],\n DataSource:{Id:this.dataSource},\n ThirdPaymentInfo: themode.thridPayment || null,\n SettleStyle: {Name: mode.name},\n ThirdPaymentReturnInfo:mode.thirdPaymentReturnInfo || null\n })\n if(mode.paymentType==PayStyle.djq){\n _each(this.paymode.checkList && this.paymode.checkList.length ? this.paymode.checkList: mode.djqs,(djq)=>{\n this.dto.RetailCouponDetails.push({\n CouponCode:djq.promoCouponCode,\n ReductionAmount:djq.amount,\n EnableAmount:djq.doorsill,\n CouponTitle:djq.name,\n IdMember:djq.UMemberID?mode.memberId:null,\n LastTS:djq.LastTS,\n PromotionId:djq.promoId,\n PromotionRuleId:djq.promoRuleId,\n PromoCouponAllocatedId:djq.id,\n DataSource:{Id:this.dataSource},\n })\n })\n }\n }\n });\n if (this.dto.RetailStorageDetails.length > 0) {\n const themode = _find(this.paymode.paymodes, { 'paymentType': PayStyle.hyczk });\n this.dto.RetailPaymentDetails.push({\n Code: this.paymode.counter,\n OrigAmount: czkSum,\n Amount: czkSum,\n IdsettleStyle: themode.idSettleStyle,\n IdbankAccount: themode.idBankAccount,\n DynamicPropertyKeys: [],\n DynamicPropertyValues: [],\n DataSource: { Id: this.dataSource },\n RetailStorageDetails: this.dto.RetailStorageDetails,\n })\n }\n });\n console.log(`结算数据:`, this.dto);\n // cc结算调用\n let IPMSG = {};\n if (!!window.localStorage.IPMSG) {\n IPMSG = JSON.parse(window.localStorage.IPMSG);\n }\n const RetailTypeEnum = this.dto.IdbusiType == 36 ? \"INTEGRAL_EXCHANGE\" : \"NORMAL\";\n const { PreSellOrBook, PercentageWhenBook } = this.getLoginInfo();\n const { IdbusiType, DistributionMode } = this.dto || {};\n if(IdbusiType == 38 && PreSellOrBook == 'BOOK' && PercentageWhenBook < 100 && (!DistributionMode.Id || DistributionMode.Id == 'ON_SITE_PICKUP')){\n let prepaidAmount = getFixedNumber(this.dto.RetailPaymentDetails.reduce((c, item) => c + (item.Amount || 0), 0));\n let fullPayment = getFixedNumber(this.dto.RetailDetails.reduce((c, item) => c + (item.TaxAmount || 0), 0));\n this.isFull = fullPayment == prepaidAmount; // 是否全款\n runInAction(()=>{\n this.dto.PrepaidAmount = prepaidAmount;\n });\n }\n if (this.dto.IdbusiType == 37 && await this.checkIntegralExchangeReturn(this.dto.RetailDetails[0].ReturnSourceId) || this.dto.IdbusiType != 37) {\n let dtoParams = { ...this.dto.cut(), RetailOms: { RetailTypeEnum } };\n //处理存在二开支付情况\n let payList = dtoParams.RetailPaymentDetails.filter(v => v.ThirdPaymentInfo);\n if (payList && payList.length > 0) {\n let payment = payList[0];\n let tradeType = payment && payment.Amount > 0 ? TradeType.PAY : TradeType.REFUND;\n const ret = await this.thirdPay(1, payment, tradeType, dtoParams);\n const { type, data, msg, code } = ret || {};\n if (type === true) {\n dtoParams = data;\n } else {\n Message.warn(`刷卡支付失败,错误码:${code}`);\n return false;\n }\n }\n this.dtoParams = dtoParams;\n console.log('结算信息:', dtoParams);\n return this.SettlementApi.retailPosSettle({\n dto: dtoParams,\n cip: IPMSG.query || \"\",\n longitude: IPMSG.longitude || \"\",\n latitude: IPMSG.latitude || \"\"\n }).then((resp) => {\n const { ID } = resp || {};\n this.setDtoID(ID);\n this.billID = ID;\n this.paymode.checkList = [];\n })\n }\n }\n\n //裁剪二开支付数据\n removeThirdPayDto(dto) {\n let data = {...dto};\n delete data['DynamicPropertyKeys'];\n delete data['DynamicPropertyValues'];\n return data;\n }\n\n /**\n * 二开支付\n * vType:1零售单、2储值单\n * payment:结算方式\n * trade:00表示结算、02表示退款\n * dto:结算数据集合\n */\n async thirdPay(vType, payment, trade, dto) {\n try {\n let cto = this.removeThirdPayDto(dto);\n const params = { VoucherType: vType, Payment: payment, TradeType: trade, dto: cto };\n console.log('刷卡信息:', JSON.stringify(params));\n let ret = await new Promise((resolve, reject) => {\n nativeMs.setIpcRendererMethod('ThirdPayment', { ...params }, res => {\n return resolve(res);\n })\n })\n console.log('刷卡返回信息:', ret);\n ret = JSON.parse(ret);\n const { Code, Message, Result } = ret || {};\n if (Code > 0) {\n return { type: false, data: null, msg: Message, code: Code };\n } else if (trade == '00') {\n const { ThirdPaymentReturnInfo } = Result || {};\n if (vType == 1) {\n dto.RetailPaymentDetails.forEach(v => {\n if (v.ThirdPaymentInfo != null && Math.abs(v.Amount) > 0) {\n v.ThirdPaymentReturnInfo = ThirdPaymentReturnInfo;\n }\n })\n } else if (vType == 2) {\n dto.StorageMutiSettleDetails.forEach(v => {\n if (v.ThirdPaymentInfo != null && Math.abs(v.StorageAmount) > 0) {\n v.ThirdPaymentReturnInfo = ThirdPaymentReturnInfo;\n }\n })\n }\n return { type: true, data: dto, msg: Message, code: Code };\n } else if (trade == '02') {\n return { type: true, data: dto, msg: Message, code: Code };\n }\n } catch (ex) {\n return { type: false, data: null, msg: ex, code: '9999' }\n }\n }\n\n //二开支付强制退款情况\n async thirdPayRefund(type) {\n const dto = (type == 1) ? this.dtoParams.RetailPaymentDetails : this.dtoParams.StorageMutiSettleDetails;\n const pay = dto && dto.filter(v => v.ThirdPaymentInfo);\n if (pay && pay.length > 0) {\n setTimeout(() => {\n Message.warn(\"支付出现异常,将发起刷卡退款。\", { duration: 4.5 })\n }, 1000);\n const payment = pay[0];\n const { TradeType } = enumController.getEnumOj();\n setTimeout(async () => {\n let ret = await this.thirdPay(type, payment, TradeType.REFUND, dto);\n const { msg } = ret || {};\n console.log(`刷卡支付退款:${msg}`);\n }, 4500);\n }\n }\n\n\n @action setDtoID(id){\n this.context.viewModel.data.ID=id;\n }\n\n checkIntegralExchangeReturn = (id) => {\n return new Promise((resolve, reject) => {\n this.SettlementApi.GetNewIntegralExchange({param: {refVoucherId:id}}).then((resp) => {\n if( resp && resp.expireIntegral>0){\n ModalWraper.confirm({\n className: 'tplus-confirm-modal',\n title: \"温馨提示\",\n content:`存在已经过期的积分${resp.expireIntegral}退货后积分不会返还。是否继续退货?`,\n cancelable: false,\n onOk() {\n resolve(true);\n },\n onCancel() {\n reject(false);\n }\n })\n }else{\n resolve(true);\n }\n })\n })\n }\n\n async querySettleResult(){\n try{\n return Promise.resolve(await this.SettlementApi.QuerySettleResult({RetailCode: this.dto.Code}));\n }catch(e){\n return Promise.resolve({Flag:\"1\"});\n }\n }\n\n setCookie(key, val) {\n var exp = new Date();\n exp.setTime(moment().endOf('day').valueOf());\n document.cookie = key + '=' + val + ';expires=' + exp.toGMTString();\n }\n\n getAllCookies() {\n var cookies = document.cookie.split(/;\\s/g);\n var cookieObj = {};\n cookies.forEach(function (item) {\n var key = item.split('=')[0];\n cookieObj[key] = item.split('=')[1];\n });\n return cookieObj;\n }\n\n async validePwd(value){\n let { isNewRetailBCPos } = platform || {};\n try{\n if (isNewRetailBCPos) {\n let cook1 = this.getAllCookies()['errorPwd'];\n let cook2 = cook1 && JSON.parse(cook1);\n let message = '密码输入错误';\n let memberStorageId = this.paymode.currentMode.meStorageCardId;\n if (cook2) {\n if (cook2.hasOwnProperty(memberStorageId + \"\")) {\n if (cook2[memberStorageId] > 3) {\n message = '今日密码错误已达上限,不可使用储值消费,请明日再试,如忘记请重置密码或修改密码。';\n return Promise.resolve(message);\n }\n }\n }\n const {cardTypeEnum, memberId, meStorageCardId, cardStatusEnum} = this.paymode.currentMode;\n let checkPaymentPasswordParams = {};\n let checkPaymentPasswordId = null;\n if (cardTypeEnum === 'BALANCE_CARD') {\n checkPaymentPasswordParams = {\n md5Password: User.pwdEncrypt(value.pwd), \n cardType: cardTypeEnum\n }\n checkPaymentPasswordId = memberId\n } else {\n if (cardStatusEnum === 'BINDING' && this.member && this.member.ID === memberId) {\n checkPaymentPasswordParams = {\n md5Password: User.pwdEncrypt(value.pwd), \n password: value.pwd, \n cardType: cardTypeEnum\n }\n checkPaymentPasswordId = meStorageCardId\n } else {\n checkPaymentPasswordParams = {\n password: value.pwd, \n cardType: cardTypeEnum\n }\n checkPaymentPasswordId = meStorageCardId\n }\n }\n const result = await this.SettlementApi.checkPaymentPassword(checkPaymentPasswordParams, checkPaymentPasswordId)\n if (!result.data) {\n if (cook2) {\n if (cook2.hasOwnProperty(memberStorageId + \"\")) {\n let count = cook2[memberStorageId];\n cook2[memberStorageId] = count + 1;\n } else {\n cook2[memberStorageId] = 1;\n }\n } else {\n cook2 = {};\n cook2[memberStorageId] = 1;\n }\n this.setCookie('errorPwd', '', -1);\n this.setCookie('errorPwd', JSON.stringify(cook2));\n }\n return Promise.resolve(result.data?\"\":message);\n } else {\n const result = await this.SettlementApi.CheckoutMemberPassword({\"CheckoutParams\": {\n \"Idmember\": value.id,\n \"Password\":value.pwd\n }});\n return Promise.resolve(result.Success?\"\":result.Message);\n }\n }catch(e){\n return \"failed\";\n }\n }\n}\n\nexport class PayMode{\n _counter=0\n amount=0 //应收\n onlineamount=0\n maxamount=0;\n @observable currentFocus=\"\"\n @observable received=0;\n @observable receivable=0;\n @observable paymodes =[]\n @observable thePaymodes=[]\n bookMaxValue=0;\n isNotFullBook=false; //预订场景下,现场提货,且选项设置订金比例非100% or 取货最大补款数大于0时 为 true\n isNotFullOnlyBook=false; //只是预订场景下,现场提货,且选项设置订金比例非100%时 为 true\n @observable storageCardNo = null;\n @observable balance = null;\n // @observable store = null;\n currentMode=null;\n checkList = [];\n updateEvent\n settle={\n name:\"复合结算\",\n hotKey:\"Ctrl+M\",\n }\n constructor (){\n // this.amount=getFixedNumber(amount);\n // this.calcReserved();\n }\n\n @action clean(){\n this.thePaymodes=[];\n this.calcReserved();\n }\n\n @action clear(){\n this.thePaymodes=[];\n this.calcReserved();\n this.paymodes = [];\n }\n\n setAmount(a,o){\n this.amount=getFixedNumber((a || 0)-(o || 0));\n this.onlineamount=getFixedNumber(o || 0);\n this.calcReserved();\n return this.amount<0;\n }\n\n @action calcReserved(type){\n var sum=0;\n _each(this.thePaymodes,(mode)=>{\n sum=Math.Add(sum,(mode.value==\"\"?0:mode.value));\n });\n this.received = getFixedNumber(sum);\n if(type === 'bookPay' && this.isNotFullBook){\n if ( this.amount <= sum && sum <= this.bookMaxValue){\n this.receivable = getFixedNumber(0);\n }\n if (sum < this.amount){\n this.receivable = getFixedNumber(this.amount - sum);\n }\n if (sum > this.bookMaxValue){\n this.receivable = getFixedNumber(this.bookMaxValue - sum);\n }\n }else{\n this.receivable = getFixedNumber(this.amount - sum);\n }\n }\n\n @action calcCheckList = () => {\n this.checkList = [];\n }\n\n @action updateMemberStorageCardNo(storageCardNo, walletEnabled) {\n this.currentMode.storageCardNo = storageCardNo;\n this.currentMode.walletEnabled = walletEnabled;\n }\n\n @action updateCardInfo(m) {\n this.currentMode.cardStatusEnum = m.CardStatusEnum;\n this.currentMode.isNeedPassword = m.IsNeedPassword;\n this.currentMode.meStorageCardId = m.MeStorageCardId;\n this.currentMode.storageCardNo = m.StorageCardNo;\n this.currentMode.balance = m.BalanceStorage;\n this.currentMode.rawbalance = m.BalanceStorage;\n this.currentMode.cardTypeEnum = m.CardTypeEnum;\n this.currentMode.walletEnabled = m.WalletEnabled;\n this.currentMode.memberId = m.ID;\n this.currentMode.freePaymentPasswordStore = m.FreePaymentPasswordStore;\n }\n\n @action calcDjqCheckValue(q1, dto, params) {\n let useLimitPerOrder = PosInitData('UseLimitPerOrder');\n let qList = _filter(this.currentMode.djqs,djq=>djq.checked);\n if (qList.length === useLimitPerOrder && !q1.checked) {\n Message.warn('本单最多可用'+useLimitPerOrder+'张');\n return;\n }\n if (params === 'single') {\n this.checkList = [];\n }\n const { PayStyle, Differentiate } = enumController.getEnumOj();\n\n if(q1){\n if(!this.currentMode.boriginReturn && parseFloat(this.currentMode.maxamount)<=0){\n Message.error(`本单没有${Differentiate.COUPON}可用金额,该券不可使用。`);\n return ;\n }\n let q=_find(this.currentMode.djqs,(djq)=>{return djq.promoCouponCode==q1.promoCouponCode});\n if(q && !q.checked && parseFloat(this.amount)<parseFloat(q.doorsill)){\n Message.error(\"本单金额低于使用门槛,该券不可使用。\");\n return ;\n }\n //判断是否是选择优惠券 //CC优惠券只能使用一个\n // if (q1 && !q1.checked && isNewRetailBCPos) {\n // // 检查是否有已经选定优惠券 并且去除选定的优惠券\n // this.currentMode.djqs.forEach((djq, index) => {\n // if (djq.checked) this.currentMode.djqs[index].checked = false;\n // })\n // }\n q && (q.checked = !q.checked);\n }\n var sum=0;\n // console.log(this.store, 'stores-------');\n if (!q1.checked) {\n this.checkList.forEach((ele, i) => {\n if (ele.id === q1.id) {\n this.checkList.splice(i, 1);\n }\n })\n } else {\n this.checkList.push(q1);\n }\n\n this.checkList.forEach((ele) => {\n sum=Math.Add(sum,ele.amount);\n })\n this.currentMode.value = getFixedNumber(Math.min(this.receivable,sum,this.currentMode.maxamount));\n console.log(this.receivable, sum, Math.min(this.receivable,sum,this.currentMode.maxamount), 'sum---------');\n this.currentMode.receivable = getFixedNumber(this.receivable - Math.min(this.receivable,sum,this.currentMode.maxamount));\n this.currentMode.overchargesAmount=getFixedNumber(sum-this.currentMode.value);\n if (params === 'single') {\n return;\n }\n let promoVoucher = {};\n promoVoucher.boName = \"Retail\";\n // promoVoucher.promoLinks = _filter(this.currentMode.djqs,djq=>djq.checked);\n promoVoucher.meMemberId = this.currentMode.member.id;\n promoVoucher.storeFactorId = PosInitData('storeID');\n promoVoucher.voucherDetailList = [];\n dto.RetailDetails.forEach(item => {\n let detailDTO = {};\n detailDTO.uuid = item.Code;\n detailDTO.detailBoName = \"RetailDetail\";\n detailDTO.voucherDetailId = item.ID;\n detailDTO.productId = item.Idinventory;\n detailDTO.uomId = item.Idunit;\n detailDTO.productSpecId=item.ProductSpecId;\n detailDTO.isManualFreeGift = item.IsPresent;\n detailDTO.isListPriceIncludingTax = item.TaxFlag || true;\n detailDTO.IsManualChangePrice = item.IsManualChangePrice;\n\n\n\n\n // if(detailDTO.IsManualChangePrice)//如果是手工改价\n // {\n // detailDTO.listPrice = item.TaxPrice;\n // detailDTO.netAmountWithTax = item.TaxAmount;\n // }\n // else\n // {\n\n let bookingQuantity=0;\n if(item.BookingQuantity)\n {\n bookingQuantity=item.BookingQuantity;\n }\n detailDTO.listPrice = JSON.getCellValue(item, \"listPrice\");\n detailDTO.netAmountWithTax = Math.Multiply(detailDTO.listPrice,Math.Minus(item.Quantity,bookingQuantity));//item.TaxAmount;\n detailDTO.taxRate = item.TaxRate;\n detailDTO.quantity = item.Quantity;\n\n detailDTO.amountWithTax = item.RetailAmount;\n // 促销 start\n if(item.PromotionDetails && item.PromotionDetails.length != 0){\n let promoLinks = [];\n item.PromotionDetails.forEach((promotion)=>{\n promoLinks.push({\n promoId:promotion.IdSalesPromotionDTO,\n promoRuleId:promotion.PromotionRuleId\n })\n })\n if(promoLinks.length != 0) detailDTO.promoLinks = promoLinks;\n }\n // 促销 end\n promoVoucher.voucherDetailList.push(detailDTO);\n });\n promoVoucher.promoLinks = this.checkList;\n return this.SettlementApi.findUsefulCouponPromoList(promoVoucher).then((result)=>{\n if(result && result.length != 0 ){\n result.forEach((element, index) => {\n let djq1 = false;\n this.currentMode.djqs.forEach((djq) => {\n if (element.id === djq.id) {\n djq1 = true;\n }\n })\n const { couponCode, name, tieredAmountResult, fromDate , dateMount , promoMethodEnum , discountPct, nominalAmount,promoId,id, doorsill} = element || {};\n const { condValue, promoDiscount,displayText,promoRuleId, couponCategoryEnum } = tieredAmountResult\n if(!djq1) {\n // this.currentMode.djqs.push({\n // promoCouponCode: element.CouponCode,\n // name: element.CouponTitle,\n // IsEnable: true,\n // amount: element.ReductionAmount,\n // doorsill: element.EnableAmount,\n // LastTS: element.LastTS,\n // checked: false,\n // IsRepelWithPoints: true,\n // UMemberID: dto.Idmember,\n // expired: null,\n // displayText,\n // promoMethodEnum,\n // discountPct,\n // promoId,\n // promoRuleId,\n // couponCategoryEnum: tieredAmountResult.couponCategoryEnum,\n // id\n // })\n this.addDjqs(couponCode,name,true,nominalAmount,promoDiscount,doorsill,element.LastTS,false,true,\n dto.Idmember,\n dateMount,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n tieredAmountResult.couponCategoryEnum,\n id);\n djq1 = false;\n } else {\n this.setCouponNum(element.id, couponCategoryEnum, promoMethodEnum, nominalAmount,promoDiscount);\n // this.currentMode.djqs[0].couponCategoryEnum = 'couponCategoryEnum';\n // djq1.couponCategoryEnum = element.tieredAmountResult.couponCategoryEnum\n }\n })\n }\n // 优惠券【6052098985043】与【6120822326451】不可叠加使用\n })\n //this.receivable = getFixedNumber(this.receivable - sum);\n }\n\n @action setCouponNum = (id, couponNum, promoMethodEnum, nominalAmount,promoDiscount) => {\n this.currentMode.djqs.forEach((ele) => {\n if (ele.id === id) {\n ele.amount = promoDiscount;\n promoMethodEnum == \"CASH_COUPON\" && (ele.nominalAmount = nominalAmount);\n ele.couponCategoryEnum = couponNum;\n let IsEnable = (ele.couponCategoryEnum === 'RIGUP' || ele.couponCategoryEnum === 'UN_MATCH' || ele.couponCategoryEnum === \"PREPARING\" || ele.couponCategoryEnum === 'PROMO_LIMITED' || ele.couponCategoryEnum === 'COUPON_CONFLICT') ? false : true ;\n ele.IsEnable = IsEnable;\n }\n })\n }\n\n @action addDjqs = (promoCouponCode,\n name,\n IsEnable,\n nominalAmount,\n amount,\n doorsill,\n LastTS,\n checked,\n IsRepelWithPoints,\n UMemberID,\n expired,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n couponCategoryEnum,\n id) => {\n let djq={\n promoCouponCode,\n name,\n IsEnable,\n nominalAmount,\n amount,\n doorsill,\n LastTS,\n checked,\n IsRepelWithPoints,\n UMemberID,\n expired,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n couponCategoryEnum,\n id\n };\n this.currentMode.djqs.push(\n djq\n );\n }\n\n @action calcDjqValue(q1){\n const { Differentiate } = enumController.getEnumOj();\n if(q1){\n if(!this.currentMode.boriginReturn && parseFloat(this.currentMode.maxamount)<=0){\n Message.error(`本单没有${Differentiate.COUPON}可用金额,该券不可使用。`);\n return ;\n }\n let q=_find(this.currentMode.djqs,(djq)=>{return djq.code==q1.code});\n if(q && !q.checked && parseFloat(this.amount)<parseFloat(q.doorsill)){\n Message.error(\"本单金额低于使用门槛,该券不可使用。\");\n return ;\n }\n //判断是否是选择优惠券 //CC优惠券只能使用一个\n // if (q1 && !q1.checked && isNewRetailBCPos) {\n // // 检查是否有已经选定优惠券 并且去除选定的优惠券\n // this.currentMode.djqs.forEach((djq, index) => {\n // if (djq.checked) this.currentMode.djqs[index].checked = false;\n // })\n // }\n q && (q.checked = !q.checked);\n }\n var sum=0;\n // console.log(this.store, 'stores-------');\n _each(_filter(this.currentMode.djqs,djq=>djq.checked),(q)=>{\n sum=Math.Add(sum,q.amount);\n });\n this.currentMode.value = getFixedNumber(Math.min(this.receivable,sum,this.currentMode.maxamount));\n this.currentMode.receivable = getFixedNumber(this.receivable -this.currentMode.value);\n this.currentMode.overchargesAmount=getFixedNumber(sum-this.currentMode.value);\n\n //this.receivable = getFixedNumber(this.receivable - sum);\n }\n\n @action reCalculationDjqs() {\n var sum=0;\n _each(_filter(this.currentMode.djqs,djq=>djq.checked),(q)=>{\n sum=Math.Add(sum,q.amount);\n });\n this.currentMode.value = getFixedNumber(Math.min(this.receivable,sum,this.currentMode.maxamount));\n this.currentMode.receivable = getFixedNumber(this.receivable -this.currentMode.value);\n this.currentMode.overchargesAmount=getFixedNumber(sum-this.currentMode.value);\n this.currentMode.maxamount = this.currentMode.receivable || this.currentMode.receivable;\n }\n\n @action clearDjqs() {\n this.currentMode.djqs = [];\n }\n\n @action setCurrentModeValue(v,max){\n this.currentMode.value=parseFloat(v) || 0;\n this.currentMode.errinfo='';\n let sum = this.amount;\n const { PayStyle} = enumController.getEnumOj();\n this.thePaymodes && this.thePaymodes.forEach((mode) => {\n if (mode.paymentType === PayStyle.hyczk) {\n sum -= mode.value;\n }\n })\n\n if(this.amount>0 && (v==='' || v==='0.00') && sum !== 0){\n this.currentMode.errinfo=\"实收金额必须录入\";\n }else if(Math.abs(parseFloat(v))>Math.abs(getFixedNumber(sum))){\n this.currentMode.errinfo=\"实收不应大于应收\";\n }else if(parseFloat(v)>0 && parseFloat(v) > (max || 0) ){\n this.currentMode.errinfo=\"余额不足\";\n }\n // 如果是积分抵现的一些判断\n if (this.currentMode.paymentType === PayStyle.jfdx) {\n if (this.currentMode.integralCashOverOrderAmount === true) {\n this.currentMode.steadCashIntegral = Math.ceil(this.currentMode.value/this.currentMode.cashAmount) * this.currentMode.perIntegral;\n } else if(this.currentMode.integralCashOverOrderAmount === false){\n let v1 = this.currentMode.value/this.currentMode.cashAmount;\n if (Number.isInteger(v1)) {\n this.currentMode.steadCashIntegral = Math.floor(this.currentMode.value/this.currentMode.cashAmount) * this.currentMode.perIntegral;\n } else {\n this.currentMode.errinfo=`请按照积分抵现规则${this.currentMode.perIntegral}积分抵用${this.currentMode.cashAmount}元输入金额`;\n }\n }\n }\n }\n\n @action calcMemberBalance(){\n this.currentMode.balance = this.currentMode.rawbalance - this.currentMode.value;\n }\n\n get charge(){\n return Math.abs(this.receivable);\n }\n\n get counter(){\n return ++this._counter;\n }\n\n async setPaymodes(type,isIntegralExchange){\n // 是否移动端判断\n const { isHorizontalPad, isHorizontalSunMi } = platform || {};\n const isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi;\n const { settleStyleType , PayStyle} = enumController.getEnumOj();\n const {memberStoreCode , settlementCode } = settleStyleType;\n const param = {'settleStyleType':type==1?memberStoreCode:settlementCode,isIntegralExchange}\n let modes = await SettlementApi.GetNewStoreSettleStyles({ param });\n if(modes){\n runInAction(()=>{\n let paymodes = [];\n let settleLists = modes.SettleStyles;\n settleLists = isMobileEnvironment ? settleLists.filter(v => !v.ThirdPaymentInfo) : settleLists;\n _each(settleLists, (mode, index) => {\n //产品需求确认会员储值卡结算方式前端展示统一调整为“储值卡\" tuzha by 2020-07-08\n if (mode.Code == PayStyle.hyczk) {\n mode.Name = '储值卡';\n }\n paymodes.push({\n name:mode.Name,\n isDefault:mode.IsDefaultSettleStyle,\n isQuick:_findIndex(modes.QuickSettleStyles, {'Code':mode.Code})>=0,\n orderBy:1,\n paymentType:mode.Code,\n offlineDisable:mode.offlineDisable,\n idSettleStyle:mode.IdSettleStyle,\n idBankAccount:mode.IdBankAccount,\n exchangeRate:mode.Currency?mode.Currency.ExchangeRate:1,\n idCurrency:mode.Currency?mode.Currency.ID:-1,\n calDirection:mode.Currency?mode.Currency.CalDirection.Id:\"88\",\n virtualPay: mode.VirtualPay,\n thridPayment: mode.ThirdPaymentInfo,\n })\n })\n this.paymodes = paymodes;\n })\n }\n }\n}\n\nexport class Member{\n id;\n uid;\n @observable cardNo;\n type;\n @observable balance;\n rawbalance;\n needPwd;\n bonusPoints;\n @observable exchangable;\n @observable meStorageCardId;\n @observable storageCardNo;\n constructor(m){\n if(m){\n this.id=m.ID;\n this.uid=m.Uid;\n this.type=m.MemberType?m.MemberType.Name:\"普通\";\n this.rawbalance=m.BalanceStorage;\n let index=_findIndex(m.DynamicPropertyKeys,(key)=>{return key=='canusedbalancestorage';});\n runInAction(()=>{\n this.cardNo=m.CardCode;\n if(index>=0){\n this.balance=parseFloat(m.DynamicPropertyValues[index]);\n }else{\n this.balance=this.rawbalance;\n }\n });\n this.needPwd=m.MemberType?m.MemberType.IsNeedPwd:false;\n this.NeedModifyPassword=m.NeedModifyPassword;\n this.bonusPoints=m.BalanceIntegral;\n }\n }\n @action setExchangable(v){\n this.exchangable=v;\n }\n @action setCardNo(v){\n this.cardNo=v;\n this.id=null;\n }\n}\n\n"]}
|
1
|
+
{"version":3,"sources":["tplus-components-touch/components/settlement/settlementStore.js"],"names":["t","i18n","getFixedT","SettlementStore","paymode","PayMode","params","localStore","get","cloudPrintArguments","setNewStyle","SettlementApi","event","type","isIntegralExchange","setPaymodes","updateEvent","context","amounthandler","datasource","storeinfo","bquick","amount","data","payModeKey","amountHandler","dataSource","storeInfo","dto","viewModel","global","DealSingleRowAmountSettingProcessorBlock","execute","enumController","getEnumOj","PayStyle","isQuickCash","xianjin","DealAmountSettingProcessorBlock","member","Member","isNotFullBook","isNotFullOnlyBook","value","TotalTaxAmount","getLoginInfo","PreSellOrBook","PercentageWhenBook","IdbusiType","DistributionMode","Id","bookMaxValue","PrepaidAmount","BuyerPayFreight","stores","drawerStore","thisWaitPaidAmount","totalWaitPaidAmount","brefund","setAmount","OnlinePaymentAmount","clean","boriginReturn","JSON","getCellValue","initByOriginReturn","newStyle","setModes","paymodes","p","thePaymodes","mode","paymentType","addPay","length","changeValue","paymethodId","platform","isNewRetailBCPos","console","log","checkList","RetailPaymentDetails","detail","themode","IdsettleStyle","SettleStyle","Code","hyczk","ModalWraper","info","title","content","okText","okType","newmode","genNewMode","Amount","authCode","PaymentCode","steadCashIntegral","SteadCashIntegral","overchargesAmount","OverchargesAmount","thirdPaymentReturnInfo","ThirdPaymentReturnInfo","currentMode","djq","RetailCouponDetails","displayText","promoRuleId","dateMount","promoMethodEnum","discountPct","promoId","id","addDjq","CouponCode","CouponTitle","ReductionAmount","EnableAmount","LastTS","Idmember","push","RetailStorageDetails","balanceAmount","storageCardNo","meStorageCardId","DynamicPropertyKeys","forEach","ele","index","DynamicPropertyValues","BalanceStorage","StoragePaymentAmount","StorageCardNo","MeStorageCardId","Password","balance","calcReserved","key","bookType","currentFocus","jfdx","m","splice","addPayDirectly","CalculdateIntegralSteadCash","IntegralSteadCashParams","memberId","BalanceTaxAmount","then","result","integralCashOverOrderAmount","isIntegralCashOverOrderAmount","user","options","v","returnType","errinfo","isOnlyEnabled","getCardInfoByCardNo","CardTypeEnum","updateCardInfo","handleCzkData","validateRetailStorageCard","result1","data1","parse","enable","Message","warn","disableReason","promoCouponCode","name","IsEnable","nominalAmount","doorsill","checked","IsRepelWithPoints","UMemberID","expired","couponCategoryEnum","unCheck","count","code","djqs","calcDjqValue","append","afterSetCurrentMode","parseFloat","Math","Minus","setExchangable","MaxAmount","perIntegral","cashAmount","checkReceived","maxamount","notwithm","isQuick","receivable","max","ID","counter","exchangeRate","calDirection","thridPayment","value2","value3","order","card","virtualPay","setMaxAmount","sum","q","Add","getViewItem","availableAmount","shouldSetValue","blur","isNaN","pay","pos","undefined","StorageMutiSettleDetails","giveChange","abs","StorageAmount","GiveChange","idSettleStyle","IdbankAccount","idBankAccount","DataSource","findStorageBillValidate","bTest","resolve","status","paylist","filter","ret","returnMsg","repeatStorageModal","state","saveMember","ret1","offlineSys","generatorCode","save","ret2","retailSequenceUpload","error","thirdPayRefund","resp","DoNameList","DO_STORAGE_PRINT","TradeType","ThirdPaymentInfo","IPMSG","window","localStorage","dtoParams","payList","payment","tradeType","PAY","REFUND","thirdPay","msg","INewRetailMemberStorageSave","handlePrint","czkSum","IsOrigReturn","OrigAmount","Idcurrency","idCurrency","ExchangeRate","Name","IdMember","PromotionId","PromotionRuleId","PromoCouponAllocatedId","RetailTypeEnum","prepaidAmount","reduce","c","item","fullPayment","RetailDetails","TaxAmount","isFull","checkIntegralExchangeReturn","ReturnSourceId","cut","RetailOms","retailPosSettle","cip","query","longitude","latitude","setDtoID","billID","vType","trade","cto","removeThirdPayDto","VoucherType","Payment","reject","nativeMs","setIpcRendererMethod","res","Result","setTimeout","duration","QuerySettleResult","RetailCode","Flag","val","exp","Date","setTime","endOf","valueOf","document","cookie","toGMTString","cookies","split","cookieObj","cook1","getAllCookies","cook2","message","memberStorageId","hasOwnProperty","cardTypeEnum","cardStatusEnum","checkPaymentPasswordParams","checkPaymentPasswordId","md5Password","User","pwdEncrypt","pwd","cardType","password","checkPaymentPassword","setCookie","CheckoutMemberPassword","Success","isCanSettleOnQuickKey","setCanSettleOnQuickKey","total","cur","String","isNullOrEmpty","nextInput","querySelector","select","getCouponList","Differentiate","couponApplyRule","CouponApplyRule","SHOWN_BY_CUSTOMER","coupon_code","promoVoucher","clearDjqs","reCalculationDjqs","boName","voucherId","onlinePaymentAmount","promoLinks","totalAmountWithTax","redBlueFlagEnum","meMemberId","storeFactorId","Idstore","voucherDetailList","detailDTO","uuid","detailBoName","voucherDetailId","productId","Idinventory","uomId","Idunit","productSpecId","ProductSpecId","isManualFreeGift","IsPresent","isListPriceIncludingTax","TaxFlag","IsManualChangePrice","bookingQuantity","BookingQuantity","listPrice","netAmountWithTax","Multiply","Quantity","taxRate","TaxRate","quantity","amountWithTax","RetailAmount","PromotionDetails","promotion","IdSalesPromotionDTO","findUsefulCouponPromoList","element","couponCode","tieredAmountResult","fromDate","condValue","promoDiscount","COUPON","SN","calcDjqCheckValue","getSettleGift","executeRightsForPos","getRefWareHouseList","checkCoupon","sn","request","Uid","uid","StoreCode","Inventories","d","IdInventory","Inventory","IdUnit","FreeItem0","FreeItem1","FreeItem2","FreeItem3","FreeItem4","FreeItem5","FreeItem6","FreeItem7","FreeItem8","FreeItem9","InventoryClassCodes","InventoryClass","CheckCoupon","Title","ReduceAmount","StartAmount","confirm","className","zIndex","onOk","onCancel","GetNewIntegralExchange","param","refVoucherId","expireIntegral","cancelable","observable","action","voucherDefaultPosMode","newPass","newPassConfirm","idstore","setWalletPayPassword","oldPassword","newPassword","successful","_this","IdStore","GetUmemberDTO","updateMemberStorageCardNo","WalletEnabled","getCardInfoByMemberId","ctMode","cardNo","_counter","onlineamount","settle","hotKey","a","o","received","walletEnabled","CardStatusEnum","isNeedPassword","IsNeedPassword","rawbalance","freePaymentPasswordStore","FreePaymentPasswordStore","q1","useLimitPerOrder","qList","i","min","djq1","addDjqs","setCouponNum","ceil","v1","floor","isHorizontalPad","isHorizontalSunMi","isMobileEnvironment","settleStyleType","memberStoreCode","settlementCode","GetNewStoreSettleStyles","modes","settleLists","SettleStyles","isDefault","IsDefaultSettleStyle","QuickSettleStyles","orderBy","offlineDisable","IdSettleStyle","IdBankAccount","Currency","CalDirection","VirtualPay","couponNum","MemberType","CardCode","needPwd","IsNeedPwd","NeedModifyPassword","bonusPoints","BalanceIntegral","exchangable"],"mappings":"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","file":"settlementStore.js","sourcesContent":["import { observable, computed, action, autorun, runInAction } from 'mobx'\nimport { stores, i18n, localStore, nativeMs } from 'mutants-microfx';\nimport _find from 'lodash/find';\nimport _remove from 'lodash/remove';\nimport _each from 'lodash/each';\nimport _map from 'lodash/map';\nimport _join from 'lodash/join';\nimport _trim from 'lodash/trim';\nimport _filter from 'lodash/filter';\nimport _findIndex from 'lodash/findIndex';\nimport _findLastIndex from 'lodash/findLastIndex';\nimport _findKey from 'lodash/findKey';\nimport { PosInitData } from 'tplus-poslogin';\nimport { getFixedNumber, stopPropagation } from './utils'\nimport {ccApi,tApi, User} from 'tplus-api';\nimport _clonedeep from 'lodash/cloneDeep';\nimport Message from '../message';\nimport { platform,enumController } from 'mutants-util';\nimport { printDispatch,DoNameList,ModalWraper } from 'tplus-components-touch'\nimport moment from \"moment\";\nimport _reduce from 'lodash/reduce';\nimport { Card } from 'antd';\nimport SettlementApi from './settlementApi';\n\nconst t = i18n.getFixedT(null, 'newretail');\n\nexport default class SettlementStore {\n paymode = null\n dto=null\n dtoParams = null\n member=null\n brefund=false\n context\n bquick=false;\n amountHandler\n dataSource\n storeInfo\n updateEvent\n type\n boriginReturn=false\n @observable newStyle=true //type==2\n billID\n isFull = true; // 预售都是全款;预订是否全款,在点击确认支付时计算订金和商品金额计算得出\n\n isCanSettleOnQuickKey = true;\n\n constructor(){\n this.paymode= new PayMode()\n let params = localStore && localStore.get('cloudPrintArguments');\n if (params) this.cloudPrintArguments = params;\n this.setNewStyle();\n this.SettlementApi = SettlementApi\n }\n\n setCanSettleOnQuickKey = (value) => {\n this.isCanSettleOnQuickKey = value;\n }\n\n @action\n setNewStyle = () => {\n const voucherDefaultPosMode = localStore && localStore.get('voucherDefaultPosMode') || 'touch'\n this.newStyle = voucherDefaultPosMode=='voucher';\n }\n\n initPaymodes(event,type,isIntegralExchange){\n this.isIntegralExchange = isIntegralExchange;\n this.paymode.setPaymodes(type,isIntegralExchange);\n this.updateEvent=event;\n }\n\n init(context,amounthandler,datasource,storeinfo,bquick,amount,type,data,payModeKey){\n this.setNewStyle();\n this.type=type;\n if(context){\n this.context=context;\n this.amountHandler=amounthandler;\n this.dataSource=datasource;\n this.storeInfo=storeinfo;\n this.dto=context.viewModel.data;\n runInAction(()=>{\n // 单品金额抹零\n if (global.DealSingleRowAmountSettingProcessorBlock) {\n global.DealSingleRowAmountSettingProcessorBlock.execute(this.dto);\n }\n const { PayStyle } = enumController.getEnumOj();\n const isQuickCash = bquick && payModeKey == PayStyle.xianjin;\n\n // 成交金额抹零\n if (global.DealAmountSettingProcessorBlock) {\n global.DealAmountSettingProcessorBlock.execute(this.dto,isQuickCash);\n }\n });\n // this.member=context.stores && context.stores.memberStore && context.stores.memberStore.member;\n this.member=this.dto.Member;//stores.selectMemberStore.selectMemberInfo;\n\n this.paymode.isNotFullBook = false;\n this.paymode.isNotFullOnlyBook = false;\n //预订按比例收取订金处理\n let value = this.dto.TotalTaxAmount;\n const { PreSellOrBook, PercentageWhenBook } = this.getLoginInfo();\n const { IdbusiType, DistributionMode } = this.dto || {};\n if(IdbusiType == 38 && PreSellOrBook == 'BOOK' && PercentageWhenBook < 100 && (!DistributionMode.Id || DistributionMode.Id == 'ON_SITE_PICKUP')){\n this.paymode.bookMaxValue = value;\n this.paymode.isNotFullBook = true;\n this.paymode.isNotFullOnlyBook = true;\n value = value * PercentageWhenBook / 100;\n }\n if (IdbusiType == 38 && PreSellOrBook == 'BOOK'){\n runInAction(()=>{\n this.dto.PrepaidAmount = value;\n });\n }\n //预订计算快递或同城配送运费\n if (IdbusiType == 38 && PreSellOrBook != 'DISABLED' && (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE')){\n value += this.dto.BuyerPayFreight || 0;\n }\n //预订取货应补款金额\n if (IdbusiType == 39){\n value = stores.drawerStore.thisWaitPaidAmount;\n if(stores.drawerStore.totalWaitPaidAmount > 0){\n this.paymode.isNotFullBook = true;\n this.paymode.bookMaxValue = stores.drawerStore.totalWaitPaidAmount;\n }\n }\n\n this.brefund=this.paymode.setAmount( value ,this.dto.OnlinePaymentAmount );\n }else{\n this.brefund=this.paymode.setAmount( amount ,0 );\n this.dto=data;\n }\n this.paymode.clean();\n\n //this.dto.TotalTaxAmount<0;\n this.bquick=!!bquick;\n this.boriginReturn=JSON.getCellValue(this.dto, \"IsOriginalReturn\");\n if(this.boriginReturn){\n this.initByOriginReturn();\n }\n if(this.newStyle){\n this.setModes();\n }\n }\n\n setModes(){\n _each(this.paymode.paymodes,(p)=>{\n if(_findIndex(this.paymode.thePaymodes,(mode)=>{return p.paymentType==mode.paymentType})==-1){\n this.addPay(p.paymentType);\n }\n });\n if(!this.boriginReturn && this.paymode.thePaymodes.length>0){\n this.changeValue(this.paymode.thePaymodes[0].paymethodId,0,true);\n }\n }\n\n amountChanged(amount){\n if(this.type==1){\n this.brefund=this.paymode.setAmount( amount ,0 );\n }\n\n }\n\n @action queryPwd = (newPass, newPassConfirm) => {\n if (!newPass || !newPassConfirm) {\n return Message.warn('您还有未填写项');\n }\n if (newPass !== newPassConfirm) {\n return Message.warn('您两次输入的密码不一致');\n }\n let idstore = PosInitData('storeID');\n return this.SettlementApi.setWalletPayPassword({\n Idstore: idstore,\n meMemberId: this.paymode.currentMode.memberId,\n oldPassword: null,\n newPassword: User.pwdEncrypt(newPassConfirm),\n dataSource:\"POS\"\n }).then((resp) => {\n if (resp.successful) {\n return true;\n }\n });\n }\n\n @action\n initByOriginReturn(){\n const { PayStyle } = enumController.getEnumOj();\n const { isNewRetailBCPos } = platform || {};\n console.log(this.dto, 'dto==========');\n this.paymode.checkList = [];\n _each(this.dto.RetailPaymentDetails,(detail)=>{\n let themode=_find(this.paymode.paymodes,{'idSettleStyle':detail.IdsettleStyle});\n if (detail.SettleStyle.Code === PayStyle.hyczk && !themode) {\n ModalWraper.info({\n title: '温馨提示',\n content: '没有储值结算方式,请在后台添加储值余额结算方式。',\n okText:'确定',\n okType:'primary'\n });\n }\n if(themode && themode.paymentType && themode.paymentType!=PayStyle.hyczk){\n let newmode={\n ...this.genNewMode(themode.paymentType,false,detail.Amount),\n authCode:detail.PaymentCode,\n steadCashIntegral:detail.SteadCashIntegral,\n overchargesAmount:detail.OverchargesAmount,\n boriginReturn:true,\n thirdPaymentReturnInfo: detail.ThirdPaymentReturnInfo\n };\n this.paymode.currentMode=newmode;\n if(themode.paymentType==PayStyle.djq){\n _each(this.dto.RetailCouponDetails,(djq)=>{\n if (isNewRetailBCPos) {\n const { displayText, promoRuleId, dateMount, promoMethodEnum, discountPct, promoId, id } = djq || {};\n this.addDjq(djq.CouponCode, djq.CouponTitle, true, null,djq.ReductionAmount, djq.EnableAmount, djq.LastTS, true, false,\n this.dto.Idmember,\n dateMount,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n null,\n id,\n true);\n return;\n }\n this.addDjq(djq.CouponCode, djq.CouponTitle, true, null, djq.ReductionAmount, djq.EnableAmount, djq.LastTS, true, false,);\n })\n }\n this.paymode.thePaymodes.push(newmode)\n }\n })\n _each(this.dto.RetailStorageDetails,(detail)=>{\n let balanceAmount = null;\n let storageCardNo = null;\n let meStorageCardId = null;\n detail.DynamicPropertyKeys.forEach((ele, index) => {\n if (ele === \"mestoragecard\") {\n balanceAmount = detail.DynamicPropertyValues[index].BalanceStorage - detail.StoragePaymentAmount;\n storageCardNo = detail.DynamicPropertyValues[index].StorageCardNo;\n meStorageCardId = detail.DynamicPropertyValues[index].MeStorageCardId;\n }\n })\n let newmode={\n ...this.genNewMode(PayStyle.hyczk,false,detail.StoragePaymentAmount),\n member:new Member(detail.Member ? detail.Member :null),\n authCode:detail.Password ? detail.Password: null,\n balance:balanceAmount,\n boriginReturn:true,\n meStorageCardId: meStorageCardId ? meStorageCardId : detail.MeStorageCardId,\n storageCardNo: storageCardNo ? storageCardNo : detail.StorageCardNo\n };\n this.paymode.thePaymodes.push(newmode)\n })\n this.paymode.calcReserved();\n }\n\n clean(){\n this.bquick=false;\n this.paymode.clean();\n }\n\n @action quickSettle(key){\n this.addPay(key,null, true);\n }\n\n //outer call\n //(type===PayStyle.hyczk || type===PayStyle.jfczk || type===PayStyle.jfdx || type===PayStyle.djq)\n @action changeFocusAndAddPay(type, bookType){\n const { PayStyle } = enumController.getEnumOj();\n this.paymode.currentFocus=type;\n if(this.paymode.currentMode){\n if(type==PayStyle.jfdx){\n if(this.newStyle){\n let index=_findIndex(this.paymode.thePaymodes,(m)=>{return m.paymentType==PayStyle.jfdx});\n this.paymode.thePaymodes.splice(index,1,this.paymode.currentMode);\n this.paymode.calcReserved();\n }else{\n this.addPayDirectly(this.paymode.currentMode);\n }\n\n //抵现积分\n this.SettlementApi.CalculdateIntegralSteadCash({IntegralSteadCashParams:{\n Idmember:this.paymode.currentMode.memberId,\n TotalTaxAmount:this.paymode.amount,\n BalanceTaxAmount: this.paymode.currentMode.value,\n }}).then((result)=>{\n // this.paymode.currentMode.steadCashIntegral=result.Integral;\n // this.paymode.currentMode.perIntegral=result.perIntegral;\n // this.paymode.currentMode.cashAmount=result.cashAmount;\n this.paymode.currentMode.integralCashOverOrderAmount=result.isIntegralCashOverOrderAmount;\n this.paymode.currentMode.overchargesAmount=result.Amount-this.paymode.currentMode.value;\n });\n }else{\n this.addPayDirectly(this.paymode.currentMode);\n }\n }else{\n this.addPay(type, bookType);\n }\n }\n\n // 设置密码后更新会员信息\n @action updateMemberInfo = async (_this) => {\n const { IdStore, StoreCode } = this.getLoginInfo();\n const resp = await this.SettlementApi.GetUmemberDTO({ Idmember: this.member.ID, IdStore, StoreCode });\n _this.member = resp;\n _this.paymode.updateMemberStorageCardNo(resp.StorageCardNo, resp.WalletEnabled);\n return Promise.resolve(resp);\n }\n \n // 查看会员卡信息\n @action updateCurrentMode = async (memberId, returnType) => {\n let isOnlyEnabled = returnType ? false : true; //非原单退货为false,其他true\n // 查看会员卡信息\n let result = await this.SettlementApi.getCardInfoByMemberId(memberId, isOnlyEnabled)\n if (result && result.data.length) {\n if (result.data.length === 1) {\n this.paymode.updateCardInfo(result.data[0]);\n return result.data;\n } else {\n if (result.data && result.data.length === 1) {\n this.paymode.updateCardInfo(result.data[0]);\n return result.data;\n } else if (result.data && result.data.length > 1) {\n return result.data;\n } else {\n Message.warn('没有可用储值卡!');\n return false;\n }\n }\n }\n }\n\n @action updateCardInfo = async () => {\n const ctMode = this.paymode && this.paymode.currentMode;\n let cardNo = ctMode && ctMode.storageCardNo;\n let result = await this.SettlementApi.getCardInfoByCardNo(cardNo)\n this.paymode.updateCardInfo(result && result.data);\n }\n\n getLoginInfo() {\n return stores.user.options.get('loginInfo');\n }\n\n handleCzkData = (m) => {\n if(!m || !m.StorageCardNo){\n runInAction(()=>{this.paymode.currentMode.errinfo=\"无效的会员卡号\";});\n }\n else{\n runInAction(()=>{\n this.paymode.currentMode.errinfo=\"\";\n this.paymode.currentMode.memberId = m.ID;\n this.paymode.currentMode.value=getFixedNumber(this.brefund?this.paymode.receivable:Math.max(this.paymode.receivable,0));\n this.updateEvent();\n let message='';\n const sum = _reduce(this.paymode.thePaymodes, (total, cur) => total + cur.value, 0)\n // 对于卡不用判断会员的一些信息\n // if (global.CheckMemberStorageProcessorBlock ) {\n // message= CheckMemberStorageProcessorBlock.execute(m);\n // }\n if (!String.isNullOrEmpty(message)) {\n this.paymode.currentMode.errinfo=message;\n }\n else if(this.checkReceived(this.paymode.currentMode,\"balance\")){\n this.paymode.currentMode.errinfo=\"余额不足\";\n }else if(this.paymode.amount>0 && parseFloat(this.paymode.amount) !== sum && this.paymode.currentMode.value==0){\n this.paymode.currentMode.errinfo=\"实收金额必须录入\";\n } else {\n // 查询成功后将焦点移入下一个输入框\n setTimeout(() => {\n const nextInput = document.querySelector('.czk .received .input');\n nextInput && nextInput.select();\n }, 300)\n }\n });\n }\n }\n loadCzk(v, returnType) {\n if (_trim(v) === \"\") {\n runInAction(() => {\n this.paymode.currentMode.errinfo = \"请输入储值卡\";\n });\n return;\n }\n let isOnlyEnabled = returnType ? false : true; //非原单退货为false,其他true\n return this.SettlementApi.getCardInfoByCardNo(v, isOnlyEnabled)\n .then(async (result) => {\n let data = result.data;\n let m = (data && data.length && data[0]);\n if (result && result.data.length) {\n if (result.data.length === 1) {\n if (m.CardTypeEnum === 'BALANCE_CARD') {\n this.paymode.updateCardInfo(m);\n this.handleCzkData(m);\n return result.data;\n } else {\n // 校验储值卡是否可用\n await this.SettlementApi.validateRetailStorageCard({dto:this.dto,meStorageCardId:m.MeStorageCardId})\n .then((result1) => {\n let data1 = result1.data ? JSON.parse(result1.data)[0] : {};\n if (data1.enable) {\n this.paymode.updateCardInfo(m);\n this.handleCzkData(m)\n return result1.data;\n } else {\n Message.warn(data1.disableReason);\n }\n })\n }\n } else {\n if (result.data && result.data.length === 1) {\n this.paymode.updateCardInfo(result.data[0]);\n return result.data;\n } else if (result.data && result.data.length > 1) {\n return result.data;\n } else {\n Message.warn('没有可用储值卡!');\n return false;\n }\n }\n }\n })\n }\n getCouponList = coupon_code => {\n const { PayStyle, Differentiate } = enumController.getEnumOj();\n const couponApplyRule = PosInitData('CouponApplyRule');\n const { CouponApplyRule } = enumController.getEnumOj();\n if((couponApplyRule == CouponApplyRule.SHOWN_BY_CUSTOMER && !!coupon_code) || couponApplyRule != CouponApplyRule.SHOWN_BY_CUSTOMER){\n let dto = this.dto;\n let promoVoucher = {};\n this.paymode.clearDjqs();\n this.paymode.reCalculationDjqs();\n promoVoucher.coupon_code = coupon_code || \"\";\n promoVoucher.boName = \"Retail\";\n promoVoucher.voucherId = dto.ID;\n let onlinePaymentAmount=0;\n if(dto.OnlinePaymentAmount)\n {\n onlinePaymentAmount=dto.OnlinePaymentAmount;\n }\n promoVoucher.promoLinks = _filter(this.paymode.currentMode.djqs,djq=>djq.checked);\n promoVoucher.totalAmountWithTax =Math.Minus(dto.TotalTaxAmount,onlinePaymentAmount);\n promoVoucher.redBlueFlagEnum = \"BLUE\";\n promoVoucher.meMemberId = dto.Idmember;\n promoVoucher.storeFactorId = dto.Idstore;\n promoVoucher.voucherDetailList = [];\n dto.RetailDetails.forEach(item => {\n let detailDTO = {};\n detailDTO.uuid = item.Code;\n detailDTO.detailBoName = \"RetailDetail\";\n detailDTO.voucherDetailId = item.ID;\n detailDTO.productId = item.Idinventory;\n detailDTO.uomId = item.Idunit;\n detailDTO.productSpecId=item.ProductSpecId;\n detailDTO.isManualFreeGift = item.IsPresent;\n detailDTO.isListPriceIncludingTax = item.TaxFlag || true;\n detailDTO.IsManualChangePrice = item.IsManualChangePrice;\n // if(detailDTO.IsManualChangePrice)//如果是手工改价\n // {\n // detailDTO.listPrice = item.TaxPrice;\n // detailDTO.netAmountWithTax = item.TaxAmount;\n // }\n // else\n // {\n let bookingQuantity=0;\n if(item.BookingQuantity)\n {\n bookingQuantity=item.BookingQuantity;\n }\n detailDTO.listPrice = JSON.getCellValue(item, \"listPrice\");\n detailDTO.netAmountWithTax = Math.Multiply(detailDTO.listPrice,Math.Minus(item.Quantity,bookingQuantity));//item.TaxAmount;\n //}\n detailDTO.taxRate = item.TaxRate;\n detailDTO.quantity = item.Quantity;\n\n detailDTO.amountWithTax = item.RetailAmount;\n // 促销 start\n if(item.PromotionDetails && item.PromotionDetails.length != 0){\n let promoLinks = [];\n item.PromotionDetails.forEach((promotion)=>{\n promoLinks.push({\n promoId:promotion.IdSalesPromotionDTO,\n promoRuleId:promotion.PromotionRuleId\n })\n })\n if(promoLinks.length != 0) detailDTO.promoLinks = promoLinks;\n }\n // 促销 end\n promoVoucher.voucherDetailList.push(detailDTO);\n });\n return this.SettlementApi.findUsefulCouponPromoList(promoVoucher)\n .then((result)=>{\n if(result && result.length != 0 ){\n result.forEach((element)=>{\n const { couponCode, name, tieredAmountResult, fromDate , dateMount , promoMethodEnum , discountPct, nominalAmount,promoId,id} = element || {};\n const { condValue, promoDiscount,displayText,promoRuleId, couponCategoryEnum } = tieredAmountResult\n if (result.IsRepelWithPoints && _find(this.paymode.thePaymodes, (themode) => { return themode.paymentType == PayStyle.jfdx; })) {\n Message.error(`${Differentiate.COUPON}(${result.SN})不可与积分一起使用`);\n }\n else {\n let IsEnable = (couponCategoryEnum === 'RIGUP' || couponCategoryEnum === 'UN_MATCH' || couponCategoryEnum === \"PREPARING\" || couponCategoryEnum === 'PROMO_LIMITED' || couponCategoryEnum === 'COUPON_CONFLICT') ? false : true ;\n this.addDjq(\n couponCode,\n name,\n IsEnable,\n promoMethodEnum == \"CASH_COUPON\" && nominalAmount,\n promoDiscount,\n condValue,\n null,\n false,\n !result.IsRepelWithPoints,\n dto.Idmember,\n dateMount,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n couponCategoryEnum,\n id,\n true, 1)\n }\n })\n if(promoVoucher.coupon_code){\n this.paymode.calcDjqCheckValue(this.paymode.currentMode.djqs[0], this.dto, 'single')\n }\n }else{\n if (promoVoucher.coupon_code) {\n Message.info(`${Differentiate.COUPON}号不存在!`);\n this.getCouponList();\n } else {\n Message.info(`没有找到可使用的${Differentiate.COUPON}!`)\n }\n }\n })\n }\n }\n\n getSettleGift = () => {\n return this.SettlementApi.executeRightsForPos(this.billID)\n }\n\n getRefWareHouseList = () => {\n return this.SettlementApi.getRefWareHouseList();\n }\n\n checkCoupon = async (sn) => {\n let { isNewRetailBCPos } = platform || {};\n if (isNewRetailBCPos) {\n return await this.getCouponList(sn, 'sinlge');\n } else {\n const { PayStyle, Differentiate } = enumController.getEnumOj();\n const params = {request:{\n Uid:this.paymode.currentMode.member.uid || '',\n SN:sn,\n StoreCode:this.dto.Idstore,\n Inventories:_map(_filter(this.dto.RetailDetails,(d)=>{return d.Quantity>0 && !d.IsPresent}),(detail)=>{return {\n IdInventory:detail.Inventory.ID,\n IdUnit:detail.Idunit,\n Code:detail.Inventory.Code,\n FreeItem0:JSON.getCellValue(detail,\"freeitem0\"),\n FreeItem1:JSON.getCellValue(detail,\"freeitem1\"),\n FreeItem2:JSON.getCellValue(detail,\"freeitem2\"),\n FreeItem3:JSON.getCellValue(detail,\"freeitem3\"),\n FreeItem4:JSON.getCellValue(detail,\"freeitem4\"),\n FreeItem5:JSON.getCellValue(detail,\"freeitem5\"),\n FreeItem6:JSON.getCellValue(detail,\"freeitem6\"),\n FreeItem7:JSON.getCellValue(detail,\"freeitem7\"),\n FreeItem8:JSON.getCellValue(detail,\"freeitem8\"),\n FreeItem9:JSON.getCellValue(detail,\"freeitem9\"),\n }}),\n // inventoryCodes:_join(_map(this.dto.RetailDetails,(detail)=>{return detail.Inventory.Code;}),','),\n InventoryClassCodes:_join(_map(_filter(this.dto.RetailDetails,(d)=>{return d.Quantity>0}),(detail)=>{return (detail.Inventory.InventoryClass||{Code:''}).Code;}),','),\n Amount:this.paymode.amount\n }}\n return this.SettlementApi.CheckCoupon(params)\n .then((result)=>{\n if(_find(this.paymode.currentMode.djqs,(djq)=>{return djq.code==result.SN})){\n Message.info(`${Differentiate.COUPON}已添加`);\n }else if(result.IsRepelWithPoints && _find(this.paymode.thePaymodes,(themode)=>{return themode.paymentType==PayStyle.jfdx;})){\n Message.error(`${Differentiate.COUPON}(${result.SN})不可与积分一起使用`);\n }\n else{\n this.addDjq(\n result.SN,\n result.Title,\n result.ReduceAmount,\n result.StartAmount,\n result.LastTS,\n false,\n !result.IsRepelWithPoints,\n result.UMemberID)\n }\n\n })\n }\n }\n @action addDjq(\n promoCouponCode,\n name,\n IsEnable,\n nominalAmount,\n amount,\n doorsill,\n LastTS,\n checked,\n IsRepelWithPoints,\n UMemberID,\n expired,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n couponCategoryEnum,\n id,\n unCheck,count\n ){\n let djq={\n code: promoCouponCode,\n promoCouponCode,\n name,\n IsEnable,\n nominalAmount,\n amount,\n doorsill,//:\"无门槛\"\n LastTS,\n checked,\n IsRepelWithPoints,\n UMemberID,\n expired, //还剩多少过期\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n couponCategoryEnum,\n id,\n count: (count === 1 && (couponCategoryEnum === 'RIGUP' || couponCategoryEnum === 'UN_MATCH' || couponCategoryEnum === \"PREPARING\" || couponCategoryEnum === 'PROMO_LIMITED' || couponCategoryEnum === 'COUPON_CONFLICT') ? 1 : null)\n };\n this.paymode.currentMode.djqs.push(\n djq\n );\n // let copyData = _clonedeep(this.data[targetIndex]);\n !unCheck && !this.boriginReturn && this.paymode.calcDjqValue(djq);\n }\n\n setCurrentMode(id,type,append){\n const { PayStyle } = enumController.getEnumOj();\n const mode=_find(this.paymode.thePaymodes,{paymethodId:id});\n if(mode){\n this.paymode.currentMode=mode;\n if(this.newStyle){\n this.afterSetCurrentMode(type);\n }\n }else{\n this.paymode.currentMode=this.genNewMode(type,append);\n this.afterSetCurrentMode(type);\n }\n }\n \n afterSetCurrentMode(type){\n const { PayStyle } = enumController.getEnumOj();\n if(type==PayStyle.djq){\n this.paymode.calcDjqValue();\n }else if(type==PayStyle.jfdx){\n //获取可兑换的金额\n if(this.newStyle){\n const themode=_find(this.paymode.thePaymodes,{paymentType:PayStyle.jfdx});\n if(themode && parseFloat(themode.value||0)!=0){\n this.paymode.currentMode.value=themode.value;\n }\n }\n\n //积分抵现不包含运费\n let BuyerPayFreight = this.dto.BuyerPayFreight;\n let DistributionMode = this.dto.DistributionMode;\n let IdbusiType = this.dto.IdbusiType;\n const { PreSellOrBook, PercentageWhenBook } = this.getLoginInfo();\n let value = 0;\n if((DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && BuyerPayFreight && BuyerPayFreight > 0){\n value = getFixedNumber(Math.Minus(this.paymode.amount, BuyerPayFreight))\n } else if (IdbusiType == 38 && PreSellOrBook == 'BOOK' && PercentageWhenBook < 100 && (!DistributionMode.Id || DistributionMode.Id == 'ON_SITE_PICKUP')){\n //预订场景下:现场提货,且订金比例非100%时,积分抵现按全款计算(因为只有全款才能使用积分抵现)\n value = this.paymode.bookMaxValue;\n } else {\n value = this.paymode.amount;\n }\n\n this.SettlementApi.CalculdateIntegralSteadCash({IntegralSteadCashParams:{\n Idmember:this.paymode.currentMode.memberId,\n TotalTaxAmount:value,\n BalanceTaxAmount:value,\n }}).then((result)=>{\n this.paymode.currentMode.member.setExchangable(result.MaxAmount);\n this.paymode.currentMode.perIntegral=result.perIntegral;\n this.paymode.currentMode.cashAmount=result.cashAmount;\n this.paymode.currentMode.integralCashOverOrderAmount=result.isIntegralCashOverOrderAmount;\n this.updateEvent();\n if(this.checkReceived(this.paymode.currentMode,\"exchangable\")){\n runInAction(()=>{this.paymode.currentMode.errinfo='余额不足'})\n }\n });\n\n }\n }\n\n checkReceived(mode,name){\n return !this.brefund && parseFloat(mode.value)>parseFloat(mode.maxamount || mode.member[name]||0);\n }\n\n genNewMode(type,notwithm,v,isQuick){\n const { PayStyle } = enumController.getEnumOj();\n let value=getFixedNumber(v || (this.brefund?this.paymode.receivable:Math.max(this.paymode.receivable,0)));\n let themode=_find(this.paymode.paymodes,{'paymentType':type});\n let memberId = (this.member && this.member.ID ? this.member.ID : null);\n const mode = observable({\n paymethodId:this.paymode.counter,\n name:themode.name,\n exchangeRate:themode.exchangeRate,\n calDirection:themode.calDirection,\n thridPayment: themode.thridPayment,\n value,\n value2:getFixedNumber(themode.calDirection==\"88\"?value / themode.exchangeRate:(value * themode.exchangeRate)),\n value3:value,\n order:this.paymode.thePaymodes.length+1,\n paymentType:type,\n djqs:[],\n card: null,\n memberId: !notwithm?memberId:null,\n member:new Member(!notwithm?this.member:null),\n authCode:'',\n steadCashIntegral:null,\n errinfo:'',\n maxamount:this.paymode.amount,\n virtualPay: themode.virtualPay\n });\n if(type==PayStyle.hyczk){\n if(!mode.storageCardNo){\n runInAction(()=>{mode.errinfo='未录入手机号或储值卡号'})\n }else if(this.checkReceived(mode,\"balance\")){\n runInAction(()=>{mode.errinfo='余额不足'})\n }\n\n }\n if(type==PayStyle.hyczk || type==PayStyle.jfdx || type==PayStyle.djq){\n this.setMaxAmount(type,mode);\n }\n console.log(`当前操作结算方式信息:${mode}`);\n return mode;\n }\n\n setMaxAmount(type,mode){\n const { PayStyle } = enumController.getEnumOj();\n let sum=0;\n if(type==PayStyle.hyczk){\n _each(_filter(this.paymode.thePaymodes,(m)=>{return m.paymentType==type;}),(q)=>{\n sum=Math.Add(sum,q.value);\n });\n }else if(type==PayStyle.djq || type==PayStyle.jfdx){\n _each(_filter(this.paymode.thePaymodes,(m)=>{return m.paymentType==PayStyle.djq || m.paymentType==PayStyle.jfdx;}),(q)=>{\n sum=Math.Add(sum,q.value);\n });\n }\n\n this.amountHandler && this.amountHandler(type).then(()=>{\n runInAction(()=>{\n\n //预售储值结算应包含运费\n let BuyerPayFreight = this.dto.BuyerPayFreight;\n let DistributionMode = this.dto.DistributionMode;\n let value = 0;\n if((DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && BuyerPayFreight && BuyerPayFreight > 0 && type == PayStyle.hyczk){\n value = getFixedNumber(parseFloat(this.context.viewModel.getViewItem('Voucher').availableAmount) + parseFloat(BuyerPayFreight))\n } else {\n value = this.context.viewModel.getViewItem('Voucher').availableAmount;\n }\n mode.maxamount=getFixedNumber(Math.Minus(value,sum));\n this.updateEvent();\n })\n })\n }\n\n @action changeFocusOnly(type){\n this.paymode.currentFocus=type;\n }\n\n @action changeClickFocusOnly(type) {\n this.paymode.currentFocus=type;\n // 获取焦点时带入剩余的值\n let mode=_find(this.paymode.thePaymodes,{'paymentType':type});\n if(mode){\n const shouldSetValue =getFixedNumber(parseFloat(this.paymode.receivable) + parseFloat(mode.value));\n mode.value = shouldSetValue;\n mode.value2 = getFixedNumber(mode.calDirection==\"88\"?shouldSetValue / mode.exchangeRate:(shouldSetValue * mode.exchangeRate));\n mode.value3 = shouldSetValue;\n this.paymode.calcReserved('bookPay'); //参数multiPay代表复合结算\n }\n }\n\n @action changeValue(index,value,blur,type){\n let mode=_find(this.paymode.thePaymodes,{'paymethodId':index});\n let v=blur?getFixedNumber(value) : (isNaN(value)&&value!='-'?0.00:value);\n if(mode){\n if(mode.exchangeRate != 1){\n if(getFixedNumber(mode.calDirection==\"88\"?mode.value3 / mode.exchangeRate:(mode.value3 * mode.exchangeRate)) !=v){\n mode.value=getFixedNumber(mode.calDirection==\"88\"?v*mode.exchangeRate : (v / mode.exchangeRate));\n }\n else{\n mode.value=mode.value3;\n }\n mode.value2=v;\n }else{\n mode.value=v;\n mode.value2=v;\n }\n\n this.paymode.calcReserved(type);\n }\n }\n\n @action addPayDirectly(pay){\n const { PayStyle } = enumController.getEnumOj();\n if(!_find(this.paymode.thePaymodes,{paymethodId:pay.paymethodId})){\n let pos=this.paymode.thePaymodes.length;\n if(pay.paymentType==PayStyle.hyczk){\n let index=_findLastIndex(this.paymode.thePaymodes,(m)=>{return m.paymethodId!=pay.paymethodId && m.paymentType==PayStyle.hyczk});\n pos=index==-1?pos:(index+1);\n }\n // this.paymode.thePaymodes.push(pay);\n this.paymode.thePaymodes.splice(pos,0,pay);\n }\n this.paymode.calcReserved();\n }\n\n @action addPay(type, bookType, isQuick){\n const { PayStyle } = enumController.getEnumOj();\n let pos = this.paymode.thePaymodes.length;\n if (type == PayStyle.hyczk) {\n let index = _findLastIndex(this.paymode.thePaymodes, (m) => { return m.paymentType == PayStyle.hyczk });\n pos = index == -1 ? pos : (index + 1);\n }\n this.paymode.thePaymodes.splice(pos, 0, this.genNewMode(type,this.newStyle && type==PayStyle.hyczk,undefined, isQuick));\n this.paymode.calcReserved(bookType);\n }\n\n @action delPay(index, bookType){\n const { PayStyle } = enumController.getEnumOj();\n _remove(this.paymode.thePaymodes,(mode)=>{\n return mode.paymethodId===index;\n });\n this.paymode.currentFocus = -1;\n this.paymode.calcReserved(bookType);\n }\n\n // 获取储值是否重复, 在commit方法中使用\n findStorageBillValidate () {\n const { PayStyle } = enumController.getEnumOj();\n runInAction(()=>{\n this.dto.StorageMutiSettleDetails=[];\n const thePaymodes = this.newStyle ?_filter(this.paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):this.paymode.thePaymodes;\n _each(thePaymodes,(mode)=>{\n const themode=_find(this.paymode.paymodes,{'paymentType':mode.paymentType});\n\n let value=parseFloat(mode.value);\n let giveChange=null;\n if(mode.paymentType==PayStyle.xianjin && this.paymode.receivable<0 && value>Math.abs(this.paymode.receivable)){\n value=Math.Add(value,this.paymode.receivable);\n giveChange=Math.abs(this.paymode.receivable);\n }\n this.dto.StorageMutiSettleDetails.push({\n Code:mode.paymethodId,\n StorageAmount:value,\n GiveChange:giveChange,\n IdsettleStyle:themode.idSettleStyle,\n IdbankAccount:themode.idBankAccount,\n PaymentCode:mode.authCode,\n DynamicPropertyKeys:[],\n DynamicPropertyValues:[],\n DataSource:{Id:this.dataSource},\n })\n });\n\n });\n return this.SettlementApi.findStorageBillValidate({...this.dto})\n }\n\n //判断是否重复弹框\n repeatStorageModal = (content) => {\n return new Promise((resolve, reject) => {\n ModalWraper.confirm({\n title: '',\n okText: '继续储值',\n className: 'repeat-modal',\n zIndex: 1007,\n content,\n onOk: async () => {\n let ret = await this.saveMember();\n if (ret === false) {\n resolve(false)\n } else {\n resolve(true)\n }\n },\n onCancel() {\n resolve(false)\n }\n })\n })\n }\n\n async commit(bTest){\n console.log('settlementStore.commit开始,参数:' + bTest);\n if (bTest) {\n return Promise.resolve(true);\n }\n const status = this.type;\n try {\n const paylist = this.paymode.thePaymodes.filter(v => !!v.thridPayment && Math.abs(v.value) > 0) || [];\n if (paylist && paylist.length > 1) {\n Message.warn('二开支付目前仅支持单一结算方式。');\n return Promise.resolve(false);\n }\n if (status == 1) {\n const ret = await this.findStorageBillValidate();\n const { data: { code, returnMsg } = {} } = ret || {}\n if (code && code == 10001) {\n const state = await this.repeatStorageModal(returnMsg);\n if (state === false) return Promise.resolve(false);\n } else {\n let ret1 = await this.saveMember();\n if (ret1 === false) {\n return Promise.resolve(false);\n }\n }\n } else {\n await stores.offlineSys.generatorCode(this.dto);\n let ret2 = await this.save();\n if (ret2 === false) {\n return Promise.resolve(false);\n }\n await stores.offlineSys.retailSequenceUpload();\n }\n return Promise.resolve(true);\n } catch (err) {\n console.error('settlementStore.commit失败,错误信息:' + err);\n //其他支付失败时,处理二开支付情况。\n this.thirdPayRefund(status == 1 ? 2 : 1);\n return Promise.resolve(err);\n }\n }\n\n handlePrint(resp) {\n // 储值打印\n return printDispatch(DoNameList.DO_STORAGE_PRINT,resp,{})\n }\n\n async saveMember(){\n const { PayStyle, TradeType } = enumController.getEnumOj();\n runInAction(()=>{\n this.dto.StorageMutiSettleDetails=[];\n const thePaymodes = this.newStyle ?_filter(this.paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):this.paymode.thePaymodes;\n _each(thePaymodes,(mode)=>{\n const themode=_find(this.paymode.paymodes,{'paymentType':mode.paymentType});\n\n let value=parseFloat(mode.value);\n let giveChange=null;\n if(mode.paymentType==PayStyle.xianjin && this.paymode.receivable<0 && value>Math.abs(this.paymode.receivable)){\n value=Math.Add(value,this.paymode.receivable);\n giveChange=Math.abs(this.paymode.receivable);\n }\n this.dto.StorageMutiSettleDetails.push({\n Code:mode.paymethodId,\n StorageAmount:value,\n GiveChange:giveChange,\n IdsettleStyle:themode.idSettleStyle,\n IdbankAccount:themode.idBankAccount,\n PaymentCode:mode.authCode,\n DynamicPropertyKeys:[],\n DynamicPropertyValues:[],\n DataSource:{Id:this.dataSource},\n ThirdPaymentInfo: themode.thridPayment || null,\n ThirdPaymentReturnInfo:mode.thirdPaymentReturnInfo || null\n })\n });\n\n });\n // cc结算调用\n let IPMSG = {};\n if (!!window.localStorage.IPMSG) {\n IPMSG = JSON.parse(window.localStorage.IPMSG);\n }\n let dtoParams = this.dto;\n //处理存在二开支付情况\n let payList = dtoParams.StorageMutiSettleDetails.filter(v => v.ThirdPaymentInfo);\n if (payList && payList.length > 0) {\n let payment = payList[0];\n let tradeType = payment && payment.StorageAmount > 0 ? TradeType.PAY : TradeType.REFUND;\n const ret = await this.thirdPay(2, payment, tradeType, dtoParams);\n const { type, data, msg, code } = ret || {};\n if (type === true) {\n dtoParams = data;\n } else {\n Message.warn(`刷卡支付失败,错误码:${code}`);\n return false;\n }\n }\n this.dtoParams = dtoParams;\n console.log('储值结算信息:', dtoParams);\n return this.SettlementApi.INewRetailMemberStorageSave({ dto: dtoParams }).then((resp) => {\n this.handlePrint(resp);\n });\n }\n\n async save(){\n const { PayStyle, TradeType } = enumController.getEnumOj();\n runInAction(()=>{\n this.dto.RetailPaymentDetails=[];\n this.dto.RetailStorageDetails=[];\n this.dto.RetailCouponDetails=[];\n let czkSum=0;\n let count = 0;\n const thePaymodes = this.newStyle ?_filter(this.paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):this.paymode.thePaymodes;\n _each(thePaymodes,(mode, index)=>{\n const themode=_find(this.paymode.paymodes,{'paymentType':mode.paymentType});\n if(mode.paymentType==PayStyle.hyczk){\n czkSum=Math.Add(czkSum,mode.value);\n this.dto.RetailStorageDetails.push({\n Code:mode.paymethodId,\n MeStorageCardId: mode.meStorageCardId,\n StoragePaymentAmount:mode.value,\n IsOrigReturn:false,\n BalanceStorage:mode.balance,\n Idmember:mode.memberId,\n DynamicPropertyKeys:[],\n DynamicPropertyValues:[],\n DataSource:{Id:this.dataSource},\n Password:mode.authCode,\n })\n }else{\n let value=parseFloat(mode.value);\n let giveChange=null;\n if(mode.paymentType==PayStyle.xianjin && this.paymode.receivable<0 && value>Math.abs(this.paymode.receivable)){\n value=Math.Add(value,this.paymode.receivable);\n giveChange=Math.abs(this.paymode.receivable);\n }\n this.dto.RetailPaymentDetails.push({\n Code:mode.paymethodId,\n OrigAmount:mode.exchangeRate!=1?mode.value2:value,\n Amount:value,\n GiveChange:giveChange,\n IdsettleStyle:themode.idSettleStyle,\n IdbankAccount:themode.idBankAccount,\n Idcurrency:themode.idCurrency,\n ExchangeRate:themode.exchangeRate,\n PaymentCode:mode.authCode,\n SteadCashIntegral:mode.steadCashIntegral,\n OverchargesAmount:mode.overchargesAmount,\n DynamicPropertyKeys:[],\n DynamicPropertyValues:[],\n DataSource:{Id:this.dataSource},\n ThirdPaymentInfo: themode.thridPayment || null,\n SettleStyle: {Name: mode.name},\n ThirdPaymentReturnInfo:mode.thirdPaymentReturnInfo || null\n })\n if(mode.paymentType==PayStyle.djq){\n _each(this.paymode.checkList && this.paymode.checkList.length ? this.paymode.checkList: mode.djqs,(djq)=>{\n this.dto.RetailCouponDetails.push({\n CouponCode:djq.promoCouponCode,\n ReductionAmount:djq.amount,\n EnableAmount:djq.doorsill,\n CouponTitle:djq.name,\n IdMember:djq.UMemberID?mode.memberId:null,\n LastTS:djq.LastTS,\n PromotionId:djq.promoId,\n PromotionRuleId:djq.promoRuleId,\n PromoCouponAllocatedId:djq.id,\n DataSource:{Id:this.dataSource},\n })\n })\n }\n }\n });\n if (this.dto.RetailStorageDetails.length > 0) {\n const themode = _find(this.paymode.paymodes, { 'paymentType': PayStyle.hyczk });\n this.dto.RetailPaymentDetails.push({\n Code: this.paymode.counter,\n OrigAmount: czkSum,\n Amount: czkSum,\n IdsettleStyle: themode.idSettleStyle,\n IdbankAccount: themode.idBankAccount,\n DynamicPropertyKeys: [],\n DynamicPropertyValues: [],\n DataSource: { Id: this.dataSource },\n RetailStorageDetails: this.dto.RetailStorageDetails,\n })\n }\n });\n console.log(`结算数据:`, this.dto);\n // cc结算调用\n let IPMSG = {};\n if (!!window.localStorage.IPMSG) {\n IPMSG = JSON.parse(window.localStorage.IPMSG);\n }\n const RetailTypeEnum = this.dto.IdbusiType == 36 ? \"INTEGRAL_EXCHANGE\" : \"NORMAL\";\n const { PreSellOrBook, PercentageWhenBook } = this.getLoginInfo();\n const { IdbusiType, DistributionMode } = this.dto || {};\n if(IdbusiType == 38 && PreSellOrBook == 'BOOK' && PercentageWhenBook < 100 && (!DistributionMode.Id || DistributionMode.Id == 'ON_SITE_PICKUP')){\n let prepaidAmount = getFixedNumber(this.dto.RetailPaymentDetails.reduce((c, item) => c + (item.Amount || 0), 0));\n let fullPayment = getFixedNumber(this.dto.RetailDetails.reduce((c, item) => c + (item.TaxAmount || 0), 0));\n this.isFull = fullPayment == prepaidAmount; // 是否全款\n runInAction(()=>{\n this.dto.PrepaidAmount = prepaidAmount;\n });\n }\n if (this.dto.IdbusiType == 37 && await this.checkIntegralExchangeReturn(this.dto.RetailDetails[0].ReturnSourceId) || this.dto.IdbusiType != 37) {\n let dtoParams = { ...this.dto.cut(), RetailOms: { RetailTypeEnum } };\n //处理存在二开支付情况\n let payList = dtoParams.RetailPaymentDetails.filter(v => v.ThirdPaymentInfo);\n if (payList && payList.length > 0) {\n let payment = payList[0];\n let tradeType = payment && payment.Amount > 0 ? TradeType.PAY : TradeType.REFUND;\n const ret = await this.thirdPay(1, payment, tradeType, dtoParams);\n const { type, data, msg, code } = ret || {};\n if (type === true) {\n dtoParams = data;\n } else {\n Message.warn(`刷卡支付失败,错误码:${code}`);\n return false;\n }\n }\n this.dtoParams = dtoParams;\n console.log('结算信息:', dtoParams);\n return this.SettlementApi.retailPosSettle({\n dto: dtoParams,\n cip: IPMSG.query || \"\",\n longitude: IPMSG.longitude || \"\",\n latitude: IPMSG.latitude || \"\"\n }).then((resp) => {\n const { ID } = resp || {};\n this.setDtoID(ID);\n this.billID = ID;\n this.paymode.checkList = [];\n })\n }\n }\n\n //裁剪二开支付数据\n removeThirdPayDto(dto) {\n let data = {...dto};\n delete data['DynamicPropertyKeys'];\n delete data['DynamicPropertyValues'];\n return data;\n }\n\n /**\n * 二开支付\n * vType:1零售单、2储值单\n * payment:结算方式\n * trade:00表示结算、02表示退款\n * dto:结算数据集合\n */\n async thirdPay(vType, payment, trade, dto) {\n try {\n let cto = this.removeThirdPayDto(dto);\n const params = { VoucherType: vType, Payment: payment, TradeType: trade, dto: cto };\n console.log('刷卡信息:', JSON.stringify(params));\n let ret = await new Promise((resolve, reject) => {\n nativeMs.setIpcRendererMethod('ThirdPayment', { ...params }, res => {\n return resolve(res);\n })\n })\n console.log('刷卡返回信息:', ret);\n ret = JSON.parse(ret);\n const { Code, Message, Result } = ret || {};\n if (Code > 0) {\n return { type: false, data: null, msg: Message, code: Code };\n } else if (trade == '00') {\n const { ThirdPaymentReturnInfo } = Result || {};\n if (vType == 1) {\n dto.RetailPaymentDetails.forEach(v => {\n if (v.ThirdPaymentInfo != null && Math.abs(v.Amount) > 0) {\n v.ThirdPaymentReturnInfo = ThirdPaymentReturnInfo;\n }\n })\n } else if (vType == 2) {\n dto.StorageMutiSettleDetails.forEach(v => {\n if (v.ThirdPaymentInfo != null && Math.abs(v.StorageAmount) > 0) {\n v.ThirdPaymentReturnInfo = ThirdPaymentReturnInfo;\n }\n })\n }\n return { type: true, data: dto, msg: Message, code: Code };\n } else if (trade == '02') {\n return { type: true, data: dto, msg: Message, code: Code };\n }\n } catch (ex) {\n return { type: false, data: null, msg: ex, code: '9999' }\n }\n }\n\n //二开支付强制退款情况\n async thirdPayRefund(type) {\n const dto = (type == 1) ? this.dtoParams.RetailPaymentDetails : this.dtoParams.StorageMutiSettleDetails;\n const pay = dto && dto.filter(v => v.ThirdPaymentInfo);\n if (pay && pay.length > 0) {\n setTimeout(() => {\n Message.warn(\"支付出现异常,将发起刷卡退款。\", { duration: 4.5 })\n }, 1000);\n const payment = pay[0];\n const { TradeType } = enumController.getEnumOj();\n setTimeout(async () => {\n let ret = await this.thirdPay(type, payment, TradeType.REFUND, dto);\n const { msg } = ret || {};\n console.log(`刷卡支付退款:${msg}`);\n }, 4500);\n }\n }\n\n\n @action setDtoID(id){\n this.context.viewModel.data.ID=id;\n }\n\n checkIntegralExchangeReturn = (id) => {\n return new Promise((resolve, reject) => {\n this.SettlementApi.GetNewIntegralExchange({param: {refVoucherId:id}}).then((resp) => {\n if( resp && resp.expireIntegral>0){\n ModalWraper.confirm({\n className: 'tplus-confirm-modal',\n title: \"温馨提示\",\n content:`存在已经过期的积分${resp.expireIntegral}退货后积分不会返还。是否继续退货?`,\n cancelable: false,\n onOk() {\n resolve(true);\n },\n onCancel() {\n reject(false);\n }\n })\n }else{\n resolve(true);\n }\n })\n })\n }\n\n async querySettleResult(){\n try{\n return Promise.resolve(await this.SettlementApi.QuerySettleResult({RetailCode: this.dto.Code}));\n }catch(e){\n return Promise.resolve({Flag:\"1\"});\n }\n }\n\n setCookie(key, val) {\n var exp = new Date();\n exp.setTime(moment().endOf('day').valueOf());\n document.cookie = key + '=' + val + ';expires=' + exp.toGMTString();\n }\n\n getAllCookies() {\n var cookies = document.cookie.split(/;\\s/g);\n var cookieObj = {};\n cookies.forEach(function (item) {\n var key = item.split('=')[0];\n cookieObj[key] = item.split('=')[1];\n });\n return cookieObj;\n }\n\n async validePwd(value){\n let { isNewRetailBCPos } = platform || {};\n try{\n if (isNewRetailBCPos) {\n let cook1 = this.getAllCookies()['errorPwd'];\n let cook2 = cook1 && JSON.parse(cook1);\n let message = '密码输入错误';\n let memberStorageId = this.paymode.currentMode.meStorageCardId;\n if (cook2) {\n if (cook2.hasOwnProperty(memberStorageId + \"\")) {\n if (cook2[memberStorageId] > 3) {\n message = '今日密码错误已达上限,不可使用储值消费,请明日再试,如忘记请重置密码或修改密码。';\n return Promise.resolve(message);\n }\n }\n }\n const {cardTypeEnum, memberId, meStorageCardId, cardStatusEnum} = this.paymode.currentMode;\n let checkPaymentPasswordParams = {};\n let checkPaymentPasswordId = null;\n if (cardTypeEnum === 'BALANCE_CARD') {\n checkPaymentPasswordParams = {\n md5Password: User.pwdEncrypt(value.pwd), \n cardType: cardTypeEnum\n }\n checkPaymentPasswordId = memberId\n } else {\n if (cardStatusEnum === 'BINDING' && this.member && this.member.ID === memberId) {\n checkPaymentPasswordParams = {\n md5Password: User.pwdEncrypt(value.pwd), \n password: value.pwd, \n cardType: cardTypeEnum\n }\n checkPaymentPasswordId = meStorageCardId\n } else {\n checkPaymentPasswordParams = {\n password: value.pwd, \n cardType: cardTypeEnum\n }\n checkPaymentPasswordId = meStorageCardId\n }\n }\n const result = await this.SettlementApi.checkPaymentPassword(checkPaymentPasswordParams, checkPaymentPasswordId)\n if (!result.data) {\n if (cook2) {\n if (cook2.hasOwnProperty(memberStorageId + \"\")) {\n let count = cook2[memberStorageId];\n cook2[memberStorageId] = count + 1;\n } else {\n cook2[memberStorageId] = 1;\n }\n } else {\n cook2 = {};\n cook2[memberStorageId] = 1;\n }\n this.setCookie('errorPwd', '', -1);\n this.setCookie('errorPwd', JSON.stringify(cook2));\n }\n return Promise.resolve(result.data?\"\":message);\n } else {\n const result = await this.SettlementApi.CheckoutMemberPassword({\"CheckoutParams\": {\n \"Idmember\": value.id,\n \"Password\":value.pwd\n }});\n return Promise.resolve(result.Success?\"\":result.Message);\n }\n }catch(e){\n return \"failed\";\n }\n }\n}\n\nexport class PayMode{\n _counter=0\n amount=0 //应收\n onlineamount=0\n maxamount=0;\n @observable currentFocus=\"\"\n @observable received=0;\n @observable receivable=0;\n @observable paymodes =[]\n @observable thePaymodes=[]\n bookMaxValue=0;\n isNotFullBook=false; //预订场景下,现场提货,且选项设置订金比例非100% or 取货最大补款数大于0时 为 true\n isNotFullOnlyBook=false; //只是预订场景下,现场提货,且选项设置订金比例非100%时 为 true\n @observable storageCardNo = null;\n @observable balance = null;\n // @observable store = null;\n currentMode=null;\n checkList = [];\n updateEvent\n settle={\n name:\"复合结算\",\n hotKey:\"Ctrl+M\",\n }\n constructor (){\n // this.amount=getFixedNumber(amount);\n // this.calcReserved();\n this.SettlementApi = SettlementApi\n }\n\n @action clean(){\n this.thePaymodes=[];\n this.calcReserved();\n }\n\n @action clear(){\n this.thePaymodes=[];\n this.calcReserved();\n this.paymodes = [];\n }\n\n setAmount(a,o){\n this.amount=getFixedNumber((a || 0)-(o || 0));\n this.onlineamount=getFixedNumber(o || 0);\n this.calcReserved();\n return this.amount<0;\n }\n\n @action calcReserved(type){\n var sum=0;\n _each(this.thePaymodes,(mode)=>{\n sum=Math.Add(sum,(mode.value==\"\"?0:mode.value));\n });\n this.received = getFixedNumber(sum);\n if(type === 'bookPay' && this.isNotFullBook){\n if ( this.amount <= sum && sum <= this.bookMaxValue){\n this.receivable = getFixedNumber(0);\n }\n if (sum < this.amount){\n this.receivable = getFixedNumber(this.amount - sum);\n }\n if (sum > this.bookMaxValue){\n this.receivable = getFixedNumber(this.bookMaxValue - sum);\n }\n }else{\n this.receivable = getFixedNumber(this.amount - sum);\n }\n }\n\n @action calcCheckList = () => {\n this.checkList = [];\n }\n\n @action updateMemberStorageCardNo(storageCardNo, walletEnabled) {\n this.currentMode.storageCardNo = storageCardNo;\n this.currentMode.walletEnabled = walletEnabled;\n }\n\n @action updateCardInfo(m) {\n this.currentMode.cardStatusEnum = m.CardStatusEnum;\n this.currentMode.isNeedPassword = m.IsNeedPassword;\n this.currentMode.meStorageCardId = m.MeStorageCardId;\n this.currentMode.storageCardNo = m.StorageCardNo;\n this.currentMode.balance = m.BalanceStorage;\n this.currentMode.rawbalance = m.BalanceStorage;\n this.currentMode.cardTypeEnum = m.CardTypeEnum;\n this.currentMode.walletEnabled = m.WalletEnabled;\n this.currentMode.memberId = m.ID;\n this.currentMode.freePaymentPasswordStore = m.FreePaymentPasswordStore;\n }\n\n @action calcDjqCheckValue(q1, dto, params) {\n let useLimitPerOrder = PosInitData('UseLimitPerOrder');\n let qList = _filter(this.currentMode.djqs,djq=>djq.checked);\n if (qList.length === useLimitPerOrder && !q1.checked) {\n Message.warn('本单最多可用'+useLimitPerOrder+'张');\n return;\n }\n if (params === 'single') {\n this.checkList = [];\n }\n const { PayStyle, Differentiate } = enumController.getEnumOj();\n\n if(q1){\n if(!this.currentMode.boriginReturn && parseFloat(this.currentMode.maxamount)<=0){\n Message.error(`本单没有${Differentiate.COUPON}可用金额,该券不可使用。`);\n return ;\n }\n let q=_find(this.currentMode.djqs,(djq)=>{return djq.promoCouponCode==q1.promoCouponCode});\n if(q && !q.checked && parseFloat(this.amount)<parseFloat(q.doorsill)){\n Message.error(\"本单金额低于使用门槛,该券不可使用。\");\n return ;\n }\n //判断是否是选择优惠券 //CC优惠券只能使用一个\n // if (q1 && !q1.checked && isNewRetailBCPos) {\n // // 检查是否有已经选定优惠券 并且去除选定的优惠券\n // this.currentMode.djqs.forEach((djq, index) => {\n // if (djq.checked) this.currentMode.djqs[index].checked = false;\n // })\n // }\n q && (q.checked = !q.checked);\n }\n var sum=0;\n // console.log(this.store, 'stores-------');\n if (!q1.checked) {\n this.checkList.forEach((ele, i) => {\n if (ele.id === q1.id) {\n this.checkList.splice(i, 1);\n }\n })\n } else {\n this.checkList.push(q1);\n }\n\n this.checkList.forEach((ele) => {\n sum=Math.Add(sum,ele.amount);\n })\n this.currentMode.value = getFixedNumber(Math.min(this.receivable,sum,this.currentMode.maxamount));\n console.log(this.receivable, sum, Math.min(this.receivable,sum,this.currentMode.maxamount), 'sum---------');\n this.currentMode.receivable = getFixedNumber(this.receivable - Math.min(this.receivable,sum,this.currentMode.maxamount));\n this.currentMode.overchargesAmount=getFixedNumber(sum-this.currentMode.value);\n if (params === 'single') {\n return;\n }\n let promoVoucher = {};\n promoVoucher.boName = \"Retail\";\n // promoVoucher.promoLinks = _filter(this.currentMode.djqs,djq=>djq.checked);\n promoVoucher.meMemberId = this.currentMode.member.id;\n promoVoucher.storeFactorId = PosInitData('storeID');\n promoVoucher.voucherDetailList = [];\n dto.RetailDetails.forEach(item => {\n let detailDTO = {};\n detailDTO.uuid = item.Code;\n detailDTO.detailBoName = \"RetailDetail\";\n detailDTO.voucherDetailId = item.ID;\n detailDTO.productId = item.Idinventory;\n detailDTO.uomId = item.Idunit;\n detailDTO.productSpecId=item.ProductSpecId;\n detailDTO.isManualFreeGift = item.IsPresent;\n detailDTO.isListPriceIncludingTax = item.TaxFlag || true;\n detailDTO.IsManualChangePrice = item.IsManualChangePrice;\n\n\n\n\n // if(detailDTO.IsManualChangePrice)//如果是手工改价\n // {\n // detailDTO.listPrice = item.TaxPrice;\n // detailDTO.netAmountWithTax = item.TaxAmount;\n // }\n // else\n // {\n\n let bookingQuantity=0;\n if(item.BookingQuantity)\n {\n bookingQuantity=item.BookingQuantity;\n }\n detailDTO.listPrice = JSON.getCellValue(item, \"listPrice\");\n detailDTO.netAmountWithTax = Math.Multiply(detailDTO.listPrice,Math.Minus(item.Quantity,bookingQuantity));//item.TaxAmount;\n detailDTO.taxRate = item.TaxRate;\n detailDTO.quantity = item.Quantity;\n\n detailDTO.amountWithTax = item.RetailAmount;\n // 促销 start\n if(item.PromotionDetails && item.PromotionDetails.length != 0){\n let promoLinks = [];\n item.PromotionDetails.forEach((promotion)=>{\n promoLinks.push({\n promoId:promotion.IdSalesPromotionDTO,\n promoRuleId:promotion.PromotionRuleId\n })\n })\n if(promoLinks.length != 0) detailDTO.promoLinks = promoLinks;\n }\n // 促销 end\n promoVoucher.voucherDetailList.push(detailDTO);\n });\n promoVoucher.promoLinks = this.checkList;\n return this.SettlementApi.findUsefulCouponPromoList(promoVoucher).then((result)=>{\n if(result && result.length != 0 ){\n result.forEach((element, index) => {\n let djq1 = false;\n this.currentMode.djqs.forEach((djq) => {\n if (element.id === djq.id) {\n djq1 = true;\n }\n })\n const { couponCode, name, tieredAmountResult, fromDate , dateMount , promoMethodEnum , discountPct, nominalAmount,promoId,id, doorsill} = element || {};\n const { condValue, promoDiscount,displayText,promoRuleId, couponCategoryEnum } = tieredAmountResult\n if(!djq1) {\n // this.currentMode.djqs.push({\n // promoCouponCode: element.CouponCode,\n // name: element.CouponTitle,\n // IsEnable: true,\n // amount: element.ReductionAmount,\n // doorsill: element.EnableAmount,\n // LastTS: element.LastTS,\n // checked: false,\n // IsRepelWithPoints: true,\n // UMemberID: dto.Idmember,\n // expired: null,\n // displayText,\n // promoMethodEnum,\n // discountPct,\n // promoId,\n // promoRuleId,\n // couponCategoryEnum: tieredAmountResult.couponCategoryEnum,\n // id\n // })\n this.addDjqs(couponCode,name,true,nominalAmount,promoDiscount,doorsill,element.LastTS,false,true,\n dto.Idmember,\n dateMount,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n tieredAmountResult.couponCategoryEnum,\n id);\n djq1 = false;\n } else {\n this.setCouponNum(element.id, couponCategoryEnum, promoMethodEnum, nominalAmount,promoDiscount);\n // this.currentMode.djqs[0].couponCategoryEnum = 'couponCategoryEnum';\n // djq1.couponCategoryEnum = element.tieredAmountResult.couponCategoryEnum\n }\n })\n }\n // 优惠券【6052098985043】与【6120822326451】不可叠加使用\n })\n //this.receivable = getFixedNumber(this.receivable - sum);\n }\n\n @action setCouponNum = (id, couponNum, promoMethodEnum, nominalAmount,promoDiscount) => {\n this.currentMode.djqs.forEach((ele) => {\n if (ele.id === id) {\n ele.amount = promoDiscount;\n promoMethodEnum == \"CASH_COUPON\" && (ele.nominalAmount = nominalAmount);\n ele.couponCategoryEnum = couponNum;\n let IsEnable = (ele.couponCategoryEnum === 'RIGUP' || ele.couponCategoryEnum === 'UN_MATCH' || ele.couponCategoryEnum === \"PREPARING\" || ele.couponCategoryEnum === 'PROMO_LIMITED' || ele.couponCategoryEnum === 'COUPON_CONFLICT') ? false : true ;\n ele.IsEnable = IsEnable;\n }\n })\n }\n\n @action addDjqs = (promoCouponCode,\n name,\n IsEnable,\n nominalAmount,\n amount,\n doorsill,\n LastTS,\n checked,\n IsRepelWithPoints,\n UMemberID,\n expired,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n couponCategoryEnum,\n id) => {\n let djq={\n promoCouponCode,\n name,\n IsEnable,\n nominalAmount,\n amount,\n doorsill,\n LastTS,\n checked,\n IsRepelWithPoints,\n UMemberID,\n expired,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n couponCategoryEnum,\n id\n };\n this.currentMode.djqs.push(\n djq\n );\n }\n\n @action calcDjqValue(q1){\n const { Differentiate } = enumController.getEnumOj();\n if(q1){\n if(!this.currentMode.boriginReturn && parseFloat(this.currentMode.maxamount)<=0){\n Message.error(`本单没有${Differentiate.COUPON}可用金额,该券不可使用。`);\n return ;\n }\n let q=_find(this.currentMode.djqs,(djq)=>{return djq.code==q1.code});\n if(q && !q.checked && parseFloat(this.amount)<parseFloat(q.doorsill)){\n Message.error(\"本单金额低于使用门槛,该券不可使用。\");\n return ;\n }\n //判断是否是选择优惠券 //CC优惠券只能使用一个\n // if (q1 && !q1.checked && isNewRetailBCPos) {\n // // 检查是否有已经选定优惠券 并且去除选定的优惠券\n // this.currentMode.djqs.forEach((djq, index) => {\n // if (djq.checked) this.currentMode.djqs[index].checked = false;\n // })\n // }\n q && (q.checked = !q.checked);\n }\n var sum=0;\n // console.log(this.store, 'stores-------');\n _each(_filter(this.currentMode.djqs,djq=>djq.checked),(q)=>{\n sum=Math.Add(sum,q.amount);\n });\n this.currentMode.value = getFixedNumber(Math.min(this.receivable,sum,this.currentMode.maxamount));\n this.currentMode.receivable = getFixedNumber(this.receivable -this.currentMode.value);\n this.currentMode.overchargesAmount=getFixedNumber(sum-this.currentMode.value);\n\n //this.receivable = getFixedNumber(this.receivable - sum);\n }\n\n @action reCalculationDjqs() {\n var sum=0;\n _each(_filter(this.currentMode.djqs,djq=>djq.checked),(q)=>{\n sum=Math.Add(sum,q.amount);\n });\n this.currentMode.value = getFixedNumber(Math.min(this.receivable,sum,this.currentMode.maxamount));\n this.currentMode.receivable = getFixedNumber(this.receivable -this.currentMode.value);\n this.currentMode.overchargesAmount=getFixedNumber(sum-this.currentMode.value);\n this.currentMode.maxamount = this.currentMode.receivable || this.currentMode.receivable;\n }\n\n @action clearDjqs() {\n this.currentMode.djqs = [];\n }\n\n @action setCurrentModeValue(v,max){\n this.currentMode.value=parseFloat(v) || 0;\n this.currentMode.errinfo='';\n let sum = this.amount;\n const { PayStyle} = enumController.getEnumOj();\n this.thePaymodes && this.thePaymodes.forEach((mode) => {\n if (mode.paymentType === PayStyle.hyczk) {\n sum -= mode.value;\n }\n })\n\n if(this.amount>0 && (v==='' || v==='0.00') && sum !== 0){\n this.currentMode.errinfo=\"实收金额必须录入\";\n }else if(Math.abs(parseFloat(v))>Math.abs(getFixedNumber(sum))){\n this.currentMode.errinfo=\"实收不应大于应收\";\n }else if(parseFloat(v)>0 && parseFloat(v) > (max || 0) ){\n this.currentMode.errinfo=\"余额不足\";\n }\n // 如果是积分抵现的一些判断\n if (this.currentMode.paymentType === PayStyle.jfdx) {\n if (this.currentMode.integralCashOverOrderAmount === true) {\n this.currentMode.steadCashIntegral = Math.ceil(this.currentMode.value/this.currentMode.cashAmount) * this.currentMode.perIntegral;\n } else if(this.currentMode.integralCashOverOrderAmount === false){\n let v1 = this.currentMode.value/this.currentMode.cashAmount;\n if (Number.isInteger(v1)) {\n this.currentMode.steadCashIntegral = Math.floor(this.currentMode.value/this.currentMode.cashAmount) * this.currentMode.perIntegral;\n } else {\n this.currentMode.errinfo=`请按照积分抵现规则${this.currentMode.perIntegral}积分抵用${this.currentMode.cashAmount}元输入金额`;\n }\n }\n }\n }\n\n @action calcMemberBalance(){\n this.currentMode.balance = this.currentMode.rawbalance - this.currentMode.value;\n }\n\n get charge(){\n return Math.abs(this.receivable);\n }\n\n get counter(){\n return ++this._counter;\n }\n\n async setPaymodes(type,isIntegralExchange){\n // 是否移动端判断\n const { isHorizontalPad, isHorizontalSunMi } = platform || {};\n const isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi;\n const { settleStyleType , PayStyle} = enumController.getEnumOj();\n const {memberStoreCode , settlementCode } = settleStyleType;\n const param = {'settleStyleType':type==1?memberStoreCode:settlementCode,isIntegralExchange}\n let modes = await SettlementApi.GetNewStoreSettleStyles({ param });\n if(modes){\n runInAction(()=>{\n let paymodes = [];\n let settleLists = modes.SettleStyles;\n settleLists = isMobileEnvironment ? settleLists.filter(v => !v.ThirdPaymentInfo) : settleLists;\n _each(settleLists, (mode, index) => {\n //产品需求确认会员储值卡结算方式前端展示统一调整为“储值卡\" tuzha by 2020-07-08\n if (mode.Code == PayStyle.hyczk) {\n mode.Name = '储值卡';\n }\n paymodes.push({\n name:mode.Name,\n isDefault:mode.IsDefaultSettleStyle,\n isQuick:_findIndex(modes.QuickSettleStyles, {'Code':mode.Code})>=0,\n orderBy:1,\n paymentType:mode.Code,\n offlineDisable:mode.offlineDisable,\n idSettleStyle:mode.IdSettleStyle,\n idBankAccount:mode.IdBankAccount,\n exchangeRate:mode.Currency?mode.Currency.ExchangeRate:1,\n idCurrency:mode.Currency?mode.Currency.ID:-1,\n calDirection:mode.Currency?mode.Currency.CalDirection.Id:\"88\",\n virtualPay: mode.VirtualPay,\n thridPayment: mode.ThirdPaymentInfo,\n })\n })\n this.paymodes = paymodes;\n })\n }\n }\n}\n\nexport class Member{\n id;\n uid;\n @observable cardNo;\n type;\n @observable balance;\n rawbalance;\n needPwd;\n bonusPoints;\n @observable exchangable;\n @observable meStorageCardId;\n @observable storageCardNo;\n constructor(m){\n if(m){\n this.id=m.ID;\n this.uid=m.Uid;\n this.type=m.MemberType?m.MemberType.Name:\"普通\";\n this.rawbalance=m.BalanceStorage;\n let index=_findIndex(m.DynamicPropertyKeys,(key)=>{return key=='canusedbalancestorage';});\n runInAction(()=>{\n this.cardNo=m.CardCode;\n if(index>=0){\n this.balance=parseFloat(m.DynamicPropertyValues[index]);\n }else{\n this.balance=this.rawbalance;\n }\n });\n this.needPwd=m.MemberType?m.MemberType.IsNeedPwd:false;\n this.NeedModifyPassword=m.NeedModifyPassword;\n this.bonusPoints=m.BalanceIntegral;\n }\n }\n @action setExchangable(v){\n this.exchangable=v;\n }\n @action setCardNo(v){\n this.cardNo=v;\n this.id=null;\n }\n}\n\n"]}
|
@@ -464,7 +464,9 @@ var TouchTable = (_temp = _class = function (_Component2) {
|
|
464
464
|
text = text['Name'];
|
465
465
|
}
|
466
466
|
// 自由项的商品,如果取不到,从DynamicPropertyKeys,DynamicPropertyValues 里面取,采用下面的方式
|
467
|
-
text
|
467
|
+
if (!text && _item && _item.FieldName) {
|
468
|
+
text = JSON.getCellValue(record, _item.FieldName);
|
469
|
+
}
|
468
470
|
return _this2.renderOther(text, record, index, _item);
|
469
471
|
};
|
470
472
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["tplus-components-touch/components/touchTable/index.js"],"names":["InputNumberCell","props","val","text","record","index","selectedRowKeys","rowItem","rowHeight","handleClick","mergeQuantityUnit","Unit","unitname","Name","fileName","FieldName","key","length","item","parseInt","readOnly","quick","height","lineHeight","e","Component","TouchTable","sys_parms","touchTableEmptyImage","window","ossAliyuncsFileURL","renderCheckbox","Array","prototype","remove","indexOf","splice","onChange","checked","arr","state","push","setSelectedRowKeys","fn","cboxClick","status","findSelectedRowKeys","margin","width","event","renderLineNum","renderNumber","precision","isPercent","Format","changeDecimalMul","changeDecimalBuZero","rowIndexs","renderAction","renderOther","showText","badge","type","position","className","badgeClassName","badgeClassNames","baseNum","includes","style","top","renderUserDefined","callbackFunc","getRowClassName","renderIntegralExchangeItem","exchangeIntegralValue","getRenderColumns","cols","dataSource","check","checkbox","dataIndex","title","textAlign","render","lineType","lineNum","fixed","controlType","dsItem","IsIntegralExchange","singleExchangeIntegral","ExchangeIntegral","Quantity","Math","ceil","floor","renderText","tools","dateFormat","JSON","getCellValue","lastIndexOf","split","align","lastColumnResize","delType","delRow","dynamics","isFixDelColumn","stopPropagation","_event","rest","isHitRow","lists","rowClick","delClick","minusClick","plusClick","modalClick","controllerEvent","methodName","methodArgs","context","onEvent","Action","fromJS","viewModel","selfHandleClick","rowIndex","undefined","outerCallback","click","AuthProcess","execute","authorityValidate","callback","result","clearSelectedRows","delete","AddLogProcessor","Code","min","minValue","quantityUiState","uiState","cellMin","value","cellMinTip","tip","afterValue","accSub","isNull","Message","info","operateType","update","list1","isSerialNumber","SerialNumber","warn","max","maxValue","cellMax","cellMaxTip","accAdd","WaitPickUpArr","WaitPickUpObj","find","o","unitId","Idunit","waitPickUpQty","updateField","setRow","params","isScrolling","tops","target","nodeName","scrollTop","getScrollTopValue","setState","setTimeout","i","cb","number","bitNum","f_x","parseFloat","isNaN","newBitNum","pow","round","s_x","toString","pos_decimal","a","b","c","d","f","Number","replace","prefixZero","num","n","join","slice","arg1","arg2","r1","r2","m","abs","cm","toFixed","emptyFunc","tabHeight","emptyStyle","emptyText","emptyImage","display","getScrollHeight","tableHeight","headerHeight","tab","tableElement","current","document","getElementsByClassName","uuid","t","contentTable","parentNode","clientHeight","initScrollHeight","scrollHeight","scrollY","bodyTable","parentNodeEl","rowTop","tabTop","curTop","lastChild","childNodes","offsetTop","console","log","tabColumns","checkboxedList","React","createRef","getTableElement","bind","waterMark","waterMarkOption","children","handleCallback","generateWaterMark","nextProps","autoScroll","pagination","columns","items","dyItems","row","y","onClick","propTypes","PropTypes","string","object","contextTypes","func"],"mappings":"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","file":"index.js","sourcesContent":["/**\n *\n * waterMark 水印文字内容\n * waterMarkOption 水印参数 Object类型 (width, height, font, color,rotate)\n *\n * badge Boolean 徽章 在dataSource(data) 属性中每一行的数据定义badge字段会自动生成,不需要定义对应的columns\n * dataSource: [{badge: {text: '赠', position: 'leftTop', className: ''}}]\n * badge: text 文字内容 | position 徽章位置(leftTop/rightTop/leftBottom/rightBottom) | className\n *\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { Checkbox, Table as AntTable } from 'antd';\nimport { Ticon } from '../../index';\nimport { generateWaterMark } from './generateWater.js';\nimport {badgeClassNames, getUuid} from './utils';\nimport tools from '../../util/tools.js'\nimport './index.less';\nimport _get from 'lodash/get';\nimport mobx from \"mobx\";\nimport Table from 'bee-table';\nimport 'bee-table/build/Table.css';\nimport Message from '../message';\nimport { AuthProcess } from './AuthProcess';\nimport { Action } from 'mutants-appfx';\n\nexport class InputNumberCell extends Component {\n render() {\n let {\n val,\n text,\n record,\n index,\n selectedRowKeys,\n rowItem,\n rowHeight = 50,\n handleClick,\n mergeQuantityUnit,\n } = this.props;\n const { Unit } = record || {};\n const unitname = Unit && Unit.Name;\n const fileName = rowItem.FieldName ? rowItem.FieldName : rowItem.key;\n val = (!!mergeQuantityUnit && fileName == 'Quantity') ? (val + unitname || '') : val;\n if (selectedRowKeys && selectedRowKeys.length > 0) {\n for (let item of selectedRowKeys) {\n if (index === parseInt(item) && rowItem.readOnly === false) {\n return (<div className={`${rowItem.quick == true ? 'selectedCell' : 'unSelectedCell'}`}>\n {rowItem.quick == true && <Ticon type='jianqu' className='iconKey primary-color' style={{ height: rowHeight + 'px', lineHeight: rowHeight + 'px' }} onClick={e => handleClick(e, 'minus', text, record, index, rowItem)} />}\n <span onClick={e => handleClick(e, 'modal', text, record, index, rowItem)} className={`iconText row-cell-div row-cell-pad mouse hot-key-${rowItem.FieldName ? rowItem.FieldName : rowItem.key}`}>{val}</span>\n <span className='editorLine'></span>\n {rowItem.quick == true && <Ticon type=\"zengjia\" className=\"iconKey primary-color\" style={{ height: rowHeight + 'px', lineHeight: rowHeight + 'px' }} onClick={e => handleClick(e, 'plus', text, record, index, rowItem)} />}\n </div>)\n }\n }\n }\n return (<div className='unSelectedCell'><span className='iconText row-cell-div row-cell-pad'>{val}</span></div>)\n }\n}\n\nexport default class TouchTable extends Component {\n static propTypes = {\n waterMark: PropTypes.string,\n waterMarkOption: PropTypes.object\n };\n static contextTypes = {\n onEvent:PropTypes.func,\n viewModel: PropTypes.object\n }\n\n sys_parms = {\n touchTableEmptyImage: `${window.ossAliyuncsFileURL}/empty.png`\n }\n \n constructor(props) {\n super(props);\n this.state = {\n selectedRowKeys: [],\n tabColumns: [],\n scrollY: 0,\n scrollTop: null,\n }\n this.checkboxedList = [];\n this.type = {\n click: 'click',\n update: 'update',\n delete: 'delete',\n updateField: 'updateField'\n }\n this.isHitRow = false;\n this.tableElement = React.createRef();\n this.getTableElement = this.getTableElement.bind(this);\n this.getRowClassName = this.getRowClassName.bind(this);\n\n this.uuid = getUuid();\n }\n getTableElement() {\n return this.tableElement;\n }\n\n generateWaterMark() {\n const { waterMark, waterMarkOption = {}, type } = this.props;\n let contentTable;\n\n if (type === 'bee') {\n contentTable = this.tableElement.current;\n } else {\n const parentNodeEl = document.getElementsByClassName(`antTable ${this.uuid}`)[0];\n contentTable = {\n contentTable: parentNodeEl.children[0]\n };\n }\n if(waterMark != this.waterMark){\n generateWaterMark(contentTable, { text: waterMark, ...waterMarkOption });\n this.waterMark = waterMark;\n }\n this.props.handleCallback && this.props.handleCallback();\n }\n\n renderCheckbox = (text, record, index) => {\n Array.prototype.remove = function (val) {\n var index = this.indexOf(val);\n if (index > -1) {\n this.splice(index, 1);\n }\n };\n const onChange = (checked, index) => {\n let arr = this.state.selectedRowKeys;\n if (checked === true) {\n arr.push(index);\n }\n else if (checked === false) {\n arr.remove(index);\n }\n this.setSelectedRowKeys([...new Set(arr)]);\n const fn = this.props.cboxClick;\n if (typeof fn == 'function') { fn(checked, index) }\n }\n const status = this.findSelectedRowKeys(index);\n return (\n <div style={{ margin: 'auto', width: '20px' }}>\n <Checkbox className=\"test\" checked={status} onChange={(event) => onChange(event, index)}></Checkbox>\n </div>\n )\n }\n renderLineNum = (text, record, index) => {\n return index + 1\n //return this.prefixZero(index + 1, 2);\n }\n renderNumber = (text, record, index, item) => {\n const { mergeQuantityUnit } = this.props;\n let precision = parseInt(item.precision);\n let isPercent = ('Format' in item && item.Format == 'Percent');\n text = isPercent ? this.changeDecimalMul(text, 100) : text;\n let val = this.changeDecimalBuZero(text, precision);\n val = isPercent ? val + \"%\" : val;\n const rowIndexs = this.state.selectedRowKeys;\n return <InputNumberCell\n val={val}\n text={text}\n record={record}\n index={index}\n selectedRowKeys={rowIndexs}\n rowItem={item}\n mergeQuantityUnit={mergeQuantityUnit}\n handleClick={this.handleClick} />\n }\n renderAction = (text, record, index) => {\n const status = this.findSelectedRowKeys(index);\n if (status == true) {\n return (<span className='spanDel' onClick={e => this.handleClick(e, 'del', index, record)} ><Ticon type=\"shanchu\" className=\"iconDel primary-color\"/></span>)\n } else {\n return ''\n }\n }\n renderOther = (showText, record, index, item) => {\n const { badge, height = 50, type } = this.props;\n //针对存货为赠品属性的处理逻辑。\n if (item && item.Name == 'Inventory' && badge && record.badge) {\n const { badge: { text, position = 'leftTop', className = '' } = {} } = record;\n const badgeClassName = badgeClassNames[position];\n const baseNum = position.includes('Bottom') ? 25 : 0;\n let style = {}\n if (type === 'bee'){\n style = {\n top : baseNum\n }\n }\n return (\n <div className='tplus-table-badge'>\n <div className={`badge-item ${className} ${badgeClassName}`} style={style}><span>{text}</span></div>\n <div className='row-cell-div row-cell-pad'>{showText}</div>\n </div>\n )\n }\n //增加宽度是为了控制超出之后显示省略号。\n return <div className='row-cell-div row-cell-pad'>{showText}</div>\n }\n //自定义列\n renderUserDefined = (text, record, index, item) => {\n const fn = item.callbackFunc;\n if (typeof fn == 'function') {\n return fn();\n }\n else {\n return '';\n }\n }\n getRowClassName = (record, index) => {\n const status = this.findSelectedRowKeys(index);\n if (status == true) {\n return 'row-selected'\n } else {\n return '';\n }\n }\n\n renderIntegralExchangeItem = (text, record, index, item ,exchangeIntegralValue) => {\n return (<div onClick={e => this.handleClick(e, 'modal', text, record, index, item)} className={`Integral-exchange-item hot-key-${item.FieldName ? item.FieldName : item.key}`} >\n <span className='money iconText row-cell-div mouse'>{ exchangeIntegralValue+\"积分\"}</span>\n <span className='value iconText row-cell-div mouse'>{'¥'+text}</span>\n </div>)\n }\n\n getRenderColumns = (cols, dataSource) => {\n const { badge, height = 50, mergeQuantityUnit, type } = this.props;\n const arr = [];\n let check = typeof this.props.checkbox == 'boolean' ? this.props.checkbox : false;\n if (check === true) {\n arr.push({\n key: 'checkbox',\n dataIndex: 'checkbox',\n title: '',\n width: 25,\n textAlign: 'center',\n readOnly: true,\n render: (text, record, index) => this.renderCheckbox(text, record, index)\n })\n }\n let lineType = typeof this.props.lineNum == 'boolean' ? this.props.lineNum : false;\n if (lineType === true) {\n arr.push({\n key: 'rowNum',\n dataIndex: 'rowNum',\n title: '行号',\n width: 50,\n textAlign: 'center',\n readOnly: true,\n fixed: 'left',\n render: (text, record, index) => this.renderLineNum(text, record, index)\n })\n }\n if (cols && cols.length > 0) {\n for (let item of cols) {\n if (item.controlType === 'NumTextBox') {\n item.render = (text, record, index) => {\n // 增加积分抵现特殊显示方式\n let dsItem = dataSource && dataSource[index];\n if (dsItem && dsItem.IsIntegralExchange && (item.FieldName == \"TaxPrice\" || item.FieldName == \"TaxAmount\")) {\n const singleExchangeIntegral = dataSource[index].ExchangeIntegral\n let exchangeIntegralValue = item.FieldName == \"TaxPrice\"?singleExchangeIntegral:singleExchangeIntegral* dataSource[index].Quantity;\n if(exchangeIntegralValue>0) {\n exchangeIntegralValue = Math.ceil(exchangeIntegralValue);\n }else {\n exchangeIntegralValue = Math.floor(exchangeIntegralValue);\n }\n return this.renderIntegralExchangeItem(text, record, index, item,exchangeIntegralValue)\n }\n return this.renderNumber(text, record, index, item);\n }\n } else if (item.controlType === 'Userdefined') {\n item.render = (text, record, index) => {\n return this.renderUserDefined(text, record, index, item);\n }\n } else if (item.controlType === 'DatePicker' ||item.controlType === 'DateDropDown') {\n item.render = (text, record, index) => {\n let renderText = tools.dateFormat(text, item.Format);\n return <span>{renderText}</span>\n }\n } else {\n item.render = (text, record, index) => {\n if (text && typeof text == 'object') {\n text = _get(record, item.FieldName)\n }\n if (text && typeof text == 'object' && 'Name' in text) {\n text = text['Name']\n }\n // 自由项的商品,如果取不到,从DynamicPropertyKeys,DynamicPropertyValues 里面取,采用下面的方式\n text = text || JSON.getCellValue(record, item.FieldName);\n return this.renderOther(text, record, index, item);\n\n }\n }\n if (type !== 'bee'){\n if (item.dataIndex.lastIndexOf(\".\") > 0) {\n item.dataIndex = item.dataIndex.split('.');\n }\n item.align = item.textAlign;\n }\n if (mergeQuantityUnit && item.FieldName == 'Quantity') {\n item = { ...item, title: '数量/单位' }\n }\n arr.push(item);\n }\n }\n //最后一列留白,解决最后一列自适应宽度的问题\n let lastColumnResize = typeof this.props.lastColumnResize == 'boolean' ? this.props.lastColumnResize : false;\n if (lastColumnResize == true) {\n arr.push({\n key: 'resize',\n dataIndex: 'resize',\n title: '',\n width: 10,\n textAlign: 'center',\n readOnly: true\n })\n }\n let delType = typeof this.props.delRow == 'boolean' ? this.props.delRow : true;\n let dynamics = typeof this.props.isFixDelColumn == 'boolean' && this.props.isFixDelColumn == true ? { fixed: 'right',width: 50 } : { width: 28};\n if (delType === true) {\n arr.push({\n key: 'del',\n ...dynamics,\n dataIndex: 'del',\n title: '',\n className: 'shanchu',\n textAlign: 'center', //beeTable居中\n align: 'center', //antTable居中\n render: (text, record, index) => this.renderAction(text, record, index)\n })\n }\n return arr;\n }\n\n stopPropagation = (_event) => {\n if (_event && _event.stopPropagation) {\n _event.stopPropagation();\n }\n }\n\n /*以下为触发事件*/\n handleClick = (_event, type, ...rest) => {\n this.isHitRow = true;\n const lists = this.props.dataSource;\n switch (type) {\n case 'rowClick':\n this.rowClick(...rest)\n break;\n case 'del':\n this.delClick(lists, ...rest)\n this.stopPropagation(_event)\n break;\n case 'minus':\n this.minusClick(lists, ...rest)\n this.stopPropagation(_event)\n break;\n case 'plus':\n this.plusClick(lists, ...rest)\n this.stopPropagation(_event)\n break;\n case 'modal':\n this.modalClick(...rest)\n break;\n }\n }\n controllerEvent = (methodName, methodArgs) => {\n this.context.onEvent({ 'controllerEvent': Action.fromJS(this.context.viewModel, methodName) }, 'controllerEvent', methodArgs);\n }\n selfHandleClick = () => {\n const { rowIndex = undefined } = this.props;\n if (rowIndex == undefined) {\n return true;\n }\n return false;\n }\n\n rowClick = (record, index, fn) => {\n if (this.selfHandleClick()) {\n //当不设置行点击事件时,组件内部处理。\n if (this.state.selectedRowKeys.indexOf(index) > -1) return;\n this.setSelectedRowKeys(index, true);\n }else{\n //当设置点击事件,组件外处理\n this.outerCallback(this.type.click, record, index);\n }\n }\n delClick = async (lists, index, record) => {\n let status = AuthProcess.execute('ReverseOperation');\n if (!status) {\n this.props.authorityValidate && this.props.authorityValidate({callback:(result)=>{\n if (result) {\n if (this.selfHandleClick()) {\n lists.splice(index, 1);\n this.clearSelectedRows();\n }else{\n this.outerCallback(this.type.delete, record, index);\n AddLogProcessor.execute(\"删除行\", record.Code, '删除行成功');\n }\n }\n }});\n } else {\n if (this.selfHandleClick()) {\n lists.splice(index, 1);\n this.clearSelectedRows();\n }else{\n this.outerCallback(this.type.delete, record, index);\n }\n }\n this.controllerEvent('setInventoryFocus');\n }\n minusClick = (lists, text, record, index, rowItem) => {\n let val = text;\n let min = rowItem.minValue;\n let quantityUiState = record.uiState&&record.uiState.Quantity;\n //单元格状态控制\n let cellMin = quantityUiState && quantityUiState.min.value;\n let cellMinTip = quantityUiState && quantityUiState.min.tip;\n\n let item = { ...lists[index] };\n let afterValue = this.accSub(val, 1);\n\n if (min !== undefined) {\n if (min >= val) return;\n afterValue = (min >= afterValue) ? min : afterValue;\n }\n //单元格状态控制\n if ( !tools.isNull(cellMin)) {\n if (cellMin >= val) {\n if( !tools.isNull(cellMinTip) ) Message.info(cellMinTip);\n return;\n }\n afterValue = (cellMin >= afterValue) ? cellMin : afterValue;\n }\n\n item[rowItem.key] = afterValue;\n item.operateType = 'minus';\n this.outerCallback(this.type.update, item, index);\n }\n\n plusClick = (lists, text, record, index, rowItem) => {\n let list1 = lists[index];\n if (list1 && list1.isSerialNumber && list1.SerialNumber && list1.Quantity === 1) {\n Message.warn('已录入序列号后,不可增加数量')\n return;\n }\n let val = text;\n let max = rowItem.maxValue;\n let quantityUiState = record.uiState&&record.uiState.Quantity;\n //单元格状态控制\n let cellMax = quantityUiState && quantityUiState.max.value;\n let cellMaxTip = quantityUiState && quantityUiState.max.tip;\n\n let item = { ...lists[index] };\n let afterValue = this.accAdd(val, 1);\n if (record.WaitPickUpArr && record.WaitPickUpArr.length > 0){\n let WaitPickUpObj = record.WaitPickUpArr.find(o=>o.unitId == record.Idunit) || {};\n if (text > WaitPickUpObj.waitPickUpQty){\n Message.warn(`不能超过最大可取数量${WaitPickUpObj.waitPickUpQty}`);\n return;\n } else if (afterValue > WaitPickUpObj.waitPickUpQty && text != WaitPickUpObj.waitPickUpQty){\n afterValue = WaitPickUpObj.waitPickUpQty;\n }\n }\n if (max !== undefined) {\n if (max <= val) return;\n afterValue = (max <= afterValue) ? max : afterValue;\n }\n //单元格状态控制\n if ( !tools.isNull(cellMax)) {\n if (cellMax <= val){\n if( !tools.isNull(cellMaxTip) ) Message.info(cellMaxTip);\n return;\n }\n afterValue = (cellMax <= afterValue) ? cellMax : afterValue;\n }\n item[rowItem.key] = afterValue;\n this.outerCallback(this.type.update, item, index);\n }\n\n modalClick = (text, record, index, rowItem) => {\n const fn = this.props.rowClick;\n if (typeof fn == 'function') {\n fn(this.type.updateField, index, record, rowItem.key, rowItem)\n }\n }\n\n /*以下为抽离公共方法*/\n\n setRow = (index) => {\n this.setSelectedRowKeys(index)\n }\n\n setSelectedRowKeys = (params) => {\n const { rowIndex, isScrolling } = this.props;\n let arr = new Array();\n if (params instanceof Array) {\n arr.push(...params)\n } else {\n arr.push(params)\n }\n let tops = {};\n let isHitRow = event && event.type == 'click' && (event.target.nodeName == 'DIV' || event.target.nodeName == 'I')\n if (isScrolling && rowIndex && rowIndex > -1 && !((this.isHitRow === true) ? true : isHitRow)) {\n const scrollTop = this.getScrollTopValue();\n tops = { scrollTop };\n } else {\n tops = { scrollTop: null };\n }\n this.setState({ selectedRowKeys: arr, ...tops });\n if (this.isHitRow === true) { setTimeout(() => { this.isHitRow = false }, 600) }\n }\n\n findSelectedRowKeys = (index) => {\n let rowIndexs = this.state.selectedRowKeys;\n if (rowIndexs && rowIndexs.length > 0) {\n for (let i = 0; i < rowIndexs.length; i++) {\n let item = rowIndexs[i];\n if (item === index) {\n return true;\n }\n }\n }\n return false;\n }\n\n clearSelectedRows = () => {\n this.setSelectedRowKeys([])\n }\n\n outerCallback = (type, record, index) => {\n const cb = this.props.rowClick;\n if (typeof cb == 'function') cb(type, index, record)\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 // f_x = Math.round(number * 100) / 100;\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 /* 浮点数做相乘处理 */\n changeDecimalMul = (a, b) => {\n let c = 0,\n d = (a + '').toString(),\n e = (b + '').toString();\n try {\n c += d.split(\".\")[1].length;\n } catch (f) { }\n try {\n c += e.split(\".\")[1].length;\n } catch (f) { }\n return Number(d.replace(\".\", \"\")) * Number(e.replace(\".\", \"\")) / Math.pow(10, c);\n }\n\n prefixZero = (num, n) => {\n return (Array(n).join(0) + num).slice(-n);\n }\n\n //相加\n accAdd = (arg1, arg2) => {\n let r1, r2, m, c;\n try {\n r1 = (arg1 + '').toString().split(\".\")[1].length;\n }\n catch (e) {\n r1 = 0;\n }\n try {\n r2 = (arg2 + '').toString().split(\".\")[1].length;\n }\n catch (e) {\n r2 = 0;\n }\n c = Math.abs(r1 - r2);\n m = Math.pow(10, Math.max(r1, r2));\n if (c > 0) {\n var cm = Math.pow(10, c);\n if (r1 > r2) {\n arg1 = Number((arg1 + '').toString().replace(\".\", \"\"));\n arg2 = Number((arg2 + '').toString().replace(\".\", \"\")) * cm;\n } else {\n arg1 = Number((arg1 + '').toString().replace(\".\", \"\")) * cm;\n arg2 = Number((arg2 + '').toString().replace(\".\", \"\"));\n }\n } else {\n arg1 = Number((arg1 + '').toString().replace(\".\", \"\"));\n arg2 = Number((arg2 + '').toString().replace(\".\", \"\"));\n }\n return (arg1 + arg2) / m;\n }\n\n //相减\n accSub = (arg1, arg2) => {\n let r1, r2, m, n;\n try {\n r1 = (arg1 + '').toString().split(\".\")[1].length;\n }\n catch (e) {\n r1 = 0;\n }\n try {\n r2 = (arg2 + '').toString().split(\".\")[1].length;\n }\n catch (e) {\n r2 = 0;\n }\n m = Math.pow(10, Math.max(r1, r2)); //last modify by deeka //动态控制精度长度\n n = (r1 >= r2) ? r1 : r2;\n return ((arg1 * m - arg2 * m) / m).toFixed(n);\n }\n\n emptyFunc = (tabHeight) => {\n const { emptyStyle = 'txt', emptyText = '暂无数据~~', emptyImage = this.sys_parms.touchTableEmptyImage } = this.props\n let type = null;\n switch (emptyStyle) {\n case 'icon':\n type = 1;\n break;\n case 'txt':\n type = 2;\n break;\n case 'icon-txt':\n type = 3;\n break;\n default: type = 0;\n }\n return (<div className='defaultContainer' style={{ height: tabHeight + 'px' }}>\n <div style={{ display: type === 0 ? 'none' : '' }}>\n <img className='img' style={{ display: (type === 1 || type === 3) ? '' : 'none' }} src={emptyImage} />\n <div style={{ display: (type === 2 || type === 3) ? '' : 'none' }}>{emptyText}</div>\n </div>\n </div>);\n }\n\n getScrollHeight = () => {\n const { tableHeight, headerHeight = 50, type } = this.props;\n if (typeof tableHeight == 'number') return tableHeight - headerHeight;\n let tab;\n if (type === 'bee'){\n tab = this.tableElement.current;\n } else {\n tab = document.getElementsByClassName(`antTable ${this.uuid}`)[0];\n }\n if (tab) {\n let t = type === 'bee' ? tab.contentTable.parentNode.clientHeight : tab.clientHeight\n return t - headerHeight > 0 ? t - headerHeight : headerHeight\n } else {\n return 0\n }\n }\n\n initScrollHeight = () => {\n const scrollHeight = this.getScrollHeight();\n this.setState({ scrollY: scrollHeight })\n }\n\n getScrollTopValue = () => {\n let top = 0;\n const { height = 50, type } = this.props;\n let bodyTable;\n if (type === 'bee'){\n let tab = this.tableElement.current;\n bodyTable = tab && tab.bodyTable;\n } else {\n const parentNodeEl = document.getElementsByClassName(`antTable ${this.uuid}`)[0];\n bodyTable = parentNodeEl.getElementsByClassName('ant-table-body')[0];\n }\n if (bodyTable.scrollHeight > bodyTable.clientHeight) {\n const { selectedRowKeys } = this.state;\n let rowTop = 0;\n if (selectedRowKeys && selectedRowKeys.length > 0) {\n let index = selectedRowKeys[0];\n let tabTop = bodyTable.scrollTop;\n try {\n let curTop = bodyTable.lastChild.lastChild.childNodes[index].offsetTop;\n rowTop = curTop - bodyTable.clientHeight + height + 10;\n rowTop = Math.abs(tabTop - curTop) < 100 ? tabTop : rowTop;\n } catch (e){\n console.log(e);\n }\n }\n top = rowTop > 0 ? rowTop : 0\n }\n return top;\n }\n\n componentDidMount() {\n setTimeout(() => {\n if( this.props.rowIndex!==void(0) ){\n this.setSelectedRowKeys(this.props.rowIndex)\n }\n this.initScrollHeight()\n }, 0)\n this.generateWaterMark()\n }\n componentDidUpdate() {\n this.generateWaterMark()\n }\n componentWillReceiveProps(nextProps) {\n if ('rowIndex' in nextProps) {\n this.setSelectedRowKeys(nextProps.rowIndex);\n this.initScrollHeight();\n }\n }\n render() {\n let {\n autoScroll, width, tableHeight,\n headerHeight = 50, height = 50,\n pagination, dataSource,\n columns, rowClick, cboxClick, className = '',\n checkbox, rowIndex, type, ...items\n } = this.props;\n let { scrollY, scrollTop } = this.state;\n // let copyColumns = columns.map(el=>{return {...el}});\n const tabColumns = this.getRenderColumns(columns, dataSource);\n const dyItems = (scrollTop != null) ? { scrollTop } : {};\n return (\n <div className={`${type === 'bee' ? 'touchTable' : 'antTable'} ${className} ${this.uuid}`}>\n {\n type === 'bee' ? (\n <Table\n {...items}\n {...dyItems}\n ref={this.tableElement}\n style={{ width: width ? width : '100%', height: tableHeight ? tableHeight : '100%' }}\n rowKey={row => row.Code}\n headerHeight={headerHeight}\n pagination={pagination ? pagination : false}\n data={dataSource}\n columns={tabColumns}\n height={height}\n rowClassName={this.getRowClassName}\n emptyText={() => this.emptyFunc(tableHeight)}\n scroll={autoScroll ? {} : { y: scrollY }}\n headerScroll={false}\n onRowClick={\n (record, index) => {\n this.handleClick(null, 'rowClick', record, index, rowClick)\n }\n }\n />\n ):(\n <AntTable\n id=\"ref-table\"\n {...items}\n {...dyItems}\n style={{ width: width ? width : '100%', height: tableHeight ? tableHeight : '100%' }}\n rowKey={row => row.key || row.Code}\n pagination={pagination ? pagination : false}\n dataSource={dataSource}\n columns={tabColumns}\n rowClassName={this.getRowClassName}\n locale={{emptyText: this.emptyFunc(tableHeight - 60)}}\n scroll={autoScroll ? {y: null} : {y: tableHeight - 60 }}\n onRow={(record, index) => {\n return{\n onClick: () => this.handleClick(null, 'rowClick', record, index, rowClick)\n }\n }}\n />\n )\n }\n\n </div>\n )\n }\n}\n"]}
|
1
|
+
{"version":3,"sources":["tplus-components-touch/components/touchTable/index.js"],"names":["InputNumberCell","props","val","text","record","index","selectedRowKeys","rowItem","rowHeight","handleClick","mergeQuantityUnit","Unit","unitname","Name","fileName","FieldName","key","length","item","parseInt","readOnly","quick","height","lineHeight","e","Component","TouchTable","sys_parms","touchTableEmptyImage","window","ossAliyuncsFileURL","renderCheckbox","Array","prototype","remove","indexOf","splice","onChange","checked","arr","state","push","setSelectedRowKeys","fn","cboxClick","status","findSelectedRowKeys","margin","width","event","renderLineNum","renderNumber","precision","isPercent","Format","changeDecimalMul","changeDecimalBuZero","rowIndexs","renderAction","renderOther","showText","badge","type","position","className","badgeClassName","badgeClassNames","baseNum","includes","style","top","renderUserDefined","callbackFunc","getRowClassName","renderIntegralExchangeItem","exchangeIntegralValue","getRenderColumns","cols","dataSource","check","checkbox","dataIndex","title","textAlign","render","lineType","lineNum","fixed","controlType","dsItem","IsIntegralExchange","singleExchangeIntegral","ExchangeIntegral","Quantity","Math","ceil","floor","renderText","tools","dateFormat","JSON","getCellValue","lastIndexOf","split","align","lastColumnResize","delType","delRow","dynamics","isFixDelColumn","stopPropagation","_event","rest","isHitRow","lists","rowClick","delClick","minusClick","plusClick","modalClick","controllerEvent","methodName","methodArgs","context","onEvent","Action","fromJS","viewModel","selfHandleClick","rowIndex","undefined","outerCallback","click","AuthProcess","execute","authorityValidate","callback","result","clearSelectedRows","delete","AddLogProcessor","Code","min","minValue","quantityUiState","uiState","cellMin","value","cellMinTip","tip","afterValue","accSub","isNull","Message","info","operateType","update","list1","isSerialNumber","SerialNumber","warn","max","maxValue","cellMax","cellMaxTip","accAdd","WaitPickUpArr","WaitPickUpObj","find","o","unitId","Idunit","waitPickUpQty","updateField","setRow","params","isScrolling","tops","target","nodeName","scrollTop","getScrollTopValue","setState","setTimeout","i","cb","number","bitNum","f_x","parseFloat","isNaN","newBitNum","pow","round","s_x","toString","pos_decimal","a","b","c","d","f","Number","replace","prefixZero","num","n","join","slice","arg1","arg2","r1","r2","m","abs","cm","toFixed","emptyFunc","tabHeight","emptyStyle","emptyText","emptyImage","display","getScrollHeight","tableHeight","headerHeight","tab","tableElement","current","document","getElementsByClassName","uuid","t","contentTable","parentNode","clientHeight","initScrollHeight","scrollHeight","scrollY","bodyTable","parentNodeEl","rowTop","tabTop","curTop","lastChild","childNodes","offsetTop","console","log","tabColumns","checkboxedList","React","createRef","getTableElement","bind","waterMark","waterMarkOption","children","handleCallback","generateWaterMark","nextProps","autoScroll","pagination","columns","items","dyItems","row","y","onClick","propTypes","PropTypes","string","object","contextTypes","func"],"mappings":"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","file":"index.js","sourcesContent":["/**\n *\n * waterMark 水印文字内容\n * waterMarkOption 水印参数 Object类型 (width, height, font, color,rotate)\n *\n * badge Boolean 徽章 在dataSource(data) 属性中每一行的数据定义badge字段会自动生成,不需要定义对应的columns\n * dataSource: [{badge: {text: '赠', position: 'leftTop', className: ''}}]\n * badge: text 文字内容 | position 徽章位置(leftTop/rightTop/leftBottom/rightBottom) | className\n *\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { Checkbox, Table as AntTable } from 'antd';\nimport { Ticon } from '../../index';\nimport { generateWaterMark } from './generateWater.js';\nimport {badgeClassNames, getUuid} from './utils';\nimport tools from '../../util/tools.js'\nimport './index.less';\nimport _get from 'lodash/get';\nimport mobx from \"mobx\";\nimport Table from 'bee-table';\nimport 'bee-table/build/Table.css';\nimport Message from '../message';\nimport { AuthProcess } from './AuthProcess';\nimport { Action } from 'mutants-appfx';\n\nexport class InputNumberCell extends Component {\n render() {\n let {\n val,\n text,\n record,\n index,\n selectedRowKeys,\n rowItem,\n rowHeight = 50,\n handleClick,\n mergeQuantityUnit,\n } = this.props;\n const { Unit } = record || {};\n const unitname = Unit && Unit.Name;\n const fileName = rowItem.FieldName ? rowItem.FieldName : rowItem.key;\n val = (!!mergeQuantityUnit && fileName == 'Quantity') ? (val + unitname || '') : val;\n if (selectedRowKeys && selectedRowKeys.length > 0) {\n for (let item of selectedRowKeys) {\n if (index === parseInt(item) && rowItem.readOnly === false) {\n return (<div className={`${rowItem.quick == true ? 'selectedCell' : 'unSelectedCell'}`}>\n {rowItem.quick == true && <Ticon type='jianqu' className='iconKey primary-color' style={{ height: rowHeight + 'px', lineHeight: rowHeight + 'px' }} onClick={e => handleClick(e, 'minus', text, record, index, rowItem)} />}\n <span onClick={e => handleClick(e, 'modal', text, record, index, rowItem)} className={`iconText row-cell-div row-cell-pad mouse hot-key-${rowItem.FieldName ? rowItem.FieldName : rowItem.key}`}>{val}</span>\n <span className='editorLine'></span>\n {rowItem.quick == true && <Ticon type=\"zengjia\" className=\"iconKey primary-color\" style={{ height: rowHeight + 'px', lineHeight: rowHeight + 'px' }} onClick={e => handleClick(e, 'plus', text, record, index, rowItem)} />}\n </div>)\n }\n }\n }\n return (<div className='unSelectedCell'><span className='iconText row-cell-div row-cell-pad'>{val}</span></div>)\n }\n}\n\nexport default class TouchTable extends Component {\n static propTypes = {\n waterMark: PropTypes.string,\n waterMarkOption: PropTypes.object\n };\n static contextTypes = {\n onEvent:PropTypes.func,\n viewModel: PropTypes.object\n }\n\n sys_parms = {\n touchTableEmptyImage: `${window.ossAliyuncsFileURL}/empty.png`\n }\n \n constructor(props) {\n super(props);\n this.state = {\n selectedRowKeys: [],\n tabColumns: [],\n scrollY: 0,\n scrollTop: null,\n }\n this.checkboxedList = [];\n this.type = {\n click: 'click',\n update: 'update',\n delete: 'delete',\n updateField: 'updateField'\n }\n this.isHitRow = false;\n this.tableElement = React.createRef();\n this.getTableElement = this.getTableElement.bind(this);\n this.getRowClassName = this.getRowClassName.bind(this);\n\n this.uuid = getUuid();\n }\n getTableElement() {\n return this.tableElement;\n }\n\n generateWaterMark() {\n const { waterMark, waterMarkOption = {}, type } = this.props;\n let contentTable;\n\n if (type === 'bee') {\n contentTable = this.tableElement.current;\n } else {\n const parentNodeEl = document.getElementsByClassName(`antTable ${this.uuid}`)[0];\n contentTable = {\n contentTable: parentNodeEl.children[0]\n };\n }\n if(waterMark != this.waterMark){\n generateWaterMark(contentTable, { text: waterMark, ...waterMarkOption });\n this.waterMark = waterMark;\n }\n this.props.handleCallback && this.props.handleCallback();\n }\n\n renderCheckbox = (text, record, index) => {\n Array.prototype.remove = function (val) {\n var index = this.indexOf(val);\n if (index > -1) {\n this.splice(index, 1);\n }\n };\n const onChange = (checked, index) => {\n let arr = this.state.selectedRowKeys;\n if (checked === true) {\n arr.push(index);\n }\n else if (checked === false) {\n arr.remove(index);\n }\n this.setSelectedRowKeys([...new Set(arr)]);\n const fn = this.props.cboxClick;\n if (typeof fn == 'function') { fn(checked, index) }\n }\n const status = this.findSelectedRowKeys(index);\n return (\n <div style={{ margin: 'auto', width: '20px' }}>\n <Checkbox className=\"test\" checked={status} onChange={(event) => onChange(event, index)}></Checkbox>\n </div>\n )\n }\n renderLineNum = (text, record, index) => {\n return index + 1\n //return this.prefixZero(index + 1, 2);\n }\n renderNumber = (text, record, index, item) => {\n const { mergeQuantityUnit } = this.props;\n let precision = parseInt(item.precision);\n let isPercent = ('Format' in item && item.Format == 'Percent');\n text = isPercent ? this.changeDecimalMul(text, 100) : text;\n let val = this.changeDecimalBuZero(text, precision);\n val = isPercent ? val + \"%\" : val;\n const rowIndexs = this.state.selectedRowKeys;\n return <InputNumberCell\n val={val}\n text={text}\n record={record}\n index={index}\n selectedRowKeys={rowIndexs}\n rowItem={item}\n mergeQuantityUnit={mergeQuantityUnit}\n handleClick={this.handleClick} />\n }\n renderAction = (text, record, index) => {\n const status = this.findSelectedRowKeys(index);\n if (status == true) {\n return (<span className='spanDel' onClick={e => this.handleClick(e, 'del', index, record)} ><Ticon type=\"shanchu\" className=\"iconDel primary-color\"/></span>)\n } else {\n return ''\n }\n }\n renderOther = (showText, record, index, item) => {\n const { badge, height = 50, type } = this.props;\n //针对存货为赠品属性的处理逻辑。\n if (item && item.Name == 'Inventory' && badge && record.badge) {\n const { badge: { text, position = 'leftTop', className = '' } = {} } = record;\n const badgeClassName = badgeClassNames[position];\n const baseNum = position.includes('Bottom') ? 25 : 0;\n let style = {}\n if (type === 'bee'){\n style = {\n top : baseNum\n }\n }\n return (\n <div className='tplus-table-badge'>\n <div className={`badge-item ${className} ${badgeClassName}`} style={style}><span>{text}</span></div>\n <div className='row-cell-div row-cell-pad'>{showText}</div>\n </div>\n )\n }\n //增加宽度是为了控制超出之后显示省略号。\n return <div className='row-cell-div row-cell-pad'>{showText}</div>\n }\n //自定义列\n renderUserDefined = (text, record, index, item) => {\n const fn = item.callbackFunc;\n if (typeof fn == 'function') {\n return fn();\n }\n else {\n return '';\n }\n }\n getRowClassName = (record, index) => {\n const status = this.findSelectedRowKeys(index);\n if (status == true) {\n return 'row-selected'\n } else {\n return '';\n }\n }\n\n renderIntegralExchangeItem = (text, record, index, item ,exchangeIntegralValue) => {\n return (<div onClick={e => this.handleClick(e, 'modal', text, record, index, item)} className={`Integral-exchange-item hot-key-${item.FieldName ? item.FieldName : item.key}`} >\n <span className='money iconText row-cell-div mouse'>{ exchangeIntegralValue+\"积分\"}</span>\n <span className='value iconText row-cell-div mouse'>{'¥'+text}</span>\n </div>)\n }\n\n getRenderColumns = (cols, dataSource) => {\n const { badge, height = 50, mergeQuantityUnit, type } = this.props;\n const arr = [];\n let check = typeof this.props.checkbox == 'boolean' ? this.props.checkbox : false;\n if (check === true) {\n arr.push({\n key: 'checkbox',\n dataIndex: 'checkbox',\n title: '',\n width: 25,\n textAlign: 'center',\n readOnly: true,\n render: (text, record, index) => this.renderCheckbox(text, record, index)\n })\n }\n let lineType = typeof this.props.lineNum == 'boolean' ? this.props.lineNum : false;\n if (lineType === true) {\n arr.push({\n key: 'rowNum',\n dataIndex: 'rowNum',\n title: '行号',\n width: 50,\n textAlign: 'center',\n readOnly: true,\n fixed: 'left',\n render: (text, record, index) => this.renderLineNum(text, record, index)\n })\n }\n if (cols && cols.length > 0) {\n for (let item of cols) {\n if (item.controlType === 'NumTextBox') {\n item.render = (text, record, index) => {\n // 增加积分抵现特殊显示方式\n let dsItem = dataSource && dataSource[index];\n if (dsItem && dsItem.IsIntegralExchange && (item.FieldName == \"TaxPrice\" || item.FieldName == \"TaxAmount\")) {\n const singleExchangeIntegral = dataSource[index].ExchangeIntegral\n let exchangeIntegralValue = item.FieldName == \"TaxPrice\"?singleExchangeIntegral:singleExchangeIntegral* dataSource[index].Quantity;\n if(exchangeIntegralValue>0) {\n exchangeIntegralValue = Math.ceil(exchangeIntegralValue);\n }else {\n exchangeIntegralValue = Math.floor(exchangeIntegralValue);\n }\n return this.renderIntegralExchangeItem(text, record, index, item,exchangeIntegralValue)\n }\n return this.renderNumber(text, record, index, item);\n }\n } else if (item.controlType === 'Userdefined') {\n item.render = (text, record, index) => {\n return this.renderUserDefined(text, record, index, item);\n }\n } else if (item.controlType === 'DatePicker' ||item.controlType === 'DateDropDown') {\n item.render = (text, record, index) => {\n let renderText = tools.dateFormat(text, item.Format);\n return <span>{renderText}</span>\n }\n } else {\n item.render = (text, record, index) => {\n if (text && typeof text == 'object') {\n text = _get(record, item.FieldName)\n }\n if (text && typeof text == 'object' && 'Name' in text) {\n text = text['Name']\n }\n // 自由项的商品,如果取不到,从DynamicPropertyKeys,DynamicPropertyValues 里面取,采用下面的方式\n if (!text && item && item.FieldName) {\n text = JSON.getCellValue(record, item.FieldName)\n }\n return this.renderOther(text, record, index, item);\n }\n }\n if (type !== 'bee'){\n if (item.dataIndex.lastIndexOf(\".\") > 0) {\n item.dataIndex = item.dataIndex.split('.');\n }\n item.align = item.textAlign;\n }\n if (mergeQuantityUnit && item.FieldName == 'Quantity') {\n item = { ...item, title: '数量/单位' }\n }\n arr.push(item);\n }\n }\n //最后一列留白,解决最后一列自适应宽度的问题\n let lastColumnResize = typeof this.props.lastColumnResize == 'boolean' ? this.props.lastColumnResize : false;\n if (lastColumnResize == true) {\n arr.push({\n key: 'resize',\n dataIndex: 'resize',\n title: '',\n width: 10,\n textAlign: 'center',\n readOnly: true\n })\n }\n let delType = typeof this.props.delRow == 'boolean' ? this.props.delRow : true;\n let dynamics = typeof this.props.isFixDelColumn == 'boolean' && this.props.isFixDelColumn == true ? { fixed: 'right',width: 50 } : { width: 28};\n if (delType === true) {\n arr.push({\n key: 'del',\n ...dynamics,\n dataIndex: 'del',\n title: '',\n className: 'shanchu',\n textAlign: 'center', //beeTable居中\n align: 'center', //antTable居中\n render: (text, record, index) => this.renderAction(text, record, index)\n })\n }\n return arr;\n }\n\n stopPropagation = (_event) => {\n if (_event && _event.stopPropagation) {\n _event.stopPropagation();\n }\n }\n\n /*以下为触发事件*/\n handleClick = (_event, type, ...rest) => {\n this.isHitRow = true;\n const lists = this.props.dataSource;\n switch (type) {\n case 'rowClick':\n this.rowClick(...rest)\n break;\n case 'del':\n this.delClick(lists, ...rest)\n this.stopPropagation(_event)\n break;\n case 'minus':\n this.minusClick(lists, ...rest)\n this.stopPropagation(_event)\n break;\n case 'plus':\n this.plusClick(lists, ...rest)\n this.stopPropagation(_event)\n break;\n case 'modal':\n this.modalClick(...rest)\n break;\n }\n }\n controllerEvent = (methodName, methodArgs) => {\n this.context.onEvent({ 'controllerEvent': Action.fromJS(this.context.viewModel, methodName) }, 'controllerEvent', methodArgs);\n }\n selfHandleClick = () => {\n const { rowIndex = undefined } = this.props;\n if (rowIndex == undefined) {\n return true;\n }\n return false;\n }\n\n rowClick = (record, index, fn) => {\n if (this.selfHandleClick()) {\n //当不设置行点击事件时,组件内部处理。\n if (this.state.selectedRowKeys.indexOf(index) > -1) return;\n this.setSelectedRowKeys(index, true);\n }else{\n //当设置点击事件,组件外处理\n this.outerCallback(this.type.click, record, index);\n }\n }\n delClick = async (lists, index, record) => {\n let status = AuthProcess.execute('ReverseOperation');\n if (!status) {\n this.props.authorityValidate && this.props.authorityValidate({callback:(result)=>{\n if (result) {\n if (this.selfHandleClick()) {\n lists.splice(index, 1);\n this.clearSelectedRows();\n }else{\n this.outerCallback(this.type.delete, record, index);\n AddLogProcessor.execute(\"删除行\", record.Code, '删除行成功');\n }\n }\n }});\n } else {\n if (this.selfHandleClick()) {\n lists.splice(index, 1);\n this.clearSelectedRows();\n }else{\n this.outerCallback(this.type.delete, record, index);\n }\n }\n this.controllerEvent('setInventoryFocus');\n }\n minusClick = (lists, text, record, index, rowItem) => {\n let val = text;\n let min = rowItem.minValue;\n let quantityUiState = record.uiState&&record.uiState.Quantity;\n //单元格状态控制\n let cellMin = quantityUiState && quantityUiState.min.value;\n let cellMinTip = quantityUiState && quantityUiState.min.tip;\n\n let item = { ...lists[index] };\n let afterValue = this.accSub(val, 1);\n\n if (min !== undefined) {\n if (min >= val) return;\n afterValue = (min >= afterValue) ? min : afterValue;\n }\n //单元格状态控制\n if ( !tools.isNull(cellMin)) {\n if (cellMin >= val) {\n if( !tools.isNull(cellMinTip) ) Message.info(cellMinTip);\n return;\n }\n afterValue = (cellMin >= afterValue) ? cellMin : afterValue;\n }\n\n item[rowItem.key] = afterValue;\n item.operateType = 'minus';\n this.outerCallback(this.type.update, item, index);\n }\n\n plusClick = (lists, text, record, index, rowItem) => {\n let list1 = lists[index];\n if (list1 && list1.isSerialNumber && list1.SerialNumber && list1.Quantity === 1) {\n Message.warn('已录入序列号后,不可增加数量')\n return;\n }\n let val = text;\n let max = rowItem.maxValue;\n let quantityUiState = record.uiState&&record.uiState.Quantity;\n //单元格状态控制\n let cellMax = quantityUiState && quantityUiState.max.value;\n let cellMaxTip = quantityUiState && quantityUiState.max.tip;\n\n let item = { ...lists[index] };\n let afterValue = this.accAdd(val, 1);\n if (record.WaitPickUpArr && record.WaitPickUpArr.length > 0){\n let WaitPickUpObj = record.WaitPickUpArr.find(o=>o.unitId == record.Idunit) || {};\n if (text > WaitPickUpObj.waitPickUpQty){\n Message.warn(`不能超过最大可取数量${WaitPickUpObj.waitPickUpQty}`);\n return;\n } else if (afterValue > WaitPickUpObj.waitPickUpQty && text != WaitPickUpObj.waitPickUpQty){\n afterValue = WaitPickUpObj.waitPickUpQty;\n }\n }\n if (max !== undefined) {\n if (max <= val) return;\n afterValue = (max <= afterValue) ? max : afterValue;\n }\n //单元格状态控制\n if ( !tools.isNull(cellMax)) {\n if (cellMax <= val){\n if( !tools.isNull(cellMaxTip) ) Message.info(cellMaxTip);\n return;\n }\n afterValue = (cellMax <= afterValue) ? cellMax : afterValue;\n }\n item[rowItem.key] = afterValue;\n this.outerCallback(this.type.update, item, index);\n }\n\n modalClick = (text, record, index, rowItem) => {\n const fn = this.props.rowClick;\n if (typeof fn == 'function') {\n fn(this.type.updateField, index, record, rowItem.key, rowItem)\n }\n }\n\n /*以下为抽离公共方法*/\n\n setRow = (index) => {\n this.setSelectedRowKeys(index)\n }\n\n setSelectedRowKeys = (params) => {\n const { rowIndex, isScrolling } = this.props;\n let arr = new Array();\n if (params instanceof Array) {\n arr.push(...params)\n } else {\n arr.push(params)\n }\n let tops = {};\n let isHitRow = event && event.type == 'click' && (event.target.nodeName == 'DIV' || event.target.nodeName == 'I')\n if (isScrolling && rowIndex && rowIndex > -1 && !((this.isHitRow === true) ? true : isHitRow)) {\n const scrollTop = this.getScrollTopValue();\n tops = { scrollTop };\n } else {\n tops = { scrollTop: null };\n }\n this.setState({ selectedRowKeys: arr, ...tops });\n if (this.isHitRow === true) { setTimeout(() => { this.isHitRow = false }, 600) }\n }\n\n findSelectedRowKeys = (index) => {\n let rowIndexs = this.state.selectedRowKeys;\n if (rowIndexs && rowIndexs.length > 0) {\n for (let i = 0; i < rowIndexs.length; i++) {\n let item = rowIndexs[i];\n if (item === index) {\n return true;\n }\n }\n }\n return false;\n }\n\n clearSelectedRows = () => {\n this.setSelectedRowKeys([])\n }\n\n outerCallback = (type, record, index) => {\n const cb = this.props.rowClick;\n if (typeof cb == 'function') cb(type, index, record)\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 // f_x = Math.round(number * 100) / 100;\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 /* 浮点数做相乘处理 */\n changeDecimalMul = (a, b) => {\n let c = 0,\n d = (a + '').toString(),\n e = (b + '').toString();\n try {\n c += d.split(\".\")[1].length;\n } catch (f) { }\n try {\n c += e.split(\".\")[1].length;\n } catch (f) { }\n return Number(d.replace(\".\", \"\")) * Number(e.replace(\".\", \"\")) / Math.pow(10, c);\n }\n\n prefixZero = (num, n) => {\n return (Array(n).join(0) + num).slice(-n);\n }\n\n //相加\n accAdd = (arg1, arg2) => {\n let r1, r2, m, c;\n try {\n r1 = (arg1 + '').toString().split(\".\")[1].length;\n }\n catch (e) {\n r1 = 0;\n }\n try {\n r2 = (arg2 + '').toString().split(\".\")[1].length;\n }\n catch (e) {\n r2 = 0;\n }\n c = Math.abs(r1 - r2);\n m = Math.pow(10, Math.max(r1, r2));\n if (c > 0) {\n var cm = Math.pow(10, c);\n if (r1 > r2) {\n arg1 = Number((arg1 + '').toString().replace(\".\", \"\"));\n arg2 = Number((arg2 + '').toString().replace(\".\", \"\")) * cm;\n } else {\n arg1 = Number((arg1 + '').toString().replace(\".\", \"\")) * cm;\n arg2 = Number((arg2 + '').toString().replace(\".\", \"\"));\n }\n } else {\n arg1 = Number((arg1 + '').toString().replace(\".\", \"\"));\n arg2 = Number((arg2 + '').toString().replace(\".\", \"\"));\n }\n return (arg1 + arg2) / m;\n }\n\n //相减\n accSub = (arg1, arg2) => {\n let r1, r2, m, n;\n try {\n r1 = (arg1 + '').toString().split(\".\")[1].length;\n }\n catch (e) {\n r1 = 0;\n }\n try {\n r2 = (arg2 + '').toString().split(\".\")[1].length;\n }\n catch (e) {\n r2 = 0;\n }\n m = Math.pow(10, Math.max(r1, r2)); //last modify by deeka //动态控制精度长度\n n = (r1 >= r2) ? r1 : r2;\n return ((arg1 * m - arg2 * m) / m).toFixed(n);\n }\n\n emptyFunc = (tabHeight) => {\n const { emptyStyle = 'txt', emptyText = '暂无数据~~', emptyImage = this.sys_parms.touchTableEmptyImage } = this.props\n let type = null;\n switch (emptyStyle) {\n case 'icon':\n type = 1;\n break;\n case 'txt':\n type = 2;\n break;\n case 'icon-txt':\n type = 3;\n break;\n default: type = 0;\n }\n return (<div className='defaultContainer' style={{ height: tabHeight + 'px' }}>\n <div style={{ display: type === 0 ? 'none' : '' }}>\n <img className='img' style={{ display: (type === 1 || type === 3) ? '' : 'none' }} src={emptyImage} />\n <div style={{ display: (type === 2 || type === 3) ? '' : 'none' }}>{emptyText}</div>\n </div>\n </div>);\n }\n\n getScrollHeight = () => {\n const { tableHeight, headerHeight = 50, type } = this.props;\n if (typeof tableHeight == 'number') return tableHeight - headerHeight;\n let tab;\n if (type === 'bee'){\n tab = this.tableElement.current;\n } else {\n tab = document.getElementsByClassName(`antTable ${this.uuid}`)[0];\n }\n if (tab) {\n let t = type === 'bee' ? tab.contentTable.parentNode.clientHeight : tab.clientHeight\n return t - headerHeight > 0 ? t - headerHeight : headerHeight\n } else {\n return 0\n }\n }\n\n initScrollHeight = () => {\n const scrollHeight = this.getScrollHeight();\n this.setState({ scrollY: scrollHeight })\n }\n\n getScrollTopValue = () => {\n let top = 0;\n const { height = 50, type } = this.props;\n let bodyTable;\n if (type === 'bee'){\n let tab = this.tableElement.current;\n bodyTable = tab && tab.bodyTable;\n } else {\n const parentNodeEl = document.getElementsByClassName(`antTable ${this.uuid}`)[0];\n bodyTable = parentNodeEl.getElementsByClassName('ant-table-body')[0];\n }\n if (bodyTable.scrollHeight > bodyTable.clientHeight) {\n const { selectedRowKeys } = this.state;\n let rowTop = 0;\n if (selectedRowKeys && selectedRowKeys.length > 0) {\n let index = selectedRowKeys[0];\n let tabTop = bodyTable.scrollTop;\n try {\n let curTop = bodyTable.lastChild.lastChild.childNodes[index].offsetTop;\n rowTop = curTop - bodyTable.clientHeight + height + 10;\n rowTop = Math.abs(tabTop - curTop) < 100 ? tabTop : rowTop;\n } catch (e){\n console.log(e);\n }\n }\n top = rowTop > 0 ? rowTop : 0\n }\n return top;\n }\n\n componentDidMount() {\n setTimeout(() => {\n if( this.props.rowIndex!==void(0) ){\n this.setSelectedRowKeys(this.props.rowIndex)\n }\n this.initScrollHeight()\n }, 0)\n this.generateWaterMark()\n }\n componentDidUpdate() {\n this.generateWaterMark()\n }\n componentWillReceiveProps(nextProps) {\n if ('rowIndex' in nextProps) {\n this.setSelectedRowKeys(nextProps.rowIndex);\n this.initScrollHeight();\n }\n }\n render() {\n let {\n autoScroll, width, tableHeight,\n headerHeight = 50, height = 50,\n pagination, dataSource,\n columns, rowClick, cboxClick, className = '',\n checkbox, rowIndex, type, ...items\n } = this.props;\n let { scrollY, scrollTop } = this.state;\n // let copyColumns = columns.map(el=>{return {...el}});\n const tabColumns = this.getRenderColumns(columns, dataSource);\n const dyItems = (scrollTop != null) ? { scrollTop } : {};\n return (\n <div className={`${type === 'bee' ? 'touchTable' : 'antTable'} ${className} ${this.uuid}`}>\n {\n type === 'bee' ? (\n <Table\n {...items}\n {...dyItems}\n ref={this.tableElement}\n style={{ width: width ? width : '100%', height: tableHeight ? tableHeight : '100%' }}\n rowKey={row => row.Code}\n headerHeight={headerHeight}\n pagination={pagination ? pagination : false}\n data={dataSource}\n columns={tabColumns}\n height={height}\n rowClassName={this.getRowClassName}\n emptyText={() => this.emptyFunc(tableHeight)}\n scroll={autoScroll ? {} : { y: scrollY }}\n headerScroll={false}\n onRowClick={\n (record, index) => {\n this.handleClick(null, 'rowClick', record, index, rowClick)\n }\n }\n />\n ):(\n <AntTable\n id=\"ref-table\"\n {...items}\n {...dyItems}\n style={{ width: width ? width : '100%', height: tableHeight ? tableHeight : '100%' }}\n rowKey={row => row.key || row.Code}\n pagination={pagination ? pagination : false}\n dataSource={dataSource}\n columns={tabColumns}\n rowClassName={this.getRowClassName}\n locale={{emptyText: this.emptyFunc(tableHeight - 60)}}\n scroll={autoScroll ? {y: null} : {y: tableHeight - 60 }}\n onRow={(record, index) => {\n return{\n onClick: () => this.handleClick(null, 'rowClick', record, index, rowClick)\n }\n }}\n />\n )\n }\n\n </div>\n )\n }\n}\n"]}
|