tplus-components-touch 3.19.2 → 3.22.1

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.
Files changed (195) hide show
  1. package/README.md +16 -16
  2. package/dist/components/acCitySelect/CitySelect.js +18 -18
  3. package/dist/components/acCitySelect/CitySelect.js.map +1 -1
  4. package/dist/components/acCitySelect/CitySelect.less +9 -9
  5. package/dist/components/acCitySelect/citys.js.map +1 -1
  6. package/dist/components/acCitySelect/index.js.map +1 -1
  7. package/dist/components/acCitySelect/provinceData.js +7 -7
  8. package/dist/components/acCitySelect/provinceData.js.map +1 -1
  9. package/dist/components/addLog/AddLogProcessor.js +6 -6
  10. package/dist/components/addLog/AddLogProcessor.js.map +1 -1
  11. package/dist/components/addLog/OperationLogApi.js +3 -3
  12. package/dist/components/addLog/OperationLogApi.js.map +1 -1
  13. package/dist/components/autoComplete/index.js +14 -14
  14. package/dist/components/autoComplete/index.js.map +1 -1
  15. package/dist/components/autoComplete/index.less +89 -89
  16. package/dist/components/autoComplete/option.js.map +1 -1
  17. package/dist/components/autoCompleteWithKeyboard/index.js +14 -14
  18. package/dist/components/autoCompleteWithKeyboard/index.js.map +1 -1
  19. package/dist/components/autoCompleteWithKeyboard/index.less +7 -7
  20. package/dist/components/billSearch/api.js +29 -29
  21. package/dist/components/billSearch/api.js.map +1 -1
  22. package/dist/components/billSearch/index.js +6 -6
  23. package/dist/components/billSearch/index.js.map +1 -1
  24. package/dist/components/billSearch/index.less +363 -363
  25. package/dist/components/cloudPrint/BTPrintFormatUtil.js +17 -17
  26. package/dist/components/cloudPrint/BTPrintFormatUtil.js.map +1 -1
  27. package/dist/components/cloudPrint/api.js +1 -1
  28. package/dist/components/cloudPrint/api.js.map +1 -1
  29. package/dist/components/cloudPrint/index.js +28 -52
  30. package/dist/components/cloudPrint/index.js.map +1 -1
  31. package/dist/components/commonForm/addressPicker/index.js +7 -7
  32. package/dist/components/commonForm/addressPicker/index.js.map +1 -1
  33. package/dist/components/commonForm/addressPicker/style.less +10 -10
  34. package/dist/components/commonForm/autoComplete/index.js.map +1 -1
  35. package/dist/components/commonForm/autoComplete/style.less +2 -2
  36. package/dist/components/commonForm/datePicker/index.js.map +1 -1
  37. package/dist/components/commonForm/datePicker/style.less +4 -4
  38. package/dist/components/commonForm/formControl/index.js.map +1 -1
  39. package/dist/components/commonForm/index.js +4 -4
  40. package/dist/components/commonForm/index.js.map +1 -1
  41. package/dist/components/commonForm/inputNumber/index.js.map +1 -1
  42. package/dist/components/commonForm/inputNumber/style.less +10 -10
  43. package/dist/components/commonForm/radio/index.js.map +1 -1
  44. package/dist/components/commonForm/style.less +1 -1
  45. package/dist/components/deliverySearch/api.js +21 -21
  46. package/dist/components/deliverySearch/api.js.map +1 -1
  47. package/dist/components/deliverySearch/index.js +6 -6
  48. package/dist/components/deliverySearch/index.js.map +1 -1
  49. package/dist/components/deliverySearch/index.less +553 -553
  50. package/dist/components/form/index.js.map +1 -1
  51. package/dist/components/hardwareAPI/index.js.map +1 -1
  52. package/dist/components/hotKey/config.js +23 -23
  53. package/dist/components/hotKey/config.js.map +1 -1
  54. package/dist/components/hotKey/hotKeyModal.js.map +1 -1
  55. package/dist/components/hotKey/index.js +26 -26
  56. package/dist/components/hotKey/index.js.map +1 -1
  57. package/dist/components/hotKey/localConfig.js.map +1 -1
  58. package/dist/components/hotKey/style.less +96 -96
  59. package/dist/components/hotKey/utils.js.map +1 -1
  60. package/dist/components/input/index.js +6 -6
  61. package/dist/components/input/index.js.map +1 -1
  62. package/dist/components/input/style.less +99 -99
  63. package/dist/components/input/tplusInput/index.js +30 -30
  64. package/dist/components/input/tplusInput/index.js.map +1 -1
  65. package/dist/components/input/tplusInput/inputContent.js.map +1 -1
  66. package/dist/components/input/tplusInput/inputs.js.map +1 -1
  67. package/dist/components/input/tplusInput/style.less +132 -132
  68. package/dist/components/input/utils/index.js.map +1 -1
  69. package/dist/components/inventorySearch/api.js +58 -58
  70. package/dist/components/inventorySearch/api.js.map +1 -1
  71. package/dist/components/inventorySearch/index.js +15 -6
  72. package/dist/components/inventorySearch/index.js.map +1 -1
  73. package/dist/components/inventorySearch/index.less +119 -115
  74. package/dist/components/inventorySearch/store.js.map +1 -1
  75. package/dist/components/inventorySearch/tab.js.map +1 -1
  76. package/dist/components/keyboard/index.js +1 -1
  77. package/dist/components/keyboard/index.js.map +1 -1
  78. package/dist/components/keyboard/index.less +469 -469
  79. package/dist/components/keyboard/letterKeyboard.js +2 -2
  80. package/dist/components/keyboard/letterKeyboard.js.map +1 -1
  81. package/dist/components/keyboard/numKeyboard.js +4 -4
  82. package/dist/components/keyboard/numKeyboard.js.map +1 -1
  83. package/dist/components/keyboard/numKeyboardScan.js.map +1 -1
  84. package/dist/components/keyboard/numberButton_input.js +5 -5
  85. package/dist/components/keyboard/numberButton_input.js.map +1 -1
  86. package/dist/components/keyboard/numkeyboardPassword.js +4 -4
  87. package/dist/components/keyboard/numkeyboardPassword.js.map +1 -1
  88. package/dist/components/keyboard/onlyKeyboard.js +7 -7
  89. package/dist/components/keyboard/onlyKeyboard.js.map +1 -1
  90. package/dist/components/keyboard/onlyLetterButton.js +2 -2
  91. package/dist/components/keyboard/onlyLetterButton.js.map +1 -1
  92. package/dist/components/keyboard/onlyLetterButton2.js +2 -2
  93. package/dist/components/keyboard/onlyLetterButton2.js.map +1 -1
  94. package/dist/components/keyboard/onlyLetterButton2.less +161 -161
  95. package/dist/components/keyboard/onlyNumberButton.js +2 -2
  96. package/dist/components/keyboard/onlyNumberButton.js.map +1 -1
  97. package/dist/components/keyboard/onlyNumberButton2.js +3 -3
  98. package/dist/components/keyboard/onlyNumberButton2.js.map +1 -1
  99. package/dist/components/keyboard/textKeyboard.js.map +1 -1
  100. package/dist/components/layout/hamburger.js.map +1 -1
  101. package/dist/components/layout/index.js +10 -10
  102. package/dist/components/layout/index.js.map +1 -1
  103. package/dist/components/layout/layout.js.map +1 -1
  104. package/dist/components/layout/sider.js +12 -12
  105. package/dist/components/layout/sider.js.map +1 -1
  106. package/dist/components/layout/style.less +82 -82
  107. package/dist/components/loading/index.js +15 -15
  108. package/dist/components/loading/index.js.map +1 -1
  109. package/dist/components/loading/loadingContent.js.map +1 -1
  110. package/dist/components/loading/style.less +51 -51
  111. package/dist/components/loading/utils.js.map +1 -1
  112. package/dist/components/message/index.js +8 -8
  113. package/dist/components/message/index.js.map +1 -1
  114. package/dist/components/message/index.less +86 -86
  115. package/dist/components/modal/index.js.map +1 -1
  116. package/dist/components/modal/index.less +19 -19
  117. package/dist/components/modalVertical/index.js +7 -7
  118. package/dist/components/modalVertical/index.js.map +1 -1
  119. package/dist/components/modalVertical/style.less +60 -60
  120. package/dist/components/modalWraper/index.js +15 -15
  121. package/dist/components/modalWraper/index.js.map +1 -1
  122. package/dist/components/modalWraper/style.less +251 -251
  123. package/dist/components/modalWraper/utils.js.map +1 -1
  124. package/dist/components/notification/index.js +4 -4
  125. package/dist/components/notification/index.js.map +1 -1
  126. package/dist/components/notification/index.less +51 -51
  127. package/dist/components/overflowTip/index.js +15 -15
  128. package/dist/components/overflowTip/index.js.map +1 -1
  129. package/dist/components/overflowTip/style.less +66 -66
  130. package/dist/components/page/index.js.map +1 -1
  131. package/dist/components/page/index.less +21 -21
  132. package/dist/components/product/detail.js +7 -7
  133. package/dist/components/product/detail.js.map +1 -1
  134. package/dist/components/product/getCard.js +5 -5
  135. package/dist/components/product/getCard.js.map +1 -1
  136. package/dist/components/product/index.less +128 -128
  137. package/dist/components/progressState/EmptyAndErrorView.js.map +1 -1
  138. package/dist/components/progressState/ProgressState.js +10 -10
  139. package/dist/components/progressState/ProgressState.js.map +1 -1
  140. package/dist/components/progressState/index.js.map +1 -1
  141. package/dist/components/progressState/style.less +65 -65
  142. package/dist/components/scan/index.js.map +1 -1
  143. package/dist/components/scan/index.less +33 -33
  144. package/dist/components/select/index.js.map +1 -1
  145. package/dist/components/select/index.less +11 -11
  146. package/dist/components/settlement/asyncModal.js +4 -0
  147. package/dist/components/settlement/asyncModal.js.map +1 -1
  148. package/dist/components/settlement/index.js.map +1 -1
  149. package/dist/components/settlement/prototypeTable/index.js +349 -0
  150. package/dist/components/settlement/prototypeTable/index.js.map +1 -0
  151. package/dist/components/settlement/prototypeTable/style.less +59 -0
  152. package/dist/components/settlement/prototypeTable/utils.js +14 -0
  153. package/dist/components/settlement/prototypeTable/utils.js.map +1 -0
  154. package/dist/components/settlement/settlement.js +416 -117
  155. package/dist/components/settlement/settlement.js.map +1 -1
  156. package/dist/components/settlement/settlement.less +1519 -1474
  157. package/dist/components/settlement/settlementStore.js +88 -29
  158. package/dist/components/settlement/settlementStore.js.map +1 -1
  159. package/dist/components/settlement/utils.js.map +1 -1
  160. package/dist/components/socket/index.js +11 -11
  161. package/dist/components/socket/index.js.map +1 -1
  162. package/dist/components/spin/index.js +6 -6
  163. package/dist/components/spin/index.js.map +1 -1
  164. package/dist/components/spin/spin-style.less +436 -436
  165. package/dist/components/test/index.js +3 -3
  166. package/dist/components/test/index.js.map +1 -1
  167. package/dist/components/ticon/iconfont/demo_index.html +325 -3
  168. package/dist/components/ticon/iconfont/iconfont.css +59 -3
  169. package/dist/components/ticon/iconfont/iconfont.js +12 -10
  170. package/dist/components/ticon/iconfont/iconfont.js.map +1 -1
  171. package/dist/components/ticon/iconfont/iconfont.json +98 -0
  172. package/dist/components/ticon/iconfont/iconfont.svg +593 -593
  173. package/dist/components/ticon/iconfont/iconfont.ttf +0 -0
  174. package/dist/components/ticon/iconfont/iconfont.woff +0 -0
  175. package/dist/components/ticon/iconfont/iconfont.woff2 +0 -0
  176. package/dist/components/ticon/index.js.map +1 -1
  177. package/dist/components/touchScroll/index.js +9 -9
  178. package/dist/components/touchScroll/index.js.map +1 -1
  179. package/dist/components/touchTable/AuthProcess.js.map +1 -1
  180. package/dist/components/touchTable/generateWater.js.map +1 -1
  181. package/dist/components/touchTable/index.js +9 -9
  182. package/dist/components/touchTable/index.js.map +1 -1
  183. package/dist/components/touchTable/index.less +369 -369
  184. package/dist/components/touchTable/utils.js.map +1 -1
  185. package/dist/demo/PopOverDemo.js.map +1 -1
  186. package/dist/index.js +8 -23
  187. package/dist/index.js.map +1 -1
  188. package/dist/util/tools.js.map +1 -1
  189. package/locales/zh/tplus-components-touch.json +1 -1
  190. package/locales/zh-CN/tplus-components-touch.json +1 -1
  191. package/mocks/memberInfo.json +79 -79
  192. package/package.json +2 -2
  193. package/tsconfig.json +26 -26
  194. package/dist/components/cloudPrint/printDispatch.js +0 -223
  195. package/dist/components/cloudPrint/printDispatch.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["tplus-components-touch/components/settlement/settlementStore.js"],"names":["t","i18n","getFixedT","SettlementStore","paymode","dto","member","brefund","bquick","boriginReturn","newStyle","getCouponList","enumController","getEnumOj","PayStyle","Differentiate","couponApplyRule","CouponApplyRule","SHOWN_BY_CUSTOMER","coupon_code","promoVoucher","clearDjqs","reCalculationDjqs","boName","voucherId","ID","onlinePaymentAmount","OnlinePaymentAmount","totalAmountWithTax","Math","Minus","TotalTaxAmount","redBlueFlagEnum","meMemberId","Idmember","storeFactorId","Idstore","voucherDetailList","RetailDetails","forEach","detailDTO","uuid","item","Code","detailBoName","voucherDetailId","productId","Idinventory","uomId","Idunit","productSpecId","ProductSpecId","isManualFreeGift","IsPresent","isListPriceIncludingTax","TaxFlag","IsManualChangePrice","listPrice","TaxPrice","netAmountWithTax","TaxAmount","bookingQuantity","BookingQuantity","MemberPrice","Multiply","Quantity","taxRate","TaxRate","quantity","amountWithTax","RetailAmount","PromotionDetails","length","promoLinks","promotion","push","promoId","IdSalesPromotionDTO","promoRuleId","PromotionRuleId","method","timeout_skip","then","result","element","couponCode","name","tieredAmountResult","fromDate","dateMount","promoMethodEnum","discountPct","nominalAmount","id","condValue","promoDiscount","displayText","currentMode","djqs","djq","code","Message","info","COUPON","IsRepelWithPoints","thePaymodes","themode","paymentType","jfdx","error","SN","addDjq","calcDjqValue","getSettleGift","billID","checkCoupon","sn","platform","isNewRetailBCPos","request","Uid","uid","StoreCode","Inventories","d","detail","IdInventory","Inventory","IdUnit","FreeItem0","JSON","getCellValue","FreeItem1","FreeItem2","FreeItem3","FreeItem4","FreeItem5","FreeItem6","FreeItem7","FreeItem8","FreeItem9","InventoryClassCodes","InventoryClass","Amount","amount","Title","ReduceAmount","StartAmount","LastTS","UMemberID","checkIntegralExchangeReturn","resolve","reject","param","refVoucherId","resp","expireIntegral","ModalWraper","confirm","className","title","content","cancelable","onOk","onCancel","PayMode","params","localStore","get","cloudPrintArguments","event","type","isIntegralExchange","setPaymodes","updateEvent","context","amounthandler","datasource","storeinfo","data","amountHandler","dataSource","storeInfo","viewModel","global","DealSingleRowAmountSettingProcessorBlock","execute","DealAmountSettingProcessorBlock","Member","setAmount","clean","initByOriginReturn","setModes","paymodes","p","mode","addPay","changeValue","paymethodId","RetailPaymentDetails","IdsettleStyle","SettleStyle","hyczk","okText","okType","newmode","genNewMode","authCode","PaymentCode","steadCashIntegral","SteadCashIntegral","overchargesAmount","OverchargesAmount","RetailCouponDetails","CouponCode","CouponTitle","ReductionAmount","EnableAmount","RetailStorageDetails","balanceAmount","BalanceStorage","StoragePaymentAmount","Password","balance","calcReserved","key","currentFocus","index","m","splice","addPayDirectly","IntegralSteadCashParams","BalanceTaxAmount","value","Integral","loginInfo","v","errinfo","IdStore","storeID","storeCode","address","SearchParams","Key","IsSingleMember","parse","Data","setMeStorageCardId","MeStorageCardId","setStorageCardNo","StorageCardNo","receivable","max","message","CheckMemberStorageProcessorBlock","String","isNullOrEmpty","checkReceived","nextInput","document","querySelector","focus","doorsill","checked","expired","unCheck","append","afterSetCurrentMode","parseFloat","setExchangable","MaxAmount","maxamount","notwithm","counter","exchangeRate","calDirection","value2","value3","order","setMaxAmount","console","log","sum","q","Add","getViewItem","availableAmount","shouldSetValue","blur","isNaN","pay","pos","bTest","saveMember","save","err","DoNameList","DO_STORAGE_PRINT","StorageMutiSettleDetails","giveChange","xianjin","abs","StorageAmount","GiveChange","idSettleStyle","IdbankAccount","idBankAccount","DynamicPropertyKeys","DynamicPropertyValues","DataSource","Id","IPMSG","window","localStorage","handlePrint","czkSum","IsOrigReturn","OrigAmount","Idcurrency","idCurrency","ExchangeRate","IdMember","PromotionId","PromoCouponAllocatedId","RetailTypeEnum","IdbusiType","ReturnSourceId","cut","RetailOms","cip","query","setDtoID","RetailCode","Flag","val","exp","Date","setTime","endOf","valueOf","cookie","toGMTString","cookies","split","cookieObj","cook1","getAllCookies","cook2","hasOwnProperty","password","User","pwdEncrypt","pwd","count","setCookie","Success","action","newPass","newPassConfirm","warn","idstore","oldPassword","newPassword","successful","_this","getLoginInfo","_counter","onlineamount","settle","hotKey","a","o","received","q1","min","rawbalance","settleStyleType","memberStoreCode","settlementCode","modes","SettleStyles","Name","isDefault","IsDefaultSettleStyle","isQuick","QuickSettleStyles","orderBy","IdSettleStyle","IdBankAccount","Currency","CalDirection","observable","MemberType","cardNo","CardCode","needPwd","IsNeedPwd","NeedModifyPassword","bonusPoints","BalanceIntegral","exchangable","meStorageCardId"],"mappings":"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","file":"settlementStore.js","sourcesContent":["import { observable, computed, action, autorun, runInAction } from 'mobx'\nimport {stores,i18n,localStore} 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 } from './utils'\nimport {ccApi,tApi, User} from 'tplus-api';\nimport Message from '../message';\nimport { platform,enumController } from 'mutants-util';\nimport { printDispatch,DoNameList,ModalWraper } from 'tplus-components-touch'\nimport moment from \"moment\";\n\nconst t = i18n.getFixedT(null, 'newretail');\n\nexport default class SettlementStore {\n paymode = null\n dto=null\n member=null\n brefund=false\n context\n bquick=false;\n amountHandler\n dataSource\n storeInfo\n updateEvent\n\ttype\n boriginReturn=false\n newStyle=true//type==2\n billID\n constructor(){\n this.paymode= new PayMode()\n let params = localStore && localStore.get('cloudPrintArguments');\n if (params) this.cloudPrintArguments = params;\n this.newStyle=localStore && localStore.get('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){\n this.newStyle=localStore && localStore.get('voucherDefaultPosMode')=='voucher';\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 // 成交金额抹零\n if (global.DealAmountSettingProcessorBlock) {\n global.DealAmountSettingProcessorBlock.execute(this.dto);\n }\n });\n // this.member=context.stores && context.stores.memberStore && context.stores.memberStore.member;\n this.member=this.dto.Member;//stores.selectMemberStore.selectMemberInfo;\n this.brefund=this.paymode.setAmount( this.dto.TotalTaxAmount ,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 ccApi({ \n Idstore: idstore,\n meMemberId: this.member.ID,\n oldPassword: null,\n newPassword: User.pwdEncrypt(newPassConfirm),\n dataSource:\"POS\"\n }, '/member/MeMemberWallet/setWalletPayPassword', false, false, { method: 'post', timeout_skip: true }).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 _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 };\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, 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 id,\n true);\n return;\n }\n this.addDjq(djq.CouponCode, djq.CouponTitle, 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 = detail.Member.BalanceStorage;\n balanceAmount = balanceAmount - detail.StoragePaymentAmount;\n let newmode={\n ...this.genNewMode(PayStyle.hyczk,false,detail.StoragePaymentAmount),\n member:new Member(detail.Member),\n authCode:detail.Password,\n balance:balanceAmount,\n boriginReturn:true\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);\n }\n\n //outer call\n //(type===PayStyle.hyczk || type===PayStyle.jfczk || type===PayStyle.jfdx || type===PayStyle.djq)\n @action changeFocusAndAddPay(type){\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 tApi({IntegralSteadCashParams:{\n Idmember:this.paymode.currentMode.member.id,\n TotalTaxAmount:this.paymode.amount,\n BalanceTaxAmount: this.paymode.currentMode.value,\n }}, 'AA.DR.newRetailMember.CalculdateIntegralSteadCash', false, false).then((result)=>{\n this.paymode.currentMode.steadCashIntegral=result.Integral;\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);\n }\n }\n\n // 设置密码后更新会员信息\n @action updateMemberInfo = async (_this) => {\n const { IdStore, StoreCode } = this.getLoginInfo();\n const resp = await tApi({ Idmember: this.member.ID, IdStore, StoreCode }, 'chanjet.AA.DR.INewRetailMember.GetUmemberDTO', false, false);\n _this.member = resp;\n _this.paymode.currentMode.member.setStorageCardNo(resp.StorageCardNo);\n return Promise.resolve(resp);\n }\n\n getLoginInfo() {\n const { loginInfo = {} } = localStore.get('user') || {};\n return loginInfo;\n }\n\n loadCzk(v){\n if(_trim(v)===\"\"){\n runInAction(()=>{\n this.paymode.currentMode.member = new Member( null );\n this.paymode.currentMode.errinfo=\"请输入储值卡\";\n });\n return;\n }\n const IdStore=this.storeInfo.storeID;\n const StoreCode=this.storeInfo.storeCode;//_find(this.storeInfo.storeInfos,(store)=>{return store.ID==IdStore;}).Code;\n const { isNewRetailBCPos } = platform || {};\n let address = ''\n if (isNewRetailBCPos) {\n address = 'chanjet.AA.DR.INewRetailMember.SearchMember'\n } else {\n address = 'AA.DR.newRetailMember.SearchMember'\n }\n return tApi({SearchParams:{Key:v,IsSingleMember:true,IdStore,StoreCode}}, address, false, false)\n .then((result)=>{\n let data=JSON.parse(result.Data);\n let m=data && data.length>0 && data[0];\n const { isNewRetailBCPos } = platform || {};\n if (isNewRetailBCPos) {\n this.paymode && this.paymode.currentMode.member.setMeStorageCardId(m.MeStorageCardId);\n this.paymode && this.paymode.currentMode.member.setStorageCardNo(m.StorageCardNo);\n }\n if(!m || !m.ID){\n runInAction(()=>{this.paymode.currentMode.errinfo=\"无效的会员卡号\";});\n }\n else{\n runInAction(()=>{\n this.paymode.currentMode.errinfo=\"\";\n this.paymode.currentMode.member = new Member( m )\n this.paymode.currentMode.value=getFixedNumber(this.brefund?this.paymode.receivable:Math.max(this.paymode.receivable,0));\n this.updateEvent();\n let message='';\n if (global.CheckMemberStorageProcessorBlock ) {\n message= CheckMemberStorageProcessorBlock.execute(data[0]);\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 && this.paymode.currentMode.value==0){\n this.paymode.currentMode.errinfo=\"实收金额必须录入\";\n } else {\n // 查询成功后将焦点移入下一个输入框\n const nextInput = document.querySelector('.czk .received .input');\n nextInput && nextInput.focus();\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.bizDate = dto.VoucherDate;\n // promoVoucher.bizDate = new Date().getTime();\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.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\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 = item.MemberPrice;\n detailDTO.netAmountWithTax = Math.Multiply(item.MemberPrice,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 \n return ccApi({\n ...promoVoucher\n }, 'promotion/PromoCalculate/findUsefulCouponPromoList', false, false,{method:'post',timeout_skip:true})\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 } = tieredAmountResult\n if (_find(this.paymode.currentMode.djqs, (djq) => { return djq.code == couponCode })) {\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 couponCode,\n name,\n promoMethodEnum == \"CASH_COUPON\"?nominalAmount: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 id,\n true)\n }\n })\n if(promoVoucher.coupon_code){\n this.paymode.calcDjqValue(this.paymode.currentMode.djqs[0])\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 ccApi({ }, `/marketingtool/paygift/executeRightsForPos/${this.billID}`, false, false, { method: 'get', timeout_skip: true });\n }\n\n checkCoupon = async (sn) => {\n let { isNewRetailBCPos } = platform || {};\n if (isNewRetailBCPos) {\n return await this.getCouponList(sn);\n } else {\n const { PayStyle, Differentiate } = enumController.getEnumOj();\n return tApi({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 }}, 'chanjet.AA.DR.coupon.CheckCoupon', false, false)\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 code,\n name,\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 id,\n unCheck\n ){\n let djq={\n code,\n name,\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 id\n };\n this.paymode.currentMode.djqs.push(\n djq\n );\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 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 tApi({IntegralSteadCashParams:{\n Idmember:this.paymode.currentMode.member.id,\n TotalTaxAmount:this.paymode.amount,\n BalanceTaxAmount:this.paymode.amount,\n }}, 'AA.DR.newRetailMember.CalculdateIntegralSteadCash', false, false).then((result)=>{\n this.paymode.currentMode.member.setExchangable(result.MaxAmount);\n this.updateEvent();\n if(this.checkReceived(this.paymode.currentMode,\"exchangable\")){\n runInAction(()=>{this.paymode.currentMode.errinfo='余额不足'})\n }\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){\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 const mode = observable({\n paymethodId:this.paymode.counter,\n name:themode.name,\n exchangeRate:themode.exchangeRate,\n calDirection:themode.calDirection,\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 member:new Member(!notwithm?this.member:null),\n authCode:'',\n steadCashIntegral:null,\n errinfo:'',\n maxamount:this.paymode.amount,\n });\n if(type==PayStyle.hyczk){\n if(!mode.member.id ){\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 mode.maxamount=getFixedNumber(Math.Minus(this.context.viewModel.getViewItem('Voucher').availableAmount,sum));\n this.updateEvent();\n })\n })\n }\n\n @action changeFocusOnly(type){\n this.paymode.currentFocus=type;\n // 获取焦点时带入剩余的值\n // let mode=_find(this.paymode.thePaymodes,{'paymentType':type});\n // if(mode && this.isIntegralExchange){\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();\n // }\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();\n }\n }\n\n @action changeValue(index,value,blur){\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();\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){\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.push(this.genNewMode(type) );\n this.paymode.thePaymodes.splice(pos,0,this.genNewMode(type,this.newStyle && type==PayStyle.hyczk));\n this.paymode.calcReserved();\n }\n\n @action delPay(index){\n _remove(this.paymode.thePaymodes,(mode)=>{\n return mode.paymethodId===index;\n });\n this.paymode.currentFocus = -1;\n this.paymode.calcReserved();\n }\n\n async commit(bTest){\n console.log('settlementStore.commit开始,参数:'+bTest);\n if(bTest){\n return Promise.resolve(true);\n }\n try{\n this.type==1?await this.saveMember():await this.save();\n return Promise.resolve(true);\n }catch(err){\n console.error('settlementStore.commit失败,错误信息:'+err);\n return Promise.resolve(err);\n }\n console.error('settlementStore.commit失败,错误信息:'+err);\n }\n\n handlePrint(resp) {\n // 储值打印\n return printDispatch(DoNameList.DO_STORAGE_PRINT,resp.ID,{}) \n }\n\n saveMember(){\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 // cc结算调用\n let IPMSG = {};\n if (!!window.localStorage.IPMSG) {\n IPMSG = JSON.parse(window.localStorage.IPMSG);\n }\n return tApi({dto:this.dto}, 'chanjet.ME.INewRetailMemberStorage.Save', false, false).then((resp)=>{\n this.handlePrint(resp);\n });\n }\n\n async save(){\n const { PayStyle } = enumController.getEnumOj();\n runInAction(()=>{\n this.dto.RetailPaymentDetails=[];\n this.dto.RetailStorageDetails=[];\n this.dto.RetailCouponDetails=[];\n let czkSum=0;\n let Idmember=this.dto.Idmember;\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 if(mode.paymentType==PayStyle.hyczk){\n if(!Idmember){\n Idmember=mode.member.id;\n }\n czkSum=Math.Add(czkSum,mode.value);\n \n this.dto.RetailStorageDetails.push({\n Code:mode.paymethodId,\n StoragePaymentAmount:mode.value,\n IsOrigReturn:false,\n BalanceStorage:mode.balance,\n Idmember:mode.member.id,\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 })\n if(mode.paymentType==PayStyle.djq){\n _each(mode.djqs,(djq)=>{\n if(djq.checked){\n this.dto.RetailCouponDetails.push({\n CouponCode:djq.code,\n ReductionAmount:djq.amount,\n EnableAmount:djq.doorsill,\n CouponTitle:djq.name,\n IdMember:djq.UMemberID?mode.member.id: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 });\n let { isNewRetailBCPos } = platform || {};\n if(this.dto.RetailStorageDetails.length>0){\n const themode=_find(this.paymode.paymodes,{'paymentType':PayStyle.hyczk});\n if (isNewRetailBCPos) {\n this.dto.RetailStorageDetails && this.dto.RetailStorageDetails.forEach((value) => {\n value.MeStorageCardId = this.member.MeStorageCardId;\n })\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 } else {\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 })\n }\n this.dto.Idmember=Idmember;\n }\n });\n let { isNewRetailBCPos } = platform || {};\n console.log(`bc_pos环境:${isNewRetailBCPos},结算数据:`, this.dto);\n if (isNewRetailBCPos) {\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\n if(this.dto.IdbusiType == 37 && await this.checkIntegralExchangeReturn(this.dto.RetailDetails[0].ReturnSourceId) || this.dto.IdbusiType != 37){\n return ccApi({ dto: {...this.dto.cut(),RetailOms:{ RetailTypeEnum }},cip:IPMSG.query || \"\"}, '/retail/RetailPos/settle', false, false, { method: 'post', timeout_skip: true }).then((resp) => {\n this.setDtoID(resp.ID);\n this.billID = resp.ID;\n });\n }\n } else {\n // tc结算调用\n return tApi({ dto:this.dto.cut()}, 'chanjet.RE.newRetail.Settle', false, false, { timeout_skip: true }).then((resp) => {\n this.setDtoID(resp.ID);\n this.billID = resp.ID;\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 tApi({param: {refVoucherId:id}}, 'chanjet.RE.NewPos.GetNewIntegralExchange', false, false,{timeout_skip:true}).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 tApi({RetailCode: this.dto.Code}, 'chanjet.RE.newRetail.QuerySettleResult', false, false,{timeout_skip:true}));\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 if (cook2) {\n if (cook2.hasOwnProperty(this.member.MeStorageCardId + \"\")) {\n if (cook2[this.member.MeStorageCardId] > 3) {\n message = '今日密码错误已达上限,不可使用储值消费,请明日再试,如忘记请重置密码或修改密码。';\n return Promise.resolve(message);\n }\n }\n }\n const result = await ccApi({password: User.pwdEncrypt(value.pwd)}, `/member/MeMemberWallet/checkPaymentPassword/${value.id}`, false, false);\n if (!result.data) {\n if (cook2) {\n if (cook2.hasOwnProperty(this.member.MeStorageCardId + \"\")) {\n let count = cook2[this.member.MeStorageCardId];\n cook2[this.member.MeStorageCardId] = count + 1;\n } else {\n cook2[this.member.MeStorageCardId] = 1; \n }\n } else {\n cook2 = {};\n cook2[this.member.MeStorageCardId] = 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 tApi({\"CheckoutParams\": {\n \"Idmember\": value.id,\n \"Password\":value.pwd\n }}, 'AA.DR.newRetailMember.CheckoutMemberPassword', false, false);\n return Promise.resolve(result.Success?\"\":result.Message);\n }\n }catch(e){\n return \"failed\";\n }\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 currentMode=null;\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(){\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 this.receivable = getFixedNumber(this.amount - sum);\n }\n\n @action calcDjqValue(q1){\n let { isNewRetailBCPos } = platform || {};\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 _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.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 if(this.amount>0 && (v==='' || v==='0.00')){\n this.currentMode.errinfo=\"实收金额必须录入\";\n }else if(Math.abs(parseFloat(v))>Math.abs(this.amount)){\n this.currentMode.errinfo=\"实收不应大于应收\";\n }else if(parseFloat(v)>0 && parseFloat(v) > (max || 0) ){\n this.currentMode.errinfo=\"余额不足\";\n }\n }\n @action calcMemberBalance(){\n this.currentMode.balance = this.currentMode.member.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 const { settleStyleType , PayStyle} = enumController.getEnumOj();\n const {memberStoreCode , settlementCode } = settleStyleType;\n const param = {'settleStyleType':type==1?memberStoreCode:settlementCode,isIntegralExchange}\n const modes = await tApi({param}, 'chanjet.RE.NewPos.GetNewStoreSettleStyles', false, false);\n if(modes){\n runInAction(()=>{\n let paymodes = [];\n _each(modes.SettleStyles, (mode,index)=>{\n //产品需求确认会员储值卡结算方式前端展示统一调整为“储值卡\" tuzha by 2020-07-08\n\n if(mode.Code==PayStyle.hyczk)\n {\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 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 })\n })\n this.paymodes = paymodes;\n //modes.QuickSettleStyles\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 const { isNewRetailBCPos } = platform || {};\n m.StorageCardNo && (this.StorageCardNo = m.StorageCardNo);\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 @action setMeStorageCardId(v) {\n this.meStorageCardId = v;\n }\n\n @action setStorageCardNo(v) {\n this.StorageCardNo = v;\n }\n}\n"]}
1
+ {"version":3,"sources":["tplus-components-touch/components/settlement/settlementStore.js"],"names":["t","i18n","getFixedT","SettlementStore","paymode","dto","member","brefund","bquick","boriginReturn","newStyle","getCouponList","enumController","getEnumOj","PayStyle","Differentiate","couponApplyRule","CouponApplyRule","SHOWN_BY_CUSTOMER","coupon_code","promoVoucher","clearDjqs","reCalculationDjqs","boName","voucherId","ID","onlinePaymentAmount","OnlinePaymentAmount","totalAmountWithTax","Math","Minus","TotalTaxAmount","redBlueFlagEnum","meMemberId","Idmember","storeFactorId","Idstore","voucherDetailList","RetailDetails","forEach","detailDTO","uuid","item","Code","detailBoName","voucherDetailId","productId","Idinventory","uomId","Idunit","productSpecId","ProductSpecId","isManualFreeGift","IsPresent","isListPriceIncludingTax","TaxFlag","IsManualChangePrice","listPrice","TaxPrice","netAmountWithTax","TaxAmount","bookingQuantity","BookingQuantity","MemberPrice","Multiply","Quantity","taxRate","TaxRate","quantity","amountWithTax","RetailAmount","PromotionDetails","length","promoLinks","promotion","push","promoId","IdSalesPromotionDTO","promoRuleId","PromotionRuleId","method","timeout_skip","then","result","element","couponCode","name","tieredAmountResult","fromDate","dateMount","promoMethodEnum","discountPct","nominalAmount","id","condValue","promoDiscount","displayText","currentMode","djqs","djq","code","Message","info","COUPON","IsRepelWithPoints","thePaymodes","themode","paymentType","jfdx","error","SN","addDjq","calcDjqValue","getSettleGift","billID","checkCoupon","sn","platform","isNewRetailBCPos","request","Uid","uid","StoreCode","Inventories","d","detail","IdInventory","Inventory","IdUnit","FreeItem0","JSON","getCellValue","FreeItem1","FreeItem2","FreeItem3","FreeItem4","FreeItem5","FreeItem6","FreeItem7","FreeItem8","FreeItem9","InventoryClassCodes","InventoryClass","Amount","amount","Title","ReduceAmount","StartAmount","LastTS","UMemberID","checkIntegralExchangeReturn","resolve","reject","param","refVoucherId","resp","expireIntegral","ModalWraper","confirm","className","title","content","cancelable","onOk","onCancel","PayMode","params","localStore","get","cloudPrintArguments","printUtil","PrintUtil","event","type","isIntegralExchange","setPaymodes","updateEvent","context","amounthandler","datasource","storeinfo","data","amountHandler","dataSource","storeInfo","viewModel","global","DealSingleRowAmountSettingProcessorBlock","execute","DealAmountSettingProcessorBlock","Member","setAmount","clean","initByOriginReturn","setModes","paymodes","p","mode","addPay","changeValue","paymethodId","RetailPaymentDetails","IdsettleStyle","SettleStyle","hyczk","okText","okType","newmode","genNewMode","authCode","PaymentCode","steadCashIntegral","SteadCashIntegral","overchargesAmount","OverchargesAmount","RetailCouponDetails","CouponCode","CouponTitle","ReductionAmount","EnableAmount","RetailStorageDetails","balanceAmount","BalanceStorage","StoragePaymentAmount","Password","balance","calcReserved","key","currentFocus","index","m","splice","addPayDirectly","IntegralSteadCashParams","BalanceTaxAmount","value","Integral","loginInfo","v","errinfo","IdStore","storeID","storeCode","address","SearchParams","Key","IsSingleMember","parse","Data","setMeStorageCardId","MeStorageCardId","setStorageCardNo","StorageCardNo","receivable","max","message","CheckMemberStorageProcessorBlock","String","isNullOrEmpty","checkReceived","nextInput","document","querySelector","focus","doorsill","checked","expired","unCheck","append","afterSetCurrentMode","parseFloat","setExchangable","MaxAmount","maxamount","notwithm","counter","exchangeRate","calDirection","value2","value3","order","setMaxAmount","console","log","sum","q","Add","getViewItem","availableAmount","shouldSetValue","blur","isNaN","pay","pos","bTest","saveMember","save","err","StorageMutiSettleDetails","giveChange","xianjin","abs","StorageAmount","GiveChange","idSettleStyle","IdbankAccount","idBankAccount","DynamicPropertyKeys","DynamicPropertyValues","DataSource","Id","IPMSG","window","localStorage","isHorizontalPad","isHorizontalSunMi","Open","Sign","Name","Card","warn","doStoragePrint","msg","s","ret","success","StoragePrintProcessBlock","czkSum","IsOrigReturn","OrigAmount","Idcurrency","idCurrency","ExchangeRate","IdMember","PromotionId","PromoCouponAllocatedId","RetailTypeEnum","IdbusiType","ReturnSourceId","cut","RetailOms","cip","query","setDtoID","RetailCode","Flag","val","exp","Date","setTime","endOf","valueOf","cookie","toGMTString","cookies","split","cookieObj","cook1","getAllCookies","cook2","hasOwnProperty","password","User","pwdEncrypt","pwd","count","setCookie","Success","action","newPass","newPassConfirm","idstore","oldPassword","newPassword","successful","_this","getLoginInfo","_counter","onlineamount","settle","hotKey","a","o","received","q1","min","rawbalance","settleStyleType","memberStoreCode","settlementCode","modes","SettleStyles","isDefault","IsDefaultSettleStyle","isQuick","QuickSettleStyles","orderBy","IdSettleStyle","IdBankAccount","Currency","CalDirection","observable","MemberType","cardNo","CardCode","needPwd","IsNeedPwd","NeedModifyPassword","bonusPoints","BalanceIntegral","exchangable","meStorageCardId"],"mappings":"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","file":"settlementStore.js","sourcesContent":["import { observable, computed, action, autorun, runInAction } from 'mobx'\r\nimport {stores,i18n,localStore} from 'mutants-microfx';\r\nimport _find from 'lodash/find';\r\nimport _remove from 'lodash/remove';\r\nimport _each from 'lodash/each';\r\nimport _map from 'lodash/map';\r\nimport _join from 'lodash/join';\r\nimport _trim from 'lodash/trim';\r\nimport _filter from 'lodash/filter';\r\nimport _findIndex from 'lodash/findIndex';\r\nimport _findLastIndex from 'lodash/findLastIndex';\r\nimport _findKey from 'lodash/findKey';\r\nimport { PosInitData } from 'tplus-poslogin';\r\nimport { getFixedNumber } from './utils'\r\nimport {ccApi,tApi, User} from 'tplus-api';\r\nimport Message from '../message';\r\nimport { platform,enumController } from 'mutants-util';\r\nimport moment from \"moment\";\r\nimport { PrintUtil,ModalWraper } from 'tplus-components-touch'\r\n\r\nconst t = i18n.getFixedT(null, 'newretail');\r\n\r\nexport default class SettlementStore {\r\n paymode = null\r\n dto=null\r\n member=null\r\n brefund=false\r\n context\r\n bquick=false;\r\n amountHandler\r\n dataSource\r\n storeInfo\r\n updateEvent\r\n\ttype\r\n boriginReturn=false\r\n newStyle=true//type==2\r\n billID\r\n constructor(){\r\n this.paymode= new PayMode()\r\n let params = localStore && localStore.get('cloudPrintArguments');\r\n if (params) this.cloudPrintArguments = params;\r\n this.printUtil = new PrintUtil();\r\n this.newStyle=localStore && localStore.get('voucherDefaultPosMode')=='voucher';\r\n }\r\n\r\n initPaymodes(event,type,isIntegralExchange){\r\n this.isIntegralExchange = isIntegralExchange;\r\n this.paymode.setPaymodes(type,isIntegralExchange);\r\n this.updateEvent=event;\r\n }\r\n\r\n init(context,amounthandler,datasource,storeinfo,bquick,amount,type,data){\r\n this.newStyle=localStore && localStore.get('voucherDefaultPosMode')=='voucher';\r\n this.type=type;\r\n if(context){\r\n this.context=context;\r\n this.amountHandler=amounthandler;\r\n this.dataSource=datasource;\r\n this.storeInfo=storeinfo;\r\n this.dto=context.viewModel.data;\r\n runInAction(()=>{\r\n // 单品金额抹零\r\n if (global.DealSingleRowAmountSettingProcessorBlock) {\r\n global.DealSingleRowAmountSettingProcessorBlock.execute(this.dto);\r\n }\r\n // 成交金额抹零\r\n if (global.DealAmountSettingProcessorBlock) {\r\n global.DealAmountSettingProcessorBlock.execute(this.dto);\r\n }\r\n });\r\n // this.member=context.stores && context.stores.memberStore && context.stores.memberStore.member;\r\n this.member=this.dto.Member;//stores.selectMemberStore.selectMemberInfo;\r\n this.brefund=this.paymode.setAmount( this.dto.TotalTaxAmount ,this.dto.OnlinePaymentAmount );\r\n }else{\r\n this.brefund=this.paymode.setAmount( amount ,0 );\r\n this.dto=data;\r\n }\r\n this.paymode.clean();\r\n \r\n //this.dto.TotalTaxAmount<0;\r\n this.bquick=!!bquick;\r\n this.boriginReturn=JSON.getCellValue(this.dto, \"IsOriginalReturn\");\r\n if(this.boriginReturn){\r\n this.initByOriginReturn();\r\n }\r\n if(this.newStyle){\r\n this.setModes();\r\n }\r\n }\r\n\r\n setModes(){\r\n _each(this.paymode.paymodes,(p)=>{\r\n if(_findIndex(this.paymode.thePaymodes,(mode)=>{return p.paymentType==mode.paymentType})==-1){\r\n this.addPay(p.paymentType);\r\n }\r\n });\r\n if(!this.boriginReturn && this.paymode.thePaymodes.length>0){\r\n this.changeValue(this.paymode.thePaymodes[0].paymethodId,0,true);\r\n }\r\n }\r\n\r\n amountChanged(amount){\r\n if(this.type==1){\r\n this.brefund=this.paymode.setAmount( amount ,0 );\r\n }\r\n\r\n }\r\n\r\n @action queryPwd = (newPass, newPassConfirm) => {\r\n if (!newPass || !newPassConfirm) {\r\n return Message.warn('您还有未填写项');\r\n }\r\n if (newPass !== newPassConfirm) {\r\n return Message.warn('您两次输入的密码不一致');\r\n }\r\n let idstore = PosInitData('storeID');\r\n return ccApi({ \r\n Idstore: idstore,\r\n meMemberId: this.member.ID,\r\n oldPassword: null,\r\n newPassword: User.pwdEncrypt(newPassConfirm),\r\n dataSource:\"POS\"\r\n }, '/member/MeMemberWallet/setWalletPayPassword', false, false, { method: 'post', timeout_skip: true }).then((resp) => {\r\n if (resp.successful) {\r\n return true;\r\n }\r\n });\r\n }\r\n\r\n @action\r\n initByOriginReturn(){\r\n const { PayStyle } = enumController.getEnumOj();\r\n const { isNewRetailBCPos } = platform || {};\r\n _each(this.dto.RetailPaymentDetails,(detail)=>{\r\n let themode=_find(this.paymode.paymodes,{'idSettleStyle':detail.IdsettleStyle});\r\n if (detail.SettleStyle.Code === PayStyle.hyczk && !themode) {\r\n ModalWraper.info({\r\n title: '温馨提示',\r\n content: '没有储值结算方式,请在后台添加储值余额结算方式。',\r\n okText:'确定',\r\n okType:'primary'\r\n });\r\n }\r\n if(themode && themode.paymentType && themode.paymentType!=PayStyle.hyczk){\r\n let newmode={\r\n ...this.genNewMode(themode.paymentType,false,detail.Amount),\r\n authCode:detail.PaymentCode,\r\n steadCashIntegral:detail.SteadCashIntegral,\r\n overchargesAmount:detail.OverchargesAmount,\r\n boriginReturn:true\r\n };\r\n this.paymode.currentMode=newmode;\r\n if(themode.paymentType==PayStyle.djq){\r\n _each(this.dto.RetailCouponDetails,(djq)=>{\r\n if (isNewRetailBCPos) {\r\n const { displayText, promoRuleId, dateMount, promoMethodEnum, discountPct, promoId, id } = djq || {};\r\n this.addDjq(djq.CouponCode, djq.CouponTitle, djq.ReductionAmount, djq.EnableAmount, djq.LastTS, true, false, \r\n this.dto.Idmember,\r\n dateMount,\r\n displayText,\r\n promoMethodEnum,\r\n discountPct,\r\n promoId,\r\n promoRuleId,\r\n id,\r\n true);\r\n return;\r\n }\r\n this.addDjq(djq.CouponCode, djq.CouponTitle, djq.ReductionAmount, djq.EnableAmount, djq.LastTS, true, false,);\r\n })\r\n }\r\n this.paymode.thePaymodes.push(newmode)\r\n }\r\n })\r\n _each(this.dto.RetailStorageDetails,(detail)=>{\r\n let balanceAmount = detail.Member.BalanceStorage;\r\n balanceAmount = balanceAmount - detail.StoragePaymentAmount;\r\n let newmode={\r\n ...this.genNewMode(PayStyle.hyczk,false,detail.StoragePaymentAmount),\r\n member:new Member(detail.Member),\r\n authCode:detail.Password,\r\n balance:balanceAmount,\r\n boriginReturn:true\r\n };\r\n this.paymode.thePaymodes.push(newmode)\r\n })\r\n this.paymode.calcReserved();\r\n }\r\n\r\n clean(){\r\n this.bquick=false;\r\n this.paymode.clean();\r\n }\r\n\r\n @action quickSettle(key){\r\n this.addPay(key);\r\n }\r\n\r\n //outer call\r\n //(type===PayStyle.hyczk || type===PayStyle.jfczk || type===PayStyle.jfdx || type===PayStyle.djq)\r\n @action changeFocusAndAddPay(type){\r\n const { PayStyle } = enumController.getEnumOj();\r\n this.paymode.currentFocus=type;\r\n if(this.paymode.currentMode){\r\n if(type==PayStyle.jfdx){\r\n if(this.newStyle){\r\n let index=_findIndex(this.paymode.thePaymodes,(m)=>{return m.paymentType==PayStyle.jfdx});\r\n this.paymode.thePaymodes.splice(index,1,this.paymode.currentMode);\r\n this.paymode.calcReserved();\r\n }else{\r\n this.addPayDirectly(this.paymode.currentMode);\r\n }\r\n \r\n //抵现积分\r\n tApi({IntegralSteadCashParams:{\r\n Idmember:this.paymode.currentMode.member.id,\r\n TotalTaxAmount:this.paymode.amount,\r\n BalanceTaxAmount: this.paymode.currentMode.value,\r\n }}, 'AA.DR.newRetailMember.CalculdateIntegralSteadCash', false, false).then((result)=>{\r\n this.paymode.currentMode.steadCashIntegral=result.Integral;\r\n this.paymode.currentMode.overchargesAmount=result.Amount-this.paymode.currentMode.value;\r\n });\r\n }else{\r\n this.addPayDirectly(this.paymode.currentMode);\r\n }\r\n }else{\r\n this.addPay(type);\r\n }\r\n }\r\n\r\n // 设置密码后更新会员信息\r\n @action updateMemberInfo = async (_this) => {\r\n const { IdStore, StoreCode } = this.getLoginInfo();\r\n const resp = await tApi({ Idmember: this.member.ID, IdStore, StoreCode }, 'chanjet.AA.DR.INewRetailMember.GetUmemberDTO', false, false);\r\n _this.member = resp;\r\n _this.paymode.currentMode.member.setStorageCardNo(resp.StorageCardNo);\r\n return Promise.resolve(resp);\r\n }\r\n\r\n getLoginInfo() {\r\n const { loginInfo = {} } = localStore.get('user') || {};\r\n return loginInfo;\r\n }\r\n\r\n loadCzk(v){\r\n if(_trim(v)===\"\"){\r\n runInAction(()=>{\r\n this.paymode.currentMode.member = new Member( null );\r\n this.paymode.currentMode.errinfo=\"请输入储值卡\";\r\n });\r\n return;\r\n }\r\n const IdStore=this.storeInfo.storeID;\r\n const StoreCode=this.storeInfo.storeCode;//_find(this.storeInfo.storeInfos,(store)=>{return store.ID==IdStore;}).Code;\r\n const { isNewRetailBCPos } = platform || {};\r\n let address = ''\r\n if (isNewRetailBCPos) {\r\n address = 'chanjet.AA.DR.INewRetailMember.SearchMember'\r\n } else {\r\n address = 'AA.DR.newRetailMember.SearchMember'\r\n }\r\n return tApi({SearchParams:{Key:v,IsSingleMember:true,IdStore,StoreCode}}, address, false, false)\r\n .then((result)=>{\r\n let data=JSON.parse(result.Data);\r\n let m=data && data.length>0 && data[0];\r\n const { isNewRetailBCPos } = platform || {};\r\n if (isNewRetailBCPos) {\r\n this.paymode && this.paymode.currentMode.member.setMeStorageCardId(m.MeStorageCardId);\r\n this.paymode && this.paymode.currentMode.member.setStorageCardNo(m.StorageCardNo);\r\n }\r\n if(!m || !m.ID){\r\n runInAction(()=>{this.paymode.currentMode.errinfo=\"无效的会员卡号\";});\r\n }\r\n else{\r\n runInAction(()=>{\r\n this.paymode.currentMode.errinfo=\"\";\r\n this.paymode.currentMode.member = new Member( m )\r\n this.paymode.currentMode.value=getFixedNumber(this.brefund?this.paymode.receivable:Math.max(this.paymode.receivable,0));\r\n this.updateEvent();\r\n let message='';\r\n if (global.CheckMemberStorageProcessorBlock ) {\r\n message= CheckMemberStorageProcessorBlock.execute(data[0]);\r\n }\r\n if (!String.isNullOrEmpty(message)) {\r\n this.paymode.currentMode.errinfo=message;\r\n }\r\n else if(this.checkReceived(this.paymode.currentMode,\"balance\")){\r\n this.paymode.currentMode.errinfo=\"余额不足\";\r\n }else if(this.paymode.amount>0 && this.paymode.currentMode.value==0){\r\n this.paymode.currentMode.errinfo=\"实收金额必须录入\";\r\n } else {\r\n // 查询成功后将焦点移入下一个输入框\r\n const nextInput = document.querySelector('.czk .received .input');\r\n nextInput && nextInput.focus();\r\n }\r\n });\r\n }\r\n })\r\n }\r\n getCouponList = coupon_code => {\r\n const { PayStyle, Differentiate } = enumController.getEnumOj();\r\n const couponApplyRule = PosInitData('CouponApplyRule');\r\n const { CouponApplyRule } = enumController.getEnumOj();\r\n if((couponApplyRule == CouponApplyRule.SHOWN_BY_CUSTOMER && !!coupon_code) || couponApplyRule != CouponApplyRule.SHOWN_BY_CUSTOMER){\r\n let dto = this.dto;\r\n let promoVoucher = {};\r\n this.paymode.clearDjqs();\r\n this.paymode.reCalculationDjqs();\r\n // promoVoucher.bizDate = dto.VoucherDate;\r\n // promoVoucher.bizDate = new Date().getTime();\r\n promoVoucher.coupon_code = coupon_code || \"\";\r\n promoVoucher.boName = \"Retail\";\r\n promoVoucher.voucherId = dto.ID;\r\n let onlinePaymentAmount=0;\r\n if(dto.OnlinePaymentAmount)\r\n {\r\n onlinePaymentAmount=dto.OnlinePaymentAmount;\r\n }\r\n promoVoucher.totalAmountWithTax =Math.Minus(dto.TotalTaxAmount,onlinePaymentAmount);\r\n promoVoucher.redBlueFlagEnum = \"BLUE\";\r\n promoVoucher.meMemberId = dto.Idmember;\r\n promoVoucher.storeFactorId = dto.Idstore;\r\n promoVoucher.voucherDetailList = [];\r\n dto.RetailDetails.forEach(item => {\r\n let detailDTO = {};\r\n detailDTO.uuid = item.Code;\r\n detailDTO.detailBoName = \"RetailDetail\";\r\n detailDTO.voucherDetailId = item.ID;\r\n detailDTO.productId = item.Idinventory;\r\n detailDTO.uomId = item.Idunit;\r\n detailDTO.productSpecId=item.ProductSpecId;\r\n detailDTO.isManualFreeGift = item.IsPresent;\r\n detailDTO.isListPriceIncludingTax = item.TaxFlag || true;\r\n\r\n if(detailDTO.IsManualChangePrice)//如果是手工改价\r\n {\r\n detailDTO.listPrice = item.TaxPrice;\r\n detailDTO.netAmountWithTax = item.TaxAmount;\r\n }\r\n else\r\n {\r\n let bookingQuantity=0;\r\n if(item.BookingQuantity)\r\n {\r\n bookingQuantity=item.BookingQuantity;\r\n }\r\n detailDTO.listPrice = item.MemberPrice;\r\n detailDTO.netAmountWithTax = Math.Multiply(item.MemberPrice,Math.Minus(item.Quantity,bookingQuantity));//item.TaxAmount;\r\n } \r\n detailDTO.taxRate = item.TaxRate;\r\n detailDTO.quantity = item.Quantity;\r\n \r\n detailDTO.amountWithTax = item.RetailAmount;\r\n // 促销 start\r\n if(item.PromotionDetails && item.PromotionDetails.length != 0){\r\n let promoLinks = [];\r\n item.PromotionDetails.forEach((promotion)=>{\r\n promoLinks.push({\r\n promoId:promotion.IdSalesPromotionDTO,\r\n promoRuleId:promotion.PromotionRuleId\r\n })\r\n })\r\n if(promoLinks.length != 0) detailDTO.promoLinks = promoLinks;\r\n }\r\n // 促销 end\r\n promoVoucher.voucherDetailList.push(detailDTO);\r\n });\r\n \r\n return ccApi({\r\n ...promoVoucher\r\n }, 'promotion/PromoCalculate/findUsefulCouponPromoList', false, false,{method:'post',timeout_skip:true})\r\n .then((result)=>{\r\n if(result && result.length != 0 ){\r\n result.forEach((element)=>{\r\n const { couponCode, name, tieredAmountResult, fromDate , dateMount , promoMethodEnum , discountPct, nominalAmount,promoId,id} = element || {};\r\n const { condValue, promoDiscount,displayText,promoRuleId } = tieredAmountResult\r\n if (_find(this.paymode.currentMode.djqs, (djq) => { return djq.code == couponCode })) {\r\n Message.info(`${Differentiate.COUPON}已添加`);\r\n } else if (result.IsRepelWithPoints && _find(this.paymode.thePaymodes, (themode) => { return themode.paymentType == PayStyle.jfdx; })) {\r\n Message.error(`${Differentiate.COUPON}(${result.SN})不可与积分一起使用`);\r\n }\r\n else {\r\n this.addDjq(\r\n couponCode,\r\n name,\r\n promoMethodEnum == \"CASH_COUPON\"?nominalAmount:promoDiscount,\r\n condValue, \r\n null,\r\n false, \r\n !result.IsRepelWithPoints, \r\n dto.Idmember,\r\n dateMount,\r\n displayText,\r\n promoMethodEnum,\r\n discountPct,\r\n promoId,\r\n promoRuleId,\r\n id,\r\n true)\r\n }\r\n })\r\n if(promoVoucher.coupon_code){\r\n this.paymode.calcDjqValue(this.paymode.currentMode.djqs[0])\r\n }\r\n }else{\r\n if (promoVoucher.coupon_code) {\r\n Message.info(`${Differentiate.COUPON}号不存在!`);\r\n this.getCouponList();\r\n } else {\r\n Message.info(`没有找到可使用的${Differentiate.COUPON}!`)\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n getSettleGift = () => {\r\n return ccApi({ }, `/marketingtool/paygift/executeRightsForPos/${this.billID}`, false, false, { method: 'get', timeout_skip: true });\r\n }\r\n\r\n checkCoupon = async (sn) => {\r\n let { isNewRetailBCPos } = platform || {};\r\n if (isNewRetailBCPos) {\r\n return await this.getCouponList(sn);\r\n } else {\r\n const { PayStyle, Differentiate } = enumController.getEnumOj();\r\n return tApi({request:{\r\n Uid:this.paymode.currentMode.member.uid || '',\r\n SN:sn,\r\n StoreCode:this.dto.Idstore,\r\n Inventories:_map(_filter(this.dto.RetailDetails,(d)=>{return d.Quantity>0 && !d.IsPresent}),(detail)=>{return {\r\n IdInventory:detail.Inventory.ID,\r\n IdUnit:detail.Idunit,\r\n Code:detail.Inventory.Code,\r\n FreeItem0:JSON.getCellValue(detail,\"freeitem0\"),\r\n FreeItem1:JSON.getCellValue(detail,\"freeitem1\"),\r\n FreeItem2:JSON.getCellValue(detail,\"freeitem2\"),\r\n FreeItem3:JSON.getCellValue(detail,\"freeitem3\"),\r\n FreeItem4:JSON.getCellValue(detail,\"freeitem4\"),\r\n FreeItem5:JSON.getCellValue(detail,\"freeitem5\"),\r\n FreeItem6:JSON.getCellValue(detail,\"freeitem6\"),\r\n FreeItem7:JSON.getCellValue(detail,\"freeitem7\"),\r\n FreeItem8:JSON.getCellValue(detail,\"freeitem8\"),\r\n FreeItem9:JSON.getCellValue(detail,\"freeitem9\"),\r\n }}),\r\n // inventoryCodes:_join(_map(this.dto.RetailDetails,(detail)=>{return detail.Inventory.Code;}),','),\r\n InventoryClassCodes:_join(_map(_filter(this.dto.RetailDetails,(d)=>{return d.Quantity>0}),(detail)=>{return (detail.Inventory.InventoryClass||{Code:''}).Code;}),','),\r\n Amount:this.paymode.amount\r\n }}, 'chanjet.AA.DR.coupon.CheckCoupon', false, false)\r\n .then((result)=>{\r\n if(_find(this.paymode.currentMode.djqs,(djq)=>{return djq.code==result.SN})){\r\n Message.info(`${Differentiate.COUPON}已添加`);\r\n }else if(result.IsRepelWithPoints && _find(this.paymode.thePaymodes,(themode)=>{return themode.paymentType==PayStyle.jfdx;})){\r\n Message.error(`${Differentiate.COUPON}(${result.SN})不可与积分一起使用`);\r\n }\r\n else{\r\n this.addDjq(\r\n result.SN,\r\n result.Title,\r\n result.ReduceAmount,\r\n result.StartAmount,\r\n result.LastTS,\r\n false,\r\n !result.IsRepelWithPoints,\r\n result.UMemberID)\r\n }\r\n \r\n })\r\n }\r\n }\r\n @action addDjq(\r\n code,\r\n name,\r\n amount,\r\n doorsill,\r\n LastTS,\r\n checked,\r\n IsRepelWithPoints,\r\n UMemberID,\r\n expired,\r\n displayText,\r\n promoMethodEnum,\r\n discountPct,\r\n promoId,\r\n promoRuleId,\r\n id,\r\n unCheck\r\n ){\r\n let djq={\r\n code,\r\n name,\r\n amount,\r\n doorsill,//:\"无门槛\"\r\n LastTS,\r\n checked,\r\n IsRepelWithPoints,\r\n UMemberID,\r\n expired, //还剩多少过期\r\n displayText,\r\n promoMethodEnum,\r\n discountPct,\r\n promoId,\r\n promoRuleId,\r\n id\r\n };\r\n this.paymode.currentMode.djqs.push(\r\n djq\r\n );\r\n !unCheck && !this.boriginReturn && this.paymode.calcDjqValue(djq);\r\n }\r\n\r\n setCurrentMode(id,type,append){\r\n const { PayStyle } = enumController.getEnumOj();\r\n const mode=_find(this.paymode.thePaymodes,{paymethodId:id});\r\n if(mode){\r\n this.paymode.currentMode=mode;\r\n if(this.newStyle){\r\n this.afterSetCurrentMode(type);\r\n }\r\n }else{\r\n this.paymode.currentMode=this.genNewMode(type,append);\r\n this.afterSetCurrentMode(type);\r\n }\r\n }\r\n afterSetCurrentMode(type){\r\n const { PayStyle } = enumController.getEnumOj();\r\n if(type==PayStyle.djq){\r\n this.paymode.calcDjqValue();\r\n }else if(type==PayStyle.jfdx){\r\n //获取可兑换的金额\r\n if(this.newStyle){\r\n const themode=_find(this.paymode.thePaymodes,{paymentType:PayStyle.jfdx});\r\n if(themode && parseFloat(themode.value||0)!=0){\r\n this.paymode.currentMode.value=themode.value;\r\n }\r\n }\r\n \r\n tApi({IntegralSteadCashParams:{\r\n Idmember:this.paymode.currentMode.member.id,\r\n TotalTaxAmount:this.paymode.amount,\r\n BalanceTaxAmount:this.paymode.amount,\r\n }}, 'AA.DR.newRetailMember.CalculdateIntegralSteadCash', false, false).then((result)=>{\r\n this.paymode.currentMode.member.setExchangable(result.MaxAmount);\r\n this.updateEvent();\r\n if(this.checkReceived(this.paymode.currentMode,\"exchangable\")){\r\n runInAction(()=>{this.paymode.currentMode.errinfo='余额不足'})\r\n }\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n checkReceived(mode,name){\r\n return !this.brefund && parseFloat(mode.value)>parseFloat(mode.maxamount || mode.member[name]||0);\r\n }\r\n\r\n genNewMode(type,notwithm,v){\r\n const { PayStyle } = enumController.getEnumOj();\r\n let value=getFixedNumber(v || (this.brefund?this.paymode.receivable:Math.max(this.paymode.receivable,0)));\r\n let themode=_find(this.paymode.paymodes,{'paymentType':type});\r\n const mode = observable({\r\n paymethodId:this.paymode.counter,\r\n name:themode.name,\r\n exchangeRate:themode.exchangeRate,\r\n calDirection:themode.calDirection,\r\n value,\r\n value2:getFixedNumber(themode.calDirection==\"88\"?value / themode.exchangeRate:(value * themode.exchangeRate)),\r\n value3:value,\r\n order:this.paymode.thePaymodes.length+1,\r\n paymentType:type,\r\n djqs:[],\r\n member:new Member(!notwithm?this.member:null),\r\n authCode:'',\r\n steadCashIntegral:null,\r\n errinfo:'',\r\n maxamount:this.paymode.amount,\r\n });\r\n if(type==PayStyle.hyczk){\r\n if(!mode.member.id ){\r\n runInAction(()=>{mode.errinfo='未录入储值卡'})\r\n }else if(this.checkReceived(mode,\"balance\")){\r\n runInAction(()=>{mode.errinfo='余额不足'})\r\n }\r\n\r\n }\r\n if(type==PayStyle.hyczk || type==PayStyle.jfdx || type==PayStyle.djq){\r\n this.setMaxAmount(type,mode);\r\n }\r\n console.log(mode);\r\n return mode;\r\n }\r\n\r\n setMaxAmount(type,mode){\r\n const { PayStyle } = enumController.getEnumOj();\r\n let sum=0;\r\n if(type==PayStyle.hyczk){\r\n _each(_filter(this.paymode.thePaymodes,(m)=>{return m.paymentType==type;}),(q)=>{\r\n sum=Math.Add(sum,q.value);\r\n });\r\n }else if(type==PayStyle.djq || type==PayStyle.jfdx){\r\n _each(_filter(this.paymode.thePaymodes,(m)=>{return m.paymentType==PayStyle.djq || m.paymentType==PayStyle.jfdx;}),(q)=>{\r\n sum=Math.Add(sum,q.value);\r\n });\r\n }\r\n\r\n this.amountHandler && this.amountHandler(type).then(()=>{\r\n runInAction(()=>{\r\n mode.maxamount=getFixedNumber(Math.Minus(this.context.viewModel.getViewItem('Voucher').availableAmount,sum));\r\n this.updateEvent();\r\n })\r\n })\r\n }\r\n\r\n @action changeFocusOnly(type){\r\n this.paymode.currentFocus=type;\r\n // 获取焦点时带入剩余的值\r\n // let mode=_find(this.paymode.thePaymodes,{'paymentType':type});\r\n // if(mode && this.isIntegralExchange){\r\n // const shouldSetValue =getFixedNumber(parseFloat(this.paymode.receivable) + parseFloat(mode.value));\r\n // mode.value = shouldSetValue;\r\n // mode.value2 = getFixedNumber(mode.calDirection==\"88\"?shouldSetValue / mode.exchangeRate:(shouldSetValue * mode.exchangeRate));\r\n // mode.value3 = shouldSetValue;\r\n // this.paymode.calcReserved();\r\n // }\r\n }\r\n\r\n @action changeClickFocusOnly(type) {\r\n this.paymode.currentFocus=type;\r\n // 获取焦点时带入剩余的值\r\n let mode=_find(this.paymode.thePaymodes,{'paymentType':type});\r\n if(mode){\r\n const shouldSetValue =getFixedNumber(parseFloat(this.paymode.receivable) + parseFloat(mode.value));\r\n mode.value = shouldSetValue;\r\n mode.value2 = getFixedNumber(mode.calDirection==\"88\"?shouldSetValue / mode.exchangeRate:(shouldSetValue * mode.exchangeRate));\r\n mode.value3 = shouldSetValue;\r\n this.paymode.calcReserved();\r\n }\r\n }\r\n\r\n @action changeValue(index,value,blur){\r\n let mode=_find(this.paymode.thePaymodes,{'paymethodId':index});\r\n let v=blur?getFixedNumber(value) : (isNaN(value)&&value!='-'?0.00:value);\r\n if(mode){\r\n if(mode.exchangeRate != 1){\r\n if(getFixedNumber(mode.calDirection==\"88\"?mode.value3 / mode.exchangeRate:(mode.value3 * mode.exchangeRate)) !=v){\r\n mode.value=getFixedNumber(mode.calDirection==\"88\"?v*mode.exchangeRate : (v / mode.exchangeRate));\r\n }\r\n else{\r\n mode.value=mode.value3;\r\n }\r\n mode.value2=v;\r\n }else{\r\n mode.value=v;\r\n mode.value2=v;\r\n }\r\n\r\n this.paymode.calcReserved();\r\n }\r\n }\r\n\r\n @action addPayDirectly(pay){\r\n const { PayStyle } = enumController.getEnumOj();\r\n if(!_find(this.paymode.thePaymodes,{paymethodId:pay.paymethodId})){\r\n let pos=this.paymode.thePaymodes.length;\r\n if(pay.paymentType==PayStyle.hyczk){\r\n let index=_findLastIndex(this.paymode.thePaymodes,(m)=>{return m.paymethodId!=pay.paymethodId && m.paymentType==PayStyle.hyczk});\r\n pos=index==-1?pos:(index+1);\r\n }\r\n // this.paymode.thePaymodes.push(pay);\r\n this.paymode.thePaymodes.splice(pos,0,pay);\r\n }\r\n this.paymode.calcReserved();\r\n }\r\n\r\n @action addPay(type){\r\n const { PayStyle } = enumController.getEnumOj();\r\n let pos=this.paymode.thePaymodes.length;\r\n if(type==PayStyle.hyczk){\r\n let index=_findLastIndex(this.paymode.thePaymodes,(m)=>{return m.paymentType==PayStyle.hyczk});\r\n pos=index==-1?pos:(index+1);\r\n }\r\n // this.paymode.thePaymodes.push(this.genNewMode(type) );\r\n this.paymode.thePaymodes.splice(pos,0,this.genNewMode(type,this.newStyle && type==PayStyle.hyczk));\r\n this.paymode.calcReserved();\r\n }\r\n\r\n @action delPay(index){\r\n _remove(this.paymode.thePaymodes,(mode)=>{\r\n return mode.paymethodId===index;\r\n });\r\n this.paymode.currentFocus = -1;\r\n this.paymode.calcReserved();\r\n }\r\n\r\n async commit(bTest){\r\n console.log('settlementStore.commit开始,参数:'+bTest);\r\n if(bTest){\r\n return Promise.resolve(true);\r\n }\r\n try{\r\n this.type==1?await this.saveMember():await this.save();\r\n return Promise.resolve(true);\r\n }catch(err){\r\n console.error('settlementStore.commit失败,错误信息:'+err);\r\n return Promise.resolve(err);\r\n }\r\n console.error('settlementStore.commit失败,错误信息:'+err);\r\n }\r\n\r\n saveMember(){\r\n const { PayStyle } = enumController.getEnumOj();\r\n runInAction(()=>{\r\n this.dto.StorageMutiSettleDetails=[];\r\n const thePaymodes = this.newStyle ?_filter(this.paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):this.paymode.thePaymodes;\r\n _each(thePaymodes,(mode)=>{\r\n const themode=_find(this.paymode.paymodes,{'paymentType':mode.paymentType});\r\n\r\n let value=parseFloat(mode.value);\r\n let giveChange=null;\r\n if(mode.paymentType==PayStyle.xianjin && this.paymode.receivable<0 && value>Math.abs(this.paymode.receivable)){\r\n value=Math.Add(value,this.paymode.receivable);\r\n giveChange=Math.abs(this.paymode.receivable);\r\n }\r\n this.dto.StorageMutiSettleDetails.push({\r\n Code:mode.paymethodId,\r\n StorageAmount:value,\r\n GiveChange:giveChange,\r\n IdsettleStyle:themode.idSettleStyle,\r\n IdbankAccount:themode.idBankAccount,\r\n PaymentCode:mode.authCode,\r\n DynamicPropertyKeys:[],\r\n DynamicPropertyValues:[],\r\n DataSource:{Id:this.dataSource},\r\n })\r\n });\r\n\r\n });\r\n // cc结算调用\r\n let IPMSG = {};\r\n if (!!window.localStorage.IPMSG) {\r\n IPMSG = JSON.parse(window.localStorage.IPMSG);\r\n }\r\n return tApi({dto:this.dto}, 'chanjet.ME.INewRetailMemberStorage.Save', false, false).then((resp)=>{\r\n const { isHorizontalPad ,isHorizontalSunMi } = platform || {};\r\n if (isHorizontalPad === true) { // pad打印\r\n //执行移动端云打印\r\n if (this.cloudPrintArguments) {\r\n let { Open, Key, Sign, Name, Card } = this.cloudPrintArguments || {};\r\n if (!Open) {\r\n Message.warn(t('云打印未启用,请设置。'))\r\n return;\r\n }\r\n this.printUtil.doStoragePrint({ Key, Sign, Name, Card }, resp.ID, s => {\r\n const { msg, ret } = s;\r\n if (ret === 0) {\r\n Message.success(t('打印储值小票成功。'))\r\n }else if(ret === -1){\r\n Message.error(t(msg))\r\n } else {\r\n Message.error(t('打印储值小票失败。'))\r\n }\r\n })\r\n } else {\r\n Message.warn(t('云打印未启用,请设置。'))\r\n }\r\n return;\r\n } else if (isHorizontalSunMi === true) {\r\n this.printUtil.doStoragePrint({}, resp.ID, s => {\r\n const { msg, ret } = s;\r\n if (ret === 0) {\r\n Message.success(t('打印储值小票成功。'))\r\n } else if (ret === -1) {\r\n Message.error(t(msg))\r\n } else {\r\n Message.error(t('打印储值小票失败。'))\r\n }\r\n })\r\n return;\r\n }else{\r\n if (global.StoragePrintProcessBlock) {\r\n let { isNewRetailBCPos } = platform || {};\r\n if (isNewRetailBCPos) {\r\n global.StoragePrintProcessBlock.execute(resp);\r\n } else {\r\n global.StoragePrintProcessBlock.execute(resp.ID);\r\n\r\n }\r\n return;\r\n }else{\r\n Message.warn(t('打印小票只能在客户端中执行'))\r\n return;\r\n } \r\n } \r\n });\r\n }\r\n\r\n async save(){\r\n const { PayStyle } = enumController.getEnumOj();\r\n runInAction(()=>{\r\n this.dto.RetailPaymentDetails=[];\r\n this.dto.RetailStorageDetails=[];\r\n this.dto.RetailCouponDetails=[];\r\n let czkSum=0;\r\n let Idmember=this.dto.Idmember;\r\n const thePaymodes = this.newStyle ?_filter(this.paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):this.paymode.thePaymodes;\r\n _each(thePaymodes,(mode)=>{\r\n const themode=_find(this.paymode.paymodes,{'paymentType':mode.paymentType});\r\n if(mode.paymentType==PayStyle.hyczk){\r\n if(!Idmember){\r\n Idmember=mode.member.id;\r\n }\r\n czkSum=Math.Add(czkSum,mode.value);\r\n \r\n this.dto.RetailStorageDetails.push({\r\n Code:mode.paymethodId,\r\n StoragePaymentAmount:mode.value,\r\n IsOrigReturn:false,\r\n BalanceStorage:mode.balance,\r\n Idmember:mode.member.id,\r\n DynamicPropertyKeys:[],\r\n DynamicPropertyValues:[],\r\n DataSource:{Id:this.dataSource},\r\n Password:mode.authCode,\r\n })\r\n }else{\r\n let value=parseFloat(mode.value);\r\n let giveChange=null;\r\n if(mode.paymentType==PayStyle.xianjin && this.paymode.receivable<0 && value>Math.abs(this.paymode.receivable)){\r\n value=Math.Add(value,this.paymode.receivable);\r\n giveChange=Math.abs(this.paymode.receivable);\r\n }\r\n this.dto.RetailPaymentDetails.push({\r\n Code:mode.paymethodId,\r\n OrigAmount:mode.exchangeRate!=1?mode.value2:value,\r\n Amount:value,\r\n GiveChange:giveChange,\r\n IdsettleStyle:themode.idSettleStyle,\r\n IdbankAccount:themode.idBankAccount,\r\n Idcurrency:themode.idCurrency,\r\n ExchangeRate:themode.exchangeRate,\r\n PaymentCode:mode.authCode,\r\n SteadCashIntegral:mode.steadCashIntegral,\r\n OverchargesAmount:mode.overchargesAmount,\r\n DynamicPropertyKeys:[],\r\n DynamicPropertyValues:[],\r\n DataSource:{Id:this.dataSource},\r\n })\r\n if(mode.paymentType==PayStyle.djq){\r\n _each(mode.djqs,(djq)=>{\r\n if(djq.checked){\r\n this.dto.RetailCouponDetails.push({\r\n CouponCode:djq.code,\r\n ReductionAmount:djq.amount,\r\n EnableAmount:djq.doorsill,\r\n CouponTitle:djq.name,\r\n IdMember:djq.UMemberID?mode.member.id:null,\r\n LastTS:djq.LastTS,\r\n PromotionId:djq.promoId,\r\n PromotionRuleId:djq.promoRuleId,\r\n PromoCouponAllocatedId:djq.id,\r\n DataSource:{Id:this.dataSource},\r\n })\r\n }\r\n })\r\n }\r\n }\r\n });\r\n let { isNewRetailBCPos } = platform || {};\r\n if(this.dto.RetailStorageDetails.length>0){\r\n const themode=_find(this.paymode.paymodes,{'paymentType':PayStyle.hyczk});\r\n if (isNewRetailBCPos) {\r\n this.dto.RetailStorageDetails && this.dto.RetailStorageDetails.forEach((value) => {\r\n value.MeStorageCardId = this.member.MeStorageCardId;\r\n })\r\n this.dto.RetailPaymentDetails.push({\r\n Code:this.paymode.counter,\r\n OrigAmount:czkSum,\r\n Amount:czkSum,\r\n IdsettleStyle:themode.idSettleStyle,\r\n IdbankAccount:themode.idBankAccount,\r\n DynamicPropertyKeys:[],\r\n DynamicPropertyValues:[],\r\n DataSource:{Id:this.dataSource},\r\n RetailStorageDetails: this.dto.RetailStorageDetails,\r\n })\r\n } else {\r\n this.dto.RetailPaymentDetails.push({\r\n Code:this.paymode.counter,\r\n OrigAmount:czkSum,\r\n Amount:czkSum,\r\n IdsettleStyle:themode.idSettleStyle,\r\n IdbankAccount:themode.idBankAccount,\r\n DynamicPropertyKeys:[],\r\n DynamicPropertyValues:[],\r\n DataSource:{Id:this.dataSource},\r\n })\r\n }\r\n this.dto.Idmember=Idmember;\r\n }\r\n });\r\n let { isNewRetailBCPos } = platform || {};\r\n console.log(`bc_pos环境:${isNewRetailBCPos},结算数据:`, this.dto);\r\n if (isNewRetailBCPos) {\r\n // cc结算调用\r\n let IPMSG = {};\r\n if (!!window.localStorage.IPMSG) {\r\n IPMSG = JSON.parse(window.localStorage.IPMSG);\r\n }\r\n const RetailTypeEnum = this.dto.IdbusiType == 36?\"INTEGRAL_EXCHANGE\":\"NORMAL\";\r\n\r\n if(this.dto.IdbusiType == 37 && await this.checkIntegralExchangeReturn(this.dto.RetailDetails[0].ReturnSourceId) || this.dto.IdbusiType != 37){\r\n return ccApi({ dto: {...this.dto.cut(),RetailOms:{ RetailTypeEnum }},cip:IPMSG.query || \"\"}, '/retail/RetailPos/settle', false, false, { method: 'post', timeout_skip: true }).then((resp) => {\r\n this.setDtoID(resp.ID);\r\n this.billID = resp.ID;\r\n });\r\n }\r\n } else {\r\n // tc结算调用\r\n return tApi({ dto:this.dto.cut()}, 'chanjet.RE.newRetail.Settle', false, false, { timeout_skip: true }).then((resp) => {\r\n this.setDtoID(resp.ID);\r\n this.billID = resp.ID;\r\n })\r\n }\r\n }\r\n\r\n @action setDtoID(id){\r\n this.context.viewModel.data.ID=id;\r\n }\r\n\r\n checkIntegralExchangeReturn = (id) => {\r\n return new Promise((resolve, reject) => {\r\n tApi({param: {refVoucherId:id}}, 'chanjet.RE.NewPos.GetNewIntegralExchange', false, false,{timeout_skip:true}).then((resp) => {\r\n if( resp && resp.expireIntegral>0){\r\n ModalWraper.confirm({\r\n className: 'tplus-confirm-modal',\r\n title: \"温馨提示\",\r\n content:`存在已经过期的积分${resp.expireIntegral}退货后积分不会返还。是否继续退货?`,\r\n cancelable: false,\r\n onOk() {\r\n resolve(true);\r\n },\r\n onCancel() {\r\n reject(false);\r\n }\r\n })\r\n }else{\r\n resolve(true);\r\n }\r\n })\r\n })\r\n }\r\n\r\n async querySettleResult(){\r\n try{\r\n return Promise.resolve(await tApi({RetailCode: this.dto.Code}, 'chanjet.RE.newRetail.QuerySettleResult', false, false,{timeout_skip:true}));\r\n }catch(e){\r\n return Promise.resolve({Flag:\"1\"});\r\n }\r\n }\r\n\r\n setCookie(key, val) {\r\n var exp = new Date();\r\n exp.setTime(moment().endOf('day').valueOf());\r\n document.cookie = key + '=' + val + ';expires=' + exp.toGMTString();\r\n }\r\n\r\n getAllCookies() {\r\n var cookies = document.cookie.split(/;\\s/g);\r\n var cookieObj = {};\r\n cookies.forEach(function (item) {\r\n var key = item.split('=')[0];\r\n cookieObj[key] = item.split('=')[1];\r\n });\r\n return cookieObj;\r\n }\r\n\r\n async validePwd(value){\r\n let { isNewRetailBCPos } = platform || {};\r\n try{\r\n if (isNewRetailBCPos) {\r\n let cook1 = this.getAllCookies()['errorPwd'];\r\n let cook2 = cook1 && JSON.parse(cook1);\r\n let message = '密码输入错误';\r\n if (cook2) {\r\n if (cook2.hasOwnProperty(this.member.MeStorageCardId + \"\")) {\r\n if (cook2[this.member.MeStorageCardId] > 3) {\r\n message = '今日密码错误已达上限,不可使用储值消费,请明日再试,如忘记请重置密码或修改密码。';\r\n return Promise.resolve(message);\r\n }\r\n }\r\n }\r\n const result = await ccApi({password: User.pwdEncrypt(value.pwd)}, `/member/MeMemberWallet/checkPaymentPassword/${value.id}`, false, false);\r\n if (!result.data) {\r\n if (cook2) {\r\n if (cook2.hasOwnProperty(this.member.MeStorageCardId + \"\")) {\r\n let count = cook2[this.member.MeStorageCardId];\r\n cook2[this.member.MeStorageCardId] = count + 1;\r\n } else {\r\n cook2[this.member.MeStorageCardId] = 1; \r\n }\r\n } else {\r\n cook2 = {};\r\n cook2[this.member.MeStorageCardId] = 1; \r\n }\r\n this.setCookie('errorPwd', '', -1);\r\n this.setCookie('errorPwd', JSON.stringify(cook2));\r\n }\r\n return Promise.resolve(result.data?\"\":message);\r\n } else {\r\n const result = await tApi({\"CheckoutParams\": {\r\n \"Idmember\": value.id,\r\n \"Password\":value.pwd\r\n }}, 'AA.DR.newRetailMember.CheckoutMemberPassword', false, false);\r\n return Promise.resolve(result.Success?\"\":result.Message);\r\n }\r\n }catch(e){\r\n return \"failed\";\r\n }\r\n\r\n }\r\n}\r\n\r\nexport class PayMode{\r\n _counter=0\r\n amount=0 //应收\r\n onlineamount=0\r\n maxamount=0;\r\n @observable currentFocus=\"\"\r\n @observable received=0;\r\n @observable receivable=0;\r\n @observable paymodes =[]\r\n @observable thePaymodes=[]\r\n currentMode=null;\r\n updateEvent\r\n settle={\r\n name:\"复合结算\",\r\n hotKey:\"Ctrl+M\",\r\n }\r\n constructor (){\r\n // this.amount=getFixedNumber(amount);\r\n // this.calcReserved();\r\n }\r\n\r\n @action clean(){\r\n this.thePaymodes=[];\r\n this.calcReserved();\r\n }\r\n\r\n @action clear(){\r\n this.thePaymodes=[];\r\n this.calcReserved();\r\n this.paymodes = [];\r\n }\r\n\r\n setAmount(a,o){\r\n this.amount=getFixedNumber((a || 0)-(o || 0));\r\n this.onlineamount=getFixedNumber(o || 0);\r\n this.calcReserved();\r\n return this.amount<0;\r\n }\r\n\r\n @action calcReserved(){\r\n var sum=0;\r\n _each(this.thePaymodes,(mode)=>{\r\n sum=Math.Add(sum,(mode.value==\"\"?0:mode.value));\r\n });\r\n this.received = getFixedNumber(sum);\r\n this.receivable = getFixedNumber(this.amount - sum);\r\n }\r\n\r\n @action calcDjqValue(q1){\r\n let { isNewRetailBCPos } = platform || {};\r\n const { Differentiate } = enumController.getEnumOj();\r\n if(q1){\r\n if(!this.currentMode.boriginReturn && parseFloat(this.currentMode.maxamount)<=0){\r\n Message.error(`本单没有${Differentiate.COUPON}可用金额,该券不可使用。`);\r\n return ;\r\n }\r\n let q=_find(this.currentMode.djqs,(djq)=>{return djq.code==q1.code});\r\n if(q && !q.checked && parseFloat(this.amount)<parseFloat(q.doorsill)){\r\n Message.error(\"本单金额低于使用门槛,该券不可使用。\");\r\n return ;\r\n }\r\n //判断是否是选择优惠券 //CC优惠券只能使用一个\r\n if (q1 && !q1.checked && isNewRetailBCPos) {\r\n // 检查是否有已经选定优惠券 并且去除选定的优惠券\r\n this.currentMode.djqs.forEach((djq, index) => {\r\n if (djq.checked) this.currentMode.djqs[index].checked = false;\r\n })\r\n }\r\n q && (q.checked = !q.checked);\r\n }\r\n var sum=0;\r\n _each(_filter(this.currentMode.djqs,djq=>djq.checked),(q)=>{\r\n sum=Math.Add(sum,q.amount);\r\n });\r\n this.currentMode.value = getFixedNumber(Math.min(this.receivable,sum,this.currentMode.maxamount));\r\n this.currentMode.receivable = getFixedNumber(this.receivable -this.currentMode.value);\r\n this.currentMode.overchargesAmount=getFixedNumber(sum-this.currentMode.value);\r\n //this.receivable = getFixedNumber(this.receivable - sum);\r\n }\r\n\r\n @action reCalculationDjqs() {\r\n var sum=0;\r\n _each(_filter(this.currentMode.djqs,djq=>djq.checked),(q)=>{\r\n sum=Math.Add(sum,q.amount);\r\n });\r\n this.currentMode.value = getFixedNumber(Math.min(this.receivable,sum,this.currentMode.maxamount));\r\n this.currentMode.receivable = getFixedNumber(this.receivable -this.currentMode.value);\r\n this.currentMode.overchargesAmount=getFixedNumber(sum-this.currentMode.value);\r\n this.currentMode.maxamount = this.currentMode.receivable || this.currentMode.receivable;\r\n }\r\n\r\n @action clearDjqs() {\r\n this.currentMode.djqs = [];\r\n }\r\n\r\n @action setCurrentModeValue(v,max){\r\n this.currentMode.value=parseFloat(v) || 0;\r\n this.currentMode.errinfo='';\r\n if(this.amount>0 && (v==='' || v==='0.00')){\r\n this.currentMode.errinfo=\"实收金额必须录入\";\r\n }else if(Math.abs(parseFloat(v))>Math.abs(this.amount)){\r\n this.currentMode.errinfo=\"实收不应大于应收\";\r\n }else if(parseFloat(v)>0 && parseFloat(v) > (max || 0) ){\r\n this.currentMode.errinfo=\"余额不足\";\r\n }\r\n }\r\n @action calcMemberBalance(){\r\n this.currentMode.balance = this.currentMode.member.rawbalance - this.currentMode.value;\r\n }\r\n\r\n get charge(){\r\n return Math.abs(this.receivable);\r\n }\r\n\r\n get counter(){\r\n return ++this._counter;\r\n }\r\n\r\n async setPaymodes(type,isIntegralExchange){\r\n const { settleStyleType , PayStyle} = enumController.getEnumOj();\r\n const {memberStoreCode , settlementCode } = settleStyleType;\r\n const param = {'settleStyleType':type==1?memberStoreCode:settlementCode,isIntegralExchange}\r\n const modes = await tApi({param}, 'chanjet.RE.NewPos.GetNewStoreSettleStyles', false, false);\r\n if(modes){\r\n runInAction(()=>{\r\n let paymodes = [];\r\n _each(modes.SettleStyles, (mode,index)=>{\r\n //产品需求确认会员储值卡结算方式前端展示统一调整为“储值卡\" tuzha by 2020-07-08\r\n\r\n if(mode.Code==PayStyle.hyczk)\r\n {\r\n mode.Name='储值余额';\r\n }\r\n paymodes.push({\r\n name:mode.Name,\r\n isDefault:mode.IsDefaultSettleStyle,\r\n isQuick:_findIndex(modes.QuickSettleStyles, {'Code':mode.Code})>=0,\r\n orderBy:1,\r\n paymentType:mode.Code,\r\n idSettleStyle:mode.IdSettleStyle,\r\n idBankAccount:mode.IdBankAccount,\r\n exchangeRate:mode.Currency?mode.Currency.ExchangeRate:1,\r\n idCurrency:mode.Currency?mode.Currency.ID:-1,\r\n calDirection:mode.Currency?mode.Currency.CalDirection.Id:\"88\",\r\n })\r\n })\r\n this.paymodes = paymodes;\r\n //modes.QuickSettleStyles\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport class Member{\r\n id;\r\n uid;\r\n @observable cardNo;\r\n type;\r\n @observable balance;\r\n rawbalance;\r\n needPwd;\r\n bonusPoints;\r\n @observable exchangable;\r\n @observable meStorageCardId;\r\n @observable StorageCardNo;\r\n constructor(m){\r\n if(m){\r\n this.id=m.ID;\r\n this.uid=m.Uid;\r\n this.type=m.MemberType?m.MemberType.Name:\"普通\";\r\n this.rawbalance=m.BalanceStorage;\r\n let index=_findIndex(m.DynamicPropertyKeys,(key)=>{return key=='canusedbalancestorage';});\r\n const { isNewRetailBCPos } = platform || {};\r\n m.StorageCardNo && (this.StorageCardNo = m.StorageCardNo);\r\n runInAction(()=>{\r\n this.cardNo=m.CardCode;\r\n if(index>=0){\r\n this.balance=parseFloat(m.DynamicPropertyValues[index]);\r\n }else{\r\n this.balance=this.rawbalance;\r\n }\r\n });\r\n this.needPwd=m.MemberType?m.MemberType.IsNeedPwd:false;\r\n this.NeedModifyPassword=m.NeedModifyPassword;\r\n this.bonusPoints=m.BalanceIntegral;\r\n }\r\n }\r\n @action setExchangable(v){\r\n this.exchangable=v;\r\n }\r\n @action setCardNo(v){\r\n this.cardNo=v;\r\n this.id=null;\r\n }\r\n @action setMeStorageCardId(v) {\r\n this.meStorageCardId = v;\r\n }\r\n\r\n @action setStorageCardNo(v) {\r\n this.StorageCardNo = v;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["tplus-components-touch/components/settlement/utils.js"],"names":["getFixedNumber","value","name","precision","isNaN","getRoundValue","decimal","pow","Math","returnValue","round","abs","toFixed","preventDefault","nativeEvent","stopPropagation","cancelBubble","openLoadingModal","maskClosable","closable","width","className","content","openQueryingModal","showSuccessModal","amount","received","charge","fn","isXianjin","message","settleGift","store","cb","isDelayModal","modal","onClose","setTimeout","destroy","openAwaitModal","tip","manually","tips"],"mappings":"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","file":"utils.js","sourcesContent":["import React from 'react'\nimport _bind from 'lodash/bind'\nimport _get from 'lodash/get'\nimport Ticon from '../ticon'\nimport asyncModal from './asyncModal'\nimport { Button, Spin, Popover } from 'antd';\nimport { PosInitData } from 'tplus-poslogin';\n\nexport const getFixedNumber = _bind(function (value, name) {\n name = name || 'money'\n const precision = _get(this, `${name}.value`)\n value = isNaN(value) ? 0 : value\n // 参数错误的时候, 返回原值\n if (isNaN(precision)) {\n return value\n }\n return getRoundValue(value, precision)\n}, {\"money\": { \"value\": 2, \"caption\": \"金额小数位\" },})\n\nexport const getRoundValue = (value, decimal) => {\n if(!decimal) return value\n const pow = Math.pow(10, decimal);\n let returnValue = Math.round(Math.abs(value) * pow) / pow;\n if (value < 0)\n returnValue = -returnValue;\n return returnValue.toFixed(decimal);\n}\n\nexport const preventDefault = function (nativeEvent) {\n if (!nativeEvent) {\n return\n }\n if (nativeEvent.preventDefault) {\n nativeEvent.preventDefault()\n } else if (typeof nativeEvent.returnValue !== 'unknown') {\n nativeEvent.returnValue = false\n }\n}\n\nexport const stopPropagation = function (nativeEvent) {\n if (!nativeEvent) {\n return\n }\n if (nativeEvent.stopPropagation) {\n nativeEvent.stopPropagation()\n } else if (typeof nativeEvent.cancelBubble !== 'unknown') {\n // The ChangeEventPlugin registers a \"propertychange\" event for\n // IE. This event does not support bubbling or cancelling, and\n // any references to cancelBubble throw \"Member not found\". A\n // typeof check of \"unknown\" circumvents this issue (and is also\n // IE specific).\n nativeEvent.cancelBubble = true\n }\n}\n\nexport const openLoadingModal = function () {\n\n return asyncModal({\n maskClosable: false,\n closable: false,\n width: 'auto',\n className: 'loading-modal',\n content: <div className='billingSettling'>\n <Spin size=\"large\"/>\n <div>结算中...</div>\n </div>\n })\n}\n\nexport const openQueryingModal = function () {\n\n return asyncModal({\n maskClosable: false,\n closable: false,\n width: 'auto',\n className: 'loading-modal',\n content: <div className='billingSettling'>\n <Spin size=\"large\"/>\n <div>正在查询中,请稍候~</div>\n </div>\n })\n}\n\n\nexport const showSuccessModal = function (amount, received, charge, fn, isXianjin,message,settleGift, store, cb) {\n let isDelayModal;\n if (!isXianjin) {\n isDelayModal = false\n } else {\n // GiveChangeSupportManualClose 找零界面手动关闭\n isDelayModal = PosInitData('GiveChangeSupportManualClose');\n }\n\n const modal = asyncModal({\n width:'400px',\n closable:false,\n maskClosable:true,\n onClose: () => { typeof fn == 'function' && fn() },\n content: <div className=\"paySuccess\">\n <div className={`${isDelayModal ? 'icon1' : ''} icon ${settleGift ? 'settleIcon' : ''}`}><Ticon type=\"zhifuchenggong\" /></div>\n <div className={`${isDelayModal ? 'text1' : ''} text ${settleGift ? 'settleText' : ''}`}>{message}</div>\n {settleGift ? <div className='primary-color settleGift'>此订单满足支付返券活动,优惠券会自动发放到用户账户</div> : null}\n <div className={`${isDelayModal ? 'tipStyle1' : ''} tipStyle`}><span className=\"fl\">应收金额</span><span className=\"fr\">{amount}</span></div>\n <div className={`${isDelayModal ? 'tipStyle2' : ''} tipStyle`}><span className=\"fl\">实收金额</span><span className=\"fr\">{received}</span></div>\n <div className={`${isDelayModal ? 'tipStyle3' : ''} tipStyle`}><span className=\"fl\">找零</span><span className=\"fr\">{getFixedNumber(charge)}</span></div>\n {\n isDelayModal ?\n <div className=\"tipStyle\">\n <Button onClick={() => {\n setTimeout(() => { modal.destroy(); cb && cb(); }, 0)\n }} className=\"paymentSuccessBtn\" type=\"primary\">确定</Button>\n </div>\n :\n null\n }\n </div>\n })\n if (!isDelayModal) {\n setTimeout(() => { modal.destroy(); cb && cb(); }, 1500)\n }\n return modal;\n}\n\nexport const openAwaitModal = function (tip, manually) {\n let tips = tip ? tip : '取会员价中'\n\n return asyncModal({\n className: 'billing-onsettle-ModalLight loading-modal',\n maskClosable: false,\n closable: false,\n width: 'auto',\n content: <div className='billing-onsettle-ModalLight-content'>\n\n <Spin size=\"large\"/>\n <div className='billing-onsettle-ModalLight-text'>{`${tips}...`}</div>\n </div>\n }, manually)\n}\n"]}
1
+ {"version":3,"sources":["tplus-components-touch/components/settlement/utils.js"],"names":["getFixedNumber","value","name","precision","isNaN","getRoundValue","decimal","pow","Math","returnValue","round","abs","toFixed","preventDefault","nativeEvent","stopPropagation","cancelBubble","openLoadingModal","maskClosable","closable","width","className","content","openQueryingModal","showSuccessModal","amount","received","charge","fn","isXianjin","message","settleGift","store","cb","isDelayModal","modal","onClose","setTimeout","destroy","openAwaitModal","tip","manually","tips"],"mappings":"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","file":"utils.js","sourcesContent":["import React from 'react'\r\nimport _bind from 'lodash/bind'\r\nimport _get from 'lodash/get'\r\nimport Ticon from '../ticon'\r\nimport asyncModal from './asyncModal'\r\nimport { Button, Spin, Popover } from 'antd';\r\nimport { PosInitData } from 'tplus-poslogin';\r\n\r\nexport const getFixedNumber = _bind(function (value, name) {\r\n name = name || 'money'\r\n const precision = _get(this, `${name}.value`)\r\n value = isNaN(value) ? 0 : value\r\n // 参数错误的时候, 返回原值\r\n if (isNaN(precision)) {\r\n return value\r\n }\r\n return getRoundValue(value, precision)\r\n}, {\"money\": { \"value\": 2, \"caption\": \"金额小数位\" },})\r\n\r\nexport const getRoundValue = (value, decimal) => {\r\n if(!decimal) return value\r\n const pow = Math.pow(10, decimal);\r\n let returnValue = Math.round(Math.abs(value) * pow) / pow;\r\n if (value < 0)\r\n returnValue = -returnValue;\r\n return returnValue.toFixed(decimal);\r\n}\r\n\r\nexport const preventDefault = function (nativeEvent) {\r\n if (!nativeEvent) {\r\n return\r\n }\r\n if (nativeEvent.preventDefault) {\r\n nativeEvent.preventDefault()\r\n } else if (typeof nativeEvent.returnValue !== 'unknown') {\r\n nativeEvent.returnValue = false\r\n }\r\n}\r\n\r\nexport const stopPropagation = function (nativeEvent) {\r\n if (!nativeEvent) {\r\n return\r\n }\r\n if (nativeEvent.stopPropagation) {\r\n nativeEvent.stopPropagation()\r\n } else if (typeof nativeEvent.cancelBubble !== 'unknown') {\r\n // The ChangeEventPlugin registers a \"propertychange\" event for\r\n // IE. This event does not support bubbling or cancelling, and\r\n // any references to cancelBubble throw \"Member not found\". A\r\n // typeof check of \"unknown\" circumvents this issue (and is also\r\n // IE specific).\r\n nativeEvent.cancelBubble = true\r\n }\r\n}\r\n\r\nexport const openLoadingModal = function () {\r\n\r\n return asyncModal({\r\n maskClosable: false,\r\n closable: false,\r\n width: 'auto',\r\n className: 'loading-modal',\r\n content: <div className='billingSettling'>\r\n <Spin size=\"large\"/>\r\n <div>结算中...</div>\r\n </div>\r\n })\r\n}\r\n\r\nexport const openQueryingModal = function () {\r\n\r\n return asyncModal({\r\n maskClosable: false,\r\n closable: false,\r\n width: 'auto',\r\n className: 'loading-modal',\r\n content: <div className='billingSettling'>\r\n <Spin size=\"large\"/>\r\n <div>正在查询中,请稍候~</div>\r\n </div>\r\n })\r\n}\r\n\r\n\r\nexport const showSuccessModal = function (amount, received, charge, fn, isXianjin,message,settleGift, store, cb) {\r\n let isDelayModal;\r\n if (!isXianjin) {\r\n isDelayModal = false\r\n } else {\r\n // GiveChangeSupportManualClose 找零界面手动关闭\r\n isDelayModal = PosInitData('GiveChangeSupportManualClose');\r\n }\r\n\r\n const modal = asyncModal({\r\n width:'400px',\r\n closable:false,\r\n maskClosable:true,\r\n onClose: () => { typeof fn == 'function' && fn() },\r\n content: <div className=\"paySuccess\">\r\n <div className={`${isDelayModal ? 'icon1' : ''} icon ${settleGift ? 'settleIcon' : ''}`}><Ticon type=\"zhifuchenggong\" /></div>\r\n <div className={`${isDelayModal ? 'text1' : ''} text ${settleGift ? 'settleText' : ''}`}>{message}</div>\r\n {settleGift ? <div className='primary-color settleGift'>此订单满足支付返券活动,优惠券会自动发放到用户账户</div> : null}\r\n <div className={`${isDelayModal ? 'tipStyle1' : ''} tipStyle`}><span className=\"fl\">应收金额</span><span className=\"fr\">{amount}</span></div>\r\n <div className={`${isDelayModal ? 'tipStyle2' : ''} tipStyle`}><span className=\"fl\">实收金额</span><span className=\"fr\">{received}</span></div>\r\n <div className={`${isDelayModal ? 'tipStyle3' : ''} tipStyle`}><span className=\"fl\">找零</span><span className=\"fr\">{getFixedNumber(charge)}</span></div>\r\n {\r\n isDelayModal ?\r\n <div className=\"tipStyle\">\r\n <Button onClick={() => {\r\n setTimeout(() => { modal.destroy(); cb && cb(); }, 0)\r\n }} className=\"paymentSuccessBtn\" type=\"primary\">确定</Button>\r\n </div>\r\n :\r\n null\r\n }\r\n </div>\r\n })\r\n if (!isDelayModal) {\r\n setTimeout(() => { modal.destroy(); cb && cb(); }, 1500)\r\n }\r\n return modal;\r\n}\r\n\r\nexport const openAwaitModal = function (tip, manually) {\r\n let tips = tip ? tip : '取会员价中'\r\n\r\n return asyncModal({\r\n className: 'billing-onsettle-ModalLight loading-modal',\r\n maskClosable: false,\r\n closable: false,\r\n width: 'auto',\r\n content: <div className='billing-onsettle-ModalLight-content'>\r\n\r\n <Spin size=\"large\"/>\r\n <div className='billing-onsettle-ModalLight-text'>{`${tips}...`}</div>\r\n </div>\r\n }, manually)\r\n}\r\n"]}
@@ -202,17 +202,17 @@ var Socket = function () {
202
202
  }]);
203
203
  return Socket;
204
204
  }(); // cloud server消息推送接口单独使用 不走统一配置
205
- /**
206
- * host 主机
207
- * path 地址
208
- * connected 连接成功后的回调
209
- * error 错误信息的回调
210
- * reconnect 触发重连的钩子
211
- * updateConfig 触发重连时候 需要在实例化时的reconnect钩子调用该方法,参数 options 为设置新的参数 reInit 为是否重新初始化连接
212
- * send 发送消息
213
- * on 监听推送消息
214
- * stop 停止连接
215
- *
205
+ /**
206
+ * host 主机
207
+ * path 地址
208
+ * connected 连接成功后的回调
209
+ * error 错误信息的回调
210
+ * reconnect 触发重连的钩子
211
+ * updateConfig 触发重连时候 需要在实例化时的reconnect钩子调用该方法,参数 options 为设置新的参数 reInit 为是否重新初始化连接
212
+ * send 发送消息
213
+ * on 监听推送消息
214
+ * stop 停止连接
215
+ *
216
216
  **/
217
217
 
218
218