tplus-member 3.54.3 → 3.54.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -64,6 +64,10 @@ var _merge2 = require('lodash/merge');
64
64
 
65
65
  var _merge3 = _interopRequireDefault(_merge2);
66
66
 
67
+ var _cloneDeep = require('lodash/cloneDeep');
68
+
69
+ var _cloneDeep2 = _interopRequireDefault(_cloneDeep);
70
+
67
71
  var _MemberDataChangedProcessorBlock = require('../viewDoMain/MemberDataChangedProcessorBlock');
68
72
 
69
73
  var _CheckMemberProcessorBlock = require('../viewDoMain/CheckMemberProcessorBlock');
@@ -177,7 +181,7 @@ var MemberOrderController = (_class = function (_FeedBackController) {
177
181
  switch (_context2.prev = _context2.next) {
178
182
  case 0:
179
183
  for (key in _defaultConfig2.default || {}) {
180
- this.data[key] = _defaultConfig2.default[key];
184
+ this.data[key] = (0, _cloneDeep2.default)(_defaultConfig2.default[key]);
181
185
  }
182
186
 
183
187
  case 1:
@@ -356,16 +360,48 @@ var MemberOrderController = (_class = function (_FeedBackController) {
356
360
  var custVendorName = view.find(function (el) {
357
361
  return el.FieldName == 'custVendorName.Name';
358
362
  });
359
- if (data.isAutoCreateCustVendorEnum.Name === '否') {
360
- custVendorClassName.ReadOnly = true;
361
- custVendorClassName.AllowNone = true;
362
- saleCreditLimitAmount.ReadOnly = true;
363
- custVendorName.ReadOnly = false;
363
+ // 会员姓名
364
+ var memberName = view.find(function (el) {
365
+ return el.FieldName == 'Name';
366
+ });
367
+ var isAutoCreateCustVendorEnum = data.isAutoCreateCustVendorEnum;
368
+
369
+ if (isAutoCreateCustVendorEnum && isAutoCreateCustVendorEnum.Name === '否') {
370
+ custVendorClassName && (custVendorClassName.ReadOnly = true);
371
+ saleCreditLimitAmount && (saleCreditLimitAmount.ReadOnly = true);
372
+ custVendorClassName && (custVendorClassName.AllowNone = true);
373
+ memberName && (memberName.AllowNone = true);
374
+ custVendorName && (custVendorName.ReadOnly = false);
375
+ custVendorName && (custVendorName.AllowNone = false);
376
+ // 选择否时,把在选项为是的时候选择的相应的内容清空
377
+ var obj1 = {
378
+ changed: {
379
+ custVendorClassName: { Name: '' }
380
+ },
381
+ view: view
382
+ };
383
+ var obj2 = {
384
+ changed: {
385
+ saleCreditLimitAmount: ''
386
+ },
387
+ view: view
388
+ };
389
+ this.change(obj1);
390
+ this.change(obj2);
364
391
  } else {
365
- custVendorClassName.ReadOnly = false;
366
- saleCreditLimitAmount.ReadOnly = false;
367
- custVendorName.ReadOnly = true;
368
- custVendorClassName.AllowNone = false;
392
+ custVendorClassName && (custVendorClassName.ReadOnly = false);
393
+ saleCreditLimitAmount && (saleCreditLimitAmount.ReadOnly = false);
394
+ custVendorClassName && (custVendorClassName.AllowNone = false);
395
+ memberName && (memberName.AllowNone = false);
396
+ custVendorName && (custVendorName.ReadOnly = true);
397
+ custVendorName && (custVendorName.AllowNone = true);
398
+ var obj = {
399
+ changed: {
400
+ custVendorName: { Name: '' }
401
+ },
402
+ view: view
403
+ };
404
+ this.change(obj);
369
405
  }
370
406
  var memberTypeField = view.find(function (el) {
371
407
  return el.FieldName == 'MemberType';
@@ -1 +1 @@
1
- {"version":3,"sources":["tplus-member/controllers/MemberOrderController.js"],"names":["MemberOrderController","args","startMobileRequset","voucherVM","viewModel","items","find","it","type","view","AddMemberView","Headers","mobilephone","el","FieldName","AllowNone","initData","setDefaultMemberType","key","defaultValue","data","param","paramList","SearchValue","result","Success","ReferData","list","JSON","parse","length","defMemberType","a","IsDefaultMemberType","setCellValue","changeDic","MemberDataChangedProcessorBlock","execute","storeInfo","TStore","restore","MemberDataPreSaveProcessorBlock","message","CheckMemberProcessorBlock","changed","hasOwnProperty","modifyVM","console","log","isEnableUMember","isImageFile","memberField","imageField","OnlyAddDefaultMemberTypeForPOS","custVendorClassName","saleCreditLimitAmount","custVendorName","isAutoCreateCustVendorEnum","Name","ReadOnly","memberTypeField","Visible","FeedBackController","action"],"mappings":"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","file":"MemberOrderController.js","sourcesContent":["// import {\n// VoucherController\n// } from 'mutants-appfx';\nimport { \n //action,\n runInAction\n} from 'mutants-microfx';\n\nimport {action} from 'mobx';\nimport defaultValue from './defaultConfig.js'\nimport {PosInitData} from 'tplus-poslogin'\nimport FeedBackController from './FeedbackController.js'\nimport _merge from 'lodash/merge'\nimport {MemberDataChangedProcessorBlock} from '../viewDoMain/MemberDataChangedProcessorBlock'\nimport {CheckMemberProcessorBlock} from '../viewDoMain/CheckMemberProcessorBlock'\nimport { tApi, User } from 'tplus-api';\nimport {MemberDataPreSaveProcessorBlock} from '../viewDoMain/MemberDataPreSaveProcessorBlock'\nimport {TStore} from 'tplus-poslogin'\n\nexport default class MemberOrderController extends FeedBackController {\n /**\n * 初始化\n */\n constructor(...args)\n {\n super(...args);\n }\n startMobileRequset=null;\n async init() {\n super.init();\n const voucherVM = this.viewModel.items.find(it => it.type === 'Voucher');\n const view = voucherVM.AddMemberView.Headers;\n const mobilephone=view.find(el=>el.FieldName=='Mobilephone');\n if(mobilephone)\n {\n this.startMobileRequset=!mobilephone.AllowNone;\n }\n //console.log('memeberadd-controller-init',view)\n await this.initData();\n await this.setDefaultMemberType(view,this.startMobileRequset);\n }\n\n @action\n async initData() {\n for(let key in defaultValue||{}){\n this.data[key]=defaultValue[key]\n \n }\n }\n \n async setDefaultMemberType(view,startMobileRequset){\n const param = {\n paramList:{\n FieldName:'MemberType.Name'\n },\n SearchValue:'' \n };\n const result =await tApi(param,'chanjet.AA.DR.INewRetailMember.GetMemberReferData',false,false)\n runInAction(()=>{\n\n if(result.Success&&result.ReferData)\n {\n let list= JSON.parse( result.ReferData );\n if(list.length>0)\n {\n let defMemberType=list.find(a=>a.IsDefaultMemberType==true);\n if(defMemberType)\n {\n JSON.setCellValue(this.data,\"MemberType\",defMemberType);\n let changeDic={\"MemberType\":defMemberType};\n MemberDataChangedProcessorBlock.execute(false,this.data,changeDic,view,startMobileRequset);\n _merge(this.data,changeDic);\n }\n }\n }\n });\n }\n /**\n * @return boolean 是否继续保存会员\n */\n @action\n async handleData(){\n const storeInfo = TStore.restore();\n const voucherVM = this.viewModel.items.find(it => it.type === 'Voucher');\n const view = voucherVM.AddMemberView.Headers;\n MemberDataPreSaveProcessorBlock.execute(this.data,view,storeInfo);\n let message=CheckMemberProcessorBlock.execute(this.data);\n if(message!='')\n {\n this.message(message);\n return false;\n }\n // this.message('11')弹框提示\n return true;\n }\n\n /**\n * \n * @param {object} changed 修改的数据\n */\n @action\n change({changed,view}){\n let data=this.data;\n /**\n * 数据对象\n * changeed={\n * Mobilephone:'11111' (新值)\n * }\n */\n \n MemberDataChangedProcessorBlock.execute(false,data,changed,view,this.startMobileRequset);\n //没有特殊处理的 merge一下就行\n _merge(data,changed)\n if (changed.hasOwnProperty('isAutoCreateCustVendorEnum')) {\n const voucherVM = this.viewModel.items.find(it => it.type === 'Voucher');\n this.modifyVM({viewModel: voucherVM});\n }\n console.log('datachange===',changed)\n console.log('data===',data)\n }\n\n @action\n modifyVM({viewModel}){//开卡初始化修改vm\n const data = this.data;\n const view = viewModel.AddMemberView.Headers;\n const isEnableUMember =PosInitData('IsEnableUMember')\n const isImageFile =PosInitData('OpenFaceRecognition')\n const memberField = view.find(el=>el.FieldName=='Member.Name')\n const imageField = view.find(el=>el.FieldName=='ImageFile')\n const OnlyAddDefaultMemberTypeForPOS =PosInitData('OnlyAddDefaultMemberTypeForPOS')\n // 所属客户分类\n const custVendorClassName =view.find(el=>el.FieldName=='custVendorClassName.Name')\n //销售信用额度\n const saleCreditLimitAmount =view.find(el=>el.FieldName=='saleCreditLimitAmount')\n // 对应客户\n const custVendorName =view.find(el=>el.FieldName=='custVendorName.Name')\n if (data.isAutoCreateCustVendorEnum.Name === '否') {\n custVendorClassName.ReadOnly = true;\n custVendorClassName.AllowNone = true;\n saleCreditLimitAmount.ReadOnly = true;\n custVendorName.ReadOnly = false; \n } else {\n custVendorClassName.ReadOnly = false;\n saleCreditLimitAmount.ReadOnly = false;\n custVendorName.ReadOnly = true; \n custVendorClassName.AllowNone = false;\n }\n const memberTypeField=view.find(el=>el.FieldName=='MemberType')\n if(memberField){\n !!isEnableUMember?memberField.Visible = true:memberField.Visible=false;\n }\n if(imageField){\n isImageFile==1?imageField.Visible = true:imageField.Visible = false;\n }\n if(memberTypeField){\n OnlyAddDefaultMemberTypeForPOS?memberTypeField.ReadOnly=true:memberTypeField.ReadOnly=false;\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["tplus-member/controllers/MemberOrderController.js"],"names":["MemberOrderController","args","startMobileRequset","voucherVM","viewModel","items","find","it","type","view","AddMemberView","Headers","mobilephone","el","FieldName","AllowNone","initData","setDefaultMemberType","key","defaultValue","data","param","paramList","SearchValue","result","Success","ReferData","list","JSON","parse","length","defMemberType","a","IsDefaultMemberType","setCellValue","changeDic","MemberDataChangedProcessorBlock","execute","storeInfo","TStore","restore","MemberDataPreSaveProcessorBlock","message","CheckMemberProcessorBlock","changed","hasOwnProperty","modifyVM","console","log","isEnableUMember","isImageFile","memberField","imageField","OnlyAddDefaultMemberTypeForPOS","custVendorClassName","saleCreditLimitAmount","custVendorName","memberName","isAutoCreateCustVendorEnum","Name","ReadOnly","obj1","obj2","change","obj","memberTypeField","Visible","FeedBackController","action"],"mappings":"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","file":"MemberOrderController.js","sourcesContent":["// import {\n// VoucherController\n// } from 'mutants-appfx';\nimport { \n //action,\n runInAction\n} from 'mutants-microfx';\n\nimport {action} from 'mobx';\nimport defaultValue from './defaultConfig.js'\nimport {PosInitData} from 'tplus-poslogin'\nimport FeedBackController from './FeedbackController.js'\nimport _merge from 'lodash/merge'\nimport _clonedeep from \"lodash/cloneDeep\";\nimport {MemberDataChangedProcessorBlock} from '../viewDoMain/MemberDataChangedProcessorBlock'\nimport {CheckMemberProcessorBlock} from '../viewDoMain/CheckMemberProcessorBlock'\nimport { tApi, User } from 'tplus-api';\nimport {MemberDataPreSaveProcessorBlock} from '../viewDoMain/MemberDataPreSaveProcessorBlock'\nimport {TStore} from 'tplus-poslogin'\n\nexport default class MemberOrderController extends FeedBackController {\n /**\n * 初始化\n */\n constructor(...args)\n {\n super(...args);\n }\n startMobileRequset=null;\n async init() {\n super.init();\n const voucherVM = this.viewModel.items.find(it => it.type === 'Voucher');\n const view = voucherVM.AddMemberView.Headers;\n const mobilephone=view.find(el=>el.FieldName=='Mobilephone');\n if(mobilephone)\n {\n this.startMobileRequset=!mobilephone.AllowNone;\n }\n //console.log('memeberadd-controller-init',view)\n await this.initData();\n await this.setDefaultMemberType(view,this.startMobileRequset);\n }\n\n @action\n async initData() {\n for(let key in defaultValue||{}){\n this.data[key]=_clonedeep(defaultValue[key]);\n }\n }\n \n async setDefaultMemberType(view,startMobileRequset){\n const param = {\n paramList:{\n FieldName:'MemberType.Name'\n },\n SearchValue:'' \n };\n const result =await tApi(param,'chanjet.AA.DR.INewRetailMember.GetMemberReferData',false,false)\n runInAction(()=>{\n\n if(result.Success&&result.ReferData)\n {\n let list= JSON.parse( result.ReferData );\n if(list.length>0)\n {\n let defMemberType=list.find(a=>a.IsDefaultMemberType==true);\n if(defMemberType)\n {\n JSON.setCellValue(this.data,\"MemberType\",defMemberType);\n let changeDic={\"MemberType\":defMemberType};\n MemberDataChangedProcessorBlock.execute(false,this.data,changeDic,view,startMobileRequset);\n _merge(this.data,changeDic);\n }\n }\n }\n });\n }\n /**\n * @return boolean 是否继续保存会员\n */\n @action\n async handleData(){\n const storeInfo = TStore.restore();\n const voucherVM = this.viewModel.items.find(it => it.type === 'Voucher');\n const view = voucherVM.AddMemberView.Headers;\n MemberDataPreSaveProcessorBlock.execute(this.data,view,storeInfo);\n let message=CheckMemberProcessorBlock.execute(this.data);\n if(message!='')\n {\n this.message(message);\n return false;\n }\n // this.message('11')弹框提示\n return true;\n }\n\n /**\n * \n * @param {object} changed 修改的数据\n */\n @action\n change({changed,view}){\n let data=this.data;\n /**\n * 数据对象\n * changeed={\n * Mobilephone:'11111' (新值)\n * }\n */\n \n MemberDataChangedProcessorBlock.execute(false,data,changed,view,this.startMobileRequset);\n //没有特殊处理的 merge一下就行\n _merge(data,changed)\n if (changed.hasOwnProperty('isAutoCreateCustVendorEnum')) {\n const voucherVM = this.viewModel.items.find(it => it.type === 'Voucher');\n this.modifyVM({viewModel: voucherVM});\n }\n console.log('datachange===',changed)\n console.log('data===',data)\n }\n\n @action\n modifyVM({viewModel}){//开卡初始化修改vm\n const data = this.data;\n const view = viewModel.AddMemberView.Headers;\n const isEnableUMember =PosInitData('IsEnableUMember')\n const isImageFile =PosInitData('OpenFaceRecognition')\n const memberField = view.find(el=>el.FieldName=='Member.Name')\n const imageField = view.find(el=>el.FieldName=='ImageFile')\n const OnlyAddDefaultMemberTypeForPOS =PosInitData('OnlyAddDefaultMemberTypeForPOS')\n // 所属客户分类\n const custVendorClassName =view.find(el=>el.FieldName=='custVendorClassName.Name')\n //销售信用额度\n const saleCreditLimitAmount =view.find(el=>el.FieldName=='saleCreditLimitAmount')\n // 对应客户\n const custVendorName =view.find(el=>el.FieldName=='custVendorName.Name')\n // 会员姓名\n const memberName = view.find(el=>el.FieldName=='Name')\n const { isAutoCreateCustVendorEnum } = data;\n if (isAutoCreateCustVendorEnum && isAutoCreateCustVendorEnum.Name === '否') {\n custVendorClassName && (custVendorClassName.ReadOnly = true);\n saleCreditLimitAmount && (saleCreditLimitAmount.ReadOnly = true);\n custVendorClassName && (custVendorClassName.AllowNone = true);\n memberName && (memberName.AllowNone = true);\n custVendorName && (custVendorName.ReadOnly = false); \n custVendorName && (custVendorName.AllowNone = false);\n // 选择否时,把在选项为是的时候选择的相应的内容清空\n let obj1 = {\n changed : {\n custVendorClassName : {Name: ''}\n },\n view: view\n }\n let obj2 = {\n changed : {\n saleCreditLimitAmount : ''\n },\n view: view\n }\n this.change(obj1);\n this.change(obj2);\n } else {\n custVendorClassName && (custVendorClassName.ReadOnly = false);\n saleCreditLimitAmount && (saleCreditLimitAmount.ReadOnly = false);\n custVendorClassName && (custVendorClassName.AllowNone = false);\n memberName && (memberName.AllowNone = false);\n custVendorName && (custVendorName.ReadOnly = true); \n custVendorName && (custVendorName.AllowNone = true);\n let obj = {\n changed : {\n custVendorName : {Name: ''}\n },\n view: view\n }\n this.change(obj);\n }\n const memberTypeField=view.find(el=>el.FieldName=='MemberType')\n if(memberField){\n !!isEnableUMember?memberField.Visible = true:memberField.Visible=false;\n }\n if(imageField){\n isImageFile==1?imageField.Visible = true:imageField.Visible = false;\n }\n if(memberTypeField){\n OnlyAddDefaultMemberTypeForPOS?memberTypeField.ReadOnly=true:memberTypeField.ReadOnly=false;\n }\n }\n}\n"]}
@@ -154,7 +154,8 @@ var _default = (0, _mutantsMicrofx.observer)(_class = (_temp = _class2 = functio
154
154
  warnContent: '',
155
155
  setPwdShortKey: '',
156
156
  bindCardShow: false, // 是否显示绑卡,默认否
157
- bindCardBtnDisabled: true
157
+ bindCardBtnDisabled: true,
158
+ menuKey: null // 用来判断是否是储值,设置密码的时候使用
158
159
  };
159
160
  _this.api = _api2.default;
160
161
  return _this;
@@ -426,6 +427,15 @@ var _default = (0, _mutantsMicrofx.observer)(_class = (_temp = _class2 = functio
426
427
  warnContent: ''
427
428
  });
428
429
  this.handleEvent(auth).then(function (ret) {
430
+ if (key === 'storage') {
431
+ _this3.setState({
432
+ menuKey: 'storage'
433
+ });
434
+ } else {
435
+ _this3.setState({
436
+ menuKey: null
437
+ });
438
+ }
429
439
  if (ret === true) {
430
440
  var _ref7 = _mutantsUtil.platform || {},
431
441
  isHorizontalSunMi = _ref7.isHorizontalSunMi;
@@ -470,7 +480,8 @@ var _default = (0, _mutantsMicrofx.observer)(_class = (_temp = _class2 = functio
470
480
  btnDissabled = _state.btnDissabled,
471
481
  bindCardShow = _state.bindCardShow,
472
482
  bindCardBtnDisabled = _state.bindCardBtnDisabled,
473
- refundShow = _state.refundShow;
483
+ refundShow = _state.refundShow,
484
+ menuKey = _state.menuKey;
474
485
  var _props5 = this.props,
475
486
  member = _props5.member,
476
487
  authProcess = _props5.authProcess,
@@ -517,9 +528,9 @@ var _default = (0, _mutantsMicrofx.observer)(_class = (_temp = _class2 = functio
517
528
  },
518
529
  passwordTitle === '换卡' ? _react2.default.createElement(_changeMemberCard2.default, { modifyMember: modifyMember, member: member, ref: function ref(_ref9) {
519
530
  return _this4.modifyPass = _ref9;
520
- }, cancelModal: this.changePasswordCancel }) : _react2.default.createElement(_tplusComponentsTouch.ModifyPass, { changeBtnDisabled: this.changeBtnDisabled, loadUserInfo: loadUserInfo, selected: selected, storageInit: this.storageInit, passwordTitle: !member.WalletEnabled ? '设置密码' : passwordTitle, ref: function ref(_ref10) {
531
+ }, cancelModal: this.changePasswordCancel }) : _react2.default.createElement(_tplusComponentsTouch.ModifyPass, { status: 'member', menuKey: menuKey, changeBtnDisabled: this.changeBtnDisabled, loadUserInfo: loadUserInfo, selected: selected, storageInit: this.storageInit, passwordTitle: !member.WalletEnabled ? '设置密码' : passwordTitle, ref: function ref(_ref10) {
521
532
  return _this4.modifyPass = _ref10;
522
- }, cardList: member, cancelModal: this.changePasswordCancel })
533
+ }, member: member, cardList: member, cancelModal: this.changePasswordCancel })
523
534
  ),
524
535
  _react2.default.createElement(
525
536
  _tplusComponentsTouch.ModalWraper,
@@ -1 +1 @@
1
- {"version":3,"sources":["tplus-member/member/memberMenu/index.js"],"names":["menus2","key","name","visible","icon","auth","SHORTCUT_KEY","display","finish","semi","menus","observer","props","title","state","modifyPass","passwordTitle","btnDissabled","warnContent","setPwdShortKey","bindCardShow","bindCardBtnDisabled","api","MemberStore","changeDisplay","setting_setData","localStore","get","JSON","parse","localStorage","getItem","length","forEach","settingItem","ParamType","Name","Value","storeKey","item","setState","setTimeout","changeState","flag","filterMenus","member","memberEnumState","list","MemberState","Id","notusing","loss","filter","menu","controllerEvent","memberDto","operationName","viewM","context","viewModel","getViewItem","AuthType","MemberType","IsStorage","WalletEnabled","Message","warn","storageInit","value","password","loadUserInfo","selected","ID","params","cardNo","cardPwd","memberId","isStorageCardBindMember","MeStorageCardBind","ret","success","handleEvent","then","platform","isHorizontalSunMi","storage","changePassword","reportLoss","cancelLoss","openCard","resetPassword","bindCard","count","changeIsAllAuthority","refundShow","authProcess","modifyMember","cardList","id","storageBalanceAmount","presentAmount","map","index","status","execute","getMenuItem","changePasswordClick","changePasswordCancel","ref","changeBtnDisabled","bindCardClick","changeBindCardCancel","bindCardRef","changeBindCardBtnDisabled","Component","contextTypes","onEvent","PropTypes","func","object","stores","tags","indexOf","methodName","methodArgs","Action","fromJS","memberStore","settlementControlEvent","onSettleSuccess","modalRouter","hide","callback","show","url","className","memberClass","onHide","handleOk","handleCancel","handleChange","ModalWraper","confirm","content","onOk","RecordLoss","Success","Msg","Data","dt","Ts","error","catch","console","log","e","onCancel","UnRecordLoss","using","GetMemberDTO","selectMemberStore","setCurMemberInfo","modalType","closeCk","Loading","destroyOnClose","disabled","bindCardFn","loadingBtn","voucherDefaultPosMode","newStyle","click"],"mappings":"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","file":"index.js","sourcesContent":["import React, { Component } from 'react';\nimport { observer, stores } from \"mutants-microfx\"\nimport { Action } from 'mutants-appfx'\nimport { toJS } from 'mobx';\nimport './style.less';\nimport { Ticon, ModalWraper, Message,Loading, ModifyPass } from 'tplus-components-touch'\nimport { platform, localStore } from 'mutants-util';\nimport ChangeMemberCard from './changeMemberCard'\nimport { PropTypes } from 'prop-types'\nimport MemberStore from '../api';\nimport BindCard from './bindCard'\n\n// 会员管理menuList\nlet menus2 = [{\n key: 'storage',\n name: '储值',\n visible: true,\n icon: 'chuzhi',\n auth:'Storage',\n SHORTCUT_KEY: ''\n}, {\n key: 'changePassword',\n name: '修改密码',\n visible: true,\n icon: 'xiugaimima1',\n auth:'ModifyPassword',\n SHORTCUT_KEY: ''\n},\n// {\n// key: 'reportLoss',\n// name: '挂失',\n// visible: true,\n// icon: 'guashi',\n// auth:'RecordLoss'\n\n// },\n {\n key: 'cancelLoss',\n name: '取消挂失',\n visible: true,\n icon: 'quxiaoguashi',\n auth:'RecordLoss',\n SHORTCUT_KEY: ''\n},\n// 2.0不支持开卡\n// {\n// key: 'openCard',\n// name: '开卡',\n// visible: true,\n// icon: 'quxiaoguashi',\n// auth:'MemberCardActive',\n// SHORTCUT_KEY: ''\n// },\n {\n key: 'resetPassword',\n name: '重置密码',\n visible: true,\n icon: 'chongzhimima',\n auth:'PosResetPwd',\n SHORTCUT_KEY: ''\n}, {\n key: 'bindCard',\n name: '绑卡',\n visible: true,\n icon: 'bangka',\n auth:'BindStorageCard',\n SHORTCUT_KEY: ''\n}]\nconst display = {\n finish: ['storage', 'changePassword', 'reportLoss', 'cancelLoss'],\n semi: ['openCard']\n}\n\nlet menus = [];\n@observer\nexport default class extends Component {\n\n constructor(props) {\n super(props)\n let { title } = props;\n this.state = {\n menus: menus2,\n modifyPass: false,\n passwordTitle: '换卡',\n btnDissabled: true,\n warnContent: '',\n setPwdShortKey: '',\n bindCardShow: false, // 是否显示绑卡,默认否\n bindCardBtnDisabled: true,\n }\n this.api = MemberStore;\n }\n\n static contextTypes = {\n onEvent: PropTypes.func,\n viewModel: PropTypes.object,\n stores: PropTypes.object\n }\n\n componentWillMount() {\n this.changeDisplay('finish')\n }\n\n componentDidMount() {\n let setting_setData = localStore.get(\"setting_setData\");\n if(setting_setData == null){\n setting_setData = JSON.parse(localStorage.getItem(\"setting_setData\"));\n }\n if(setting_setData && setting_setData.length != 0){\n setting_setData.forEach((settingItem)=>{\n if(settingItem.ParamType && settingItem.ParamType === \"SHORTCUT_KEY\"){\n const { Name, Value} = settingItem || {};\n const { title, storeKey } = this.props;\n menus = menus2;\n menus.forEach((item) => {\n if (item.auth === Name) {\n item.SHORTCUT_KEY = Value;\n }\n })\n if (Name === 'MemberSetPassword') {\n this.setState({\n setPwdShortKey: Value\n })\n }\n }\n })\n }\n setTimeout(() => { this.changeState() }, 0)\n }\n\n componentWillReceiveProps() {\n this.changeState()\n }\n\n filterMenus = (tags) => {\n const { title, storeKey } = this.props;\n menus = menus2;\n return menus.filter((menu) => {\n return ~tags.indexOf(menu.key)\n })\n }\n\n changeDisplay(flag = 'finish') {\n const menus = this.filterMenus(display[flag])\n this.setState({ menus });\n }\n\n changeState() {\n let { member, memberEnumState } = this.props;\n const { title, storeKey } = this.props;\n let list = menus2;\n\n if (member && member.MemberState) {\n if(member.MemberState.Id == memberEnumState.notusing){\n this.changeDisplay('semi')\n return;\n }\n this.changeDisplay('finish')\n if (member.MemberState.Id == memberEnumState.loss) {\n list = menus.filter((menu) => {\n return menu.key !== 'reportLoss'&&menu.key !== 'openCard'\n })\n }else{\n list = menus.filter((menu) => {\n return menu.key !== 'cancelLoss'&&menu.key !== 'openCard'\n })\n }\n }\n this.setState({ menus: list })\n }\n\n controllerEvent = (methodName, methodArgs) => {\n return this.context.onEvent({ 'controllerEvent': Action.fromJS(this.context.viewModel, methodName) }, 'controllerEvent', methodArgs);\n }\n\n async handleEvent(auth) {\n const { member } = this.props;\n await this.controllerEvent('ValidateOperationName', { memberDto: member, operationName: auth });\n let viewM = this.context.viewModel.getViewItem('Voucher');\n if (viewM && viewM.AuthType === false) {\n return false;\n } else {\n return true;\n }\n }\n\n async storage() {\n const { member } = this.props;\n const { MemberType: { IsStorage } = {}, WalletEnabled } = member || {};\n if (IsStorage === false) {\n Message.warn('当前会员没有启用储值.')\n return;\n }\n if (WalletEnabled) {\n this.storageInit();\n } else {\n this.setState({ modifyPass: true, passwordTitle: '设置密码', warnContent: '' });\n }\n }\n\n storageInit = () => {\n const { member, loadUserInfo, selected } = this.props;\n const { ID } = member || {};\n stores.memberStore.storageInit({\n member: toJS(member),\n settlementControlEvent: {\n onSettleSuccess: () => {\n stores.modalRouter.hide('/memberstore')\n loadUserInfo(selected, ID, member, true, true)\n }\n },\n callback: () => {\n stores.modalRouter.show({\n url: '/memberstore',\n title: '会员储值',\n className: 'memberContainer1',\n memberClass:'memberClassWidth',\n onHide: () => {\n stores.modalRouter.hide('/memberstore')\n }\n })\n }\n })\n }\n\n //修改密码\n changePasswordClick = () => {\n if (this.modifyPass) this.modifyPass.handleOk()\n }\n // 修改密码\n changePassword() {\n this.setState({ modifyPass: true, passwordTitle: '修改密码' });\n }\n\n // 重置密码\n resetPassword() {\n this.setState({ modifyPass: true, passwordTitle: '重置密码' });\n }\n\n changePasswordCancel = () => {\n this.setState({ modifyPass: false })\n this.modifyPass.handleCancel();\n }\n\n // 注销卡\n reportLoss = () => {\n let { member, handleChange, memberEnumState } = this.props;\n ModalWraper.confirm({\n title: '提示',\n content: '确定要挂失该会员卡吗?',\n onOk: async () => {\n this.api.RecordLoss(member).then(ret => {\n const { Success, Msg, Data } = ret;\n if (Success === true && Data) {\n const dt = JSON.parse(Data);\n member.Ts = dt.Ts;\n member.MemberState.Id = memberEnumState.loss;\n handleChange && handleChange(member);\n Message.success('挂失成功。')\n } else {\n Message.error(\"挂失失败:\" + Msg)\n }\n }).catch(e => {\n console.log('err', e);\n })\n },\n onCancel() {\n },\n onHide: () => {\n }\n })\n }\n //取消注销卡\n cancelLoss = () => {\n if(!this.api) return;\n let { member,handleChange, memberEnumState } = this.props;\n ModalWraper.confirm({\n title: '提示',\n content: '确定要取消挂失该会员卡吗?',\n onOk: async () => {\n this.api.UnRecordLoss(member).then(ret => {\n const { Success, Msg, Data } = ret;\n if (Success === true && Data) {\n const dt = JSON.parse(Data);\n member.Ts = dt.Ts;\n member.MemberState.Id = memberEnumState.using;\n handleChange && handleChange(member);\n Message.success('取消挂失成功。')\n } else {\n Message.error(\"取消挂失败:\" + Msg)\n }\n }).catch(e => {\n console.log('err', e);\n })\n },\n onCancel() {\n },\n onHide: () => {\n }\n })\n }\n\n // 开卡\n openCard = () => {\n const { member, loadUserInfo, selected, memberEnumState } = this.props;\n const { ID, MemberType: { IsStorage } } = member || {};\n memberStore.GetMemberDTO(ID, false).then((ret) => {\n stores.selectMemberStore.setCurMemberInfo(ret)\n stores.modalRouter.show({\n url: '/AA/OPENCARD',\n title: '开卡',\n className: 'memberAddModal',\n modalType: 'big',\n onHide: () => stores.modalRouter.hide('/AA/OPENCARD'),\n closeCk: () => {\n member.MemberState.Id = memberEnumState.using;\n // loadUserInfo(selected, ID, member, true, true);\n }\n })\n Loading.hide();\n })\n stores.modalRouter.show({\n url: '/AA/OPENCARD',\n title: '开卡',\n className: 'memberAddModal',\n modalType: 'big',\n destroyOnClose: true,\n onHide: () => stores.modalRouter.hide('/AA/OPENCARD'),\n closeCk: () => {\n member.MemberState.Id = memberEnumState.using;\n // loadUserInfo(selected, ID, member, true, true);\n },\n onHide: () => {\n }\n })\n Loading.hide();\n }\n\n // 点击绑卡\n bindCard = () => {\n this.setState({ bindCardShow: true})\n }\n\n // 点击关闭绑卡\n changeBindCardCancel = () => {\n this.setState({\n bindCardShow: false,\n bindCardBtnDisabled: true\n })\n }\n\n // 修改绑卡disabled\n changeBindCardBtnDisabled = (disabled) => {\n this.setState({\n bindCardBtnDisabled: disabled\n })\n }\n\n // 点击绑卡确定按钮\n bindCardClick = () => {\n if (this.bindCardRef) {\n const { storeKey } = this.props\n this.bindCardFn(this.bindCardRef.state)\n }\n }\n\n // MeStorageCard > gridTemplateUser > MeStorageCard.cardbatchExport\n // 绑卡确定按钮\n async bindCardFn (state) {\n const { value, password } = state\n const { member = {}, loadUserInfo, selected } = this.props\n const { ID } = member || {};\n const params = {\n cardNo: value,\n cardPwd: password,\n memberId: ID,\n isStorageCardBindMember:false\n }\n const ret = await this.api.MeStorageCardBind(params)\n Message.success('绑定成功')\n loadUserInfo(selected, ID, member, true, true)\n this.setState({\n bindCardShow: false\n })\n }\n\n click(key, auth, name) {\n this.setState({\n warnContent: ''\n })\n this.handleEvent(auth).then(ret=>{\n if (ret === true) {\n const { isHorizontalSunMi } = platform || {};\n switch (key) {\n case 'storage': this.storage(); break;\n case 'changePassword': this.changePassword(); break;\n case 'reportLoss': this.reportLoss(); break;\n case 'cancelLoss': this.cancelLoss(); break;\n case 'openCard': this.openCard(); break;\n case 'resetPassword': this.resetPassword(); break;\n case 'bindCard': this.bindCard(); break;\n }\n }\n })\n }\n\n jusIsAllAuthority(count) {\n const { changeIsAllAuthority } = this.props\n if (!count) {\n changeIsAllAuthority && changeIsAllAuthority()\n }\n }\n\n changeBtnDisabled = (value) => {\n this.setState({\n btnDissabled: value\n })\n }\n\n getMenuItem = (index, menu) => {\n let { member, loadingBtn} = this.props;\n const { setPwdShortKey } = this.state || {};\n const voucherDefaultPosMode = localStore && localStore.get('voucherDefaultPosMode') || 'touch'\n let newStyle = voucherDefaultPosMode=='voucher';\n // 控制显示修改密码还是设置密码\n if (menu.auth === 'ModifyPassword') {\n return <div key={index} className={`primary-color b-theme ${'hot-'+ menu.auth} ${loadingBtn === false ? 'member-menu-el' : 'member-menu-el disabled-member-select-btn '} ${newStyle && 'memberHeight'}`}\n onClick={() => {\n if (loadingBtn === false) this.click(menu.key, menu.auth)\n }}\n >\n {\n member.WalletEnabled ? <div><Ticon icon={menu.icon}></Ticon><span>修改密码</span><div className='menuHotkey'>{menu.SHORTCUT_KEY}</div></div> :\n <div><Ticon icon={menu.icon}></Ticon><span>设置密码</span><div className='menuHotkey'>{setPwdShortKey}</div></div>\n }\n </div>\n } else if (!member.WalletEnabled && menu.auth === 'PosResetPwd') {\n return;\n } else {\n return (\n <div\n key={index}\n className={`primary-color b-theme ${'hot-'+ menu.auth} ${loadingBtn === false ? 'member-menu-el' : 'member-menu-el disabled-member-select-btn '} ${newStyle && 'memberHeight'}`}\n onClick={() => {\n if (loadingBtn === false) this.click(menu.key, menu.auth, menu.name)\n }}\n >\n <Ticon icon={menu.icon}></Ticon><span>{menu.name}</span>\n <div className='menuHotkey'>{menu.SHORTCUT_KEY}</div>\n </div>\n )\n }\n }\n\n render() {\n const { menus, modifyPass, passwordTitle, btnDissabled, bindCardShow, bindCardBtnDisabled, refundShow } = this.state;\n let { member, authProcess, loadUserInfo, selected, modifyMember, cardList = []} = this.props;\n const {id, storageBalanceAmount, presentAmount } = cardList[0] || {}\n return (\n <div className='member-menu'>\n {\n menus && menus.map((menu,index) => {\n let status = authProcess.execute(menu.auth);\n if (status) {\n return this.getMenuItem(index, menu)\n } else {\n if (menu.auth === 'ModifyPassword') {\n return this.getMenuItem(index, menu);\n } else if (menu.auth === 'bindCard') {\n return this.getMenuItem(index, menu);\n } else {\n return '';\n }\n }\n })\n }\n <ModalWraper\n title={!member.WalletEnabled ? '设置密码' : passwordTitle}\n show={modifyPass}\n ok={this.changePasswordClick}\n className='modify-password'\n modalType='mid'\n closeButton={true}\n exclueBoard={true}\n cancel={this.changePasswordCancel}\n btnDissabled={btnDissabled}\n >\n {\n passwordTitle === '换卡' ?\n <ChangeMemberCard modifyMember={modifyMember} member={member} ref={ref => this.modifyPass = ref} cancelModal={this.changePasswordCancel}></ChangeMemberCard>:\n <ModifyPass changeBtnDisabled={this.changeBtnDisabled} loadUserInfo={loadUserInfo} selected={selected} storageInit={this.storageInit} passwordTitle={\n !member.WalletEnabled ? '设置密码' : passwordTitle\n } ref={ref => this.modifyPass = ref} cardList={member} cancelModal={this.changePasswordCancel}></ModifyPass>\n }\n </ModalWraper>\n {/* 绑卡 */}\n <ModalWraper\n title=\"绑卡\"\n show={bindCardShow}\n className='bind-card'\n closeButton={false}\n ok={this.bindCardClick}\n cancel={this.changeBindCardCancel}\n btnDissabled={bindCardBtnDisabled}\n >\n <BindCard\n ref={ref => this.bindCardRef = ref}\n bindCardClick={this.bindCardClick}\n changeBindCardBtnDisabled={this.changeBindCardBtnDisabled}\n />\n </ModalWraper>\n {/* 绑卡 */}\n </div>\n )\n }\n}"]}
1
+ {"version":3,"sources":["tplus-member/member/memberMenu/index.js"],"names":["menus2","key","name","visible","icon","auth","SHORTCUT_KEY","display","finish","semi","menus","observer","props","title","state","modifyPass","passwordTitle","btnDissabled","warnContent","setPwdShortKey","bindCardShow","bindCardBtnDisabled","menuKey","api","MemberStore","changeDisplay","setting_setData","localStore","get","JSON","parse","localStorage","getItem","length","forEach","settingItem","ParamType","Name","Value","storeKey","item","setState","setTimeout","changeState","flag","filterMenus","member","memberEnumState","list","MemberState","Id","notusing","loss","filter","menu","controllerEvent","memberDto","operationName","viewM","context","viewModel","getViewItem","AuthType","MemberType","IsStorage","WalletEnabled","Message","warn","storageInit","value","password","loadUserInfo","selected","ID","params","cardNo","cardPwd","memberId","isStorageCardBindMember","MeStorageCardBind","ret","success","handleEvent","then","platform","isHorizontalSunMi","storage","changePassword","reportLoss","cancelLoss","openCard","resetPassword","bindCard","count","changeIsAllAuthority","refundShow","authProcess","modifyMember","cardList","id","storageBalanceAmount","presentAmount","map","index","status","execute","getMenuItem","changePasswordClick","changePasswordCancel","ref","changeBtnDisabled","bindCardClick","changeBindCardCancel","bindCardRef","changeBindCardBtnDisabled","Component","contextTypes","onEvent","PropTypes","func","object","stores","tags","indexOf","methodName","methodArgs","Action","fromJS","memberStore","settlementControlEvent","onSettleSuccess","modalRouter","hide","callback","show","url","className","memberClass","onHide","handleOk","handleCancel","handleChange","ModalWraper","confirm","content","onOk","RecordLoss","Success","Msg","Data","dt","Ts","error","catch","console","log","e","onCancel","UnRecordLoss","using","GetMemberDTO","selectMemberStore","setCurMemberInfo","modalType","closeCk","Loading","destroyOnClose","disabled","bindCardFn","loadingBtn","voucherDefaultPosMode","newStyle","click"],"mappings":"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","file":"index.js","sourcesContent":["import React, { Component } from 'react';\nimport { observer, stores } from \"mutants-microfx\"\nimport { Action } from 'mutants-appfx'\nimport { toJS } from 'mobx';\nimport './style.less';\nimport { Ticon, ModalWraper, Message,Loading, ModifyPass } from 'tplus-components-touch'\nimport { platform, localStore } from 'mutants-util';\nimport ChangeMemberCard from './changeMemberCard'\nimport { PropTypes } from 'prop-types'\nimport MemberStore from '../api';\nimport BindCard from './bindCard'\n\n// 会员管理menuList\nlet menus2 = [{\n key: 'storage',\n name: '储值',\n visible: true,\n icon: 'chuzhi',\n auth:'Storage',\n SHORTCUT_KEY: ''\n}, {\n key: 'changePassword',\n name: '修改密码',\n visible: true,\n icon: 'xiugaimima1',\n auth:'ModifyPassword',\n SHORTCUT_KEY: ''\n},\n// {\n// key: 'reportLoss',\n// name: '挂失',\n// visible: true,\n// icon: 'guashi',\n// auth:'RecordLoss'\n\n// },\n {\n key: 'cancelLoss',\n name: '取消挂失',\n visible: true,\n icon: 'quxiaoguashi',\n auth:'RecordLoss',\n SHORTCUT_KEY: ''\n},\n// 2.0不支持开卡\n// {\n// key: 'openCard',\n// name: '开卡',\n// visible: true,\n// icon: 'quxiaoguashi',\n// auth:'MemberCardActive',\n// SHORTCUT_KEY: ''\n// },\n {\n key: 'resetPassword',\n name: '重置密码',\n visible: true,\n icon: 'chongzhimima',\n auth:'PosResetPwd',\n SHORTCUT_KEY: ''\n}, {\n key: 'bindCard',\n name: '绑卡',\n visible: true,\n icon: 'bangka',\n auth:'BindStorageCard',\n SHORTCUT_KEY: ''\n}]\nconst display = {\n finish: ['storage', 'changePassword', 'reportLoss', 'cancelLoss'],\n semi: ['openCard']\n}\n\nlet menus = [];\n@observer\nexport default class extends Component {\n\n constructor(props) {\n super(props)\n let { title } = props;\n this.state = {\n menus: menus2,\n modifyPass: false,\n passwordTitle: '换卡',\n btnDissabled: true,\n warnContent: '',\n setPwdShortKey: '',\n bindCardShow: false, // 是否显示绑卡,默认否\n bindCardBtnDisabled: true,\n menuKey: null, // 用来判断是否是储值,设置密码的时候使用\n }\n this.api = MemberStore;\n }\n\n static contextTypes = {\n onEvent: PropTypes.func,\n viewModel: PropTypes.object,\n stores: PropTypes.object\n }\n\n componentWillMount() {\n this.changeDisplay('finish')\n }\n\n componentDidMount() {\n let setting_setData = localStore.get(\"setting_setData\");\n if(setting_setData == null){\n setting_setData = JSON.parse(localStorage.getItem(\"setting_setData\"));\n }\n if(setting_setData && setting_setData.length != 0){\n setting_setData.forEach((settingItem)=>{\n if(settingItem.ParamType && settingItem.ParamType === \"SHORTCUT_KEY\"){\n const { Name, Value} = settingItem || {};\n const { title, storeKey } = this.props;\n menus = menus2;\n menus.forEach((item) => {\n if (item.auth === Name) {\n item.SHORTCUT_KEY = Value;\n }\n })\n if (Name === 'MemberSetPassword') {\n this.setState({\n setPwdShortKey: Value\n })\n }\n }\n })\n }\n setTimeout(() => { this.changeState() }, 0)\n }\n\n componentWillReceiveProps() {\n this.changeState()\n }\n\n filterMenus = (tags) => {\n const { title, storeKey } = this.props;\n menus = menus2;\n return menus.filter((menu) => {\n return ~tags.indexOf(menu.key)\n })\n }\n\n changeDisplay(flag = 'finish') {\n const menus = this.filterMenus(display[flag])\n this.setState({ menus });\n }\n\n changeState() {\n let { member, memberEnumState } = this.props;\n const { title, storeKey } = this.props;\n let list = menus2;\n\n if (member && member.MemberState) {\n if(member.MemberState.Id == memberEnumState.notusing){\n this.changeDisplay('semi')\n return;\n }\n this.changeDisplay('finish')\n if (member.MemberState.Id == memberEnumState.loss) {\n list = menus.filter((menu) => {\n return menu.key !== 'reportLoss'&&menu.key !== 'openCard'\n })\n }else{\n list = menus.filter((menu) => {\n return menu.key !== 'cancelLoss'&&menu.key !== 'openCard'\n })\n }\n }\n this.setState({ menus: list })\n }\n\n controllerEvent = (methodName, methodArgs) => {\n return this.context.onEvent({ 'controllerEvent': Action.fromJS(this.context.viewModel, methodName) }, 'controllerEvent', methodArgs);\n }\n\n async handleEvent(auth) {\n const { member } = this.props;\n await this.controllerEvent('ValidateOperationName', { memberDto: member, operationName: auth });\n let viewM = this.context.viewModel.getViewItem('Voucher');\n if (viewM && viewM.AuthType === false) {\n return false;\n } else {\n return true;\n }\n }\n\n async storage() {\n const { member } = this.props;\n const { MemberType: { IsStorage } = {}, WalletEnabled } = member || {};\n if (IsStorage === false) {\n Message.warn('当前会员没有启用储值.')\n return;\n }\n if (WalletEnabled) {\n this.storageInit();\n } else {\n this.setState({ modifyPass: true, passwordTitle: '设置密码', warnContent: '' });\n }\n }\n\n storageInit = () => {\n const { member, loadUserInfo, selected } = this.props;\n const { ID } = member || {};\n stores.memberStore.storageInit({\n member: toJS(member),\n settlementControlEvent: {\n onSettleSuccess: () => {\n stores.modalRouter.hide('/memberstore')\n loadUserInfo(selected, ID, member, true, true)\n }\n },\n callback: () => {\n stores.modalRouter.show({\n url: '/memberstore',\n title: '会员储值',\n className: 'memberContainer1',\n memberClass:'memberClassWidth',\n onHide: () => {\n stores.modalRouter.hide('/memberstore')\n }\n })\n }\n })\n }\n\n //修改密码\n changePasswordClick = () => {\n if (this.modifyPass) this.modifyPass.handleOk()\n }\n // 修改密码\n changePassword() {\n this.setState({ modifyPass: true, passwordTitle: '修改密码' });\n }\n\n // 重置密码\n resetPassword() {\n this.setState({ modifyPass: true, passwordTitle: '重置密码' });\n }\n\n changePasswordCancel = () => {\n this.setState({ modifyPass: false })\n this.modifyPass.handleCancel();\n }\n\n // 注销卡\n reportLoss = () => {\n let { member, handleChange, memberEnumState } = this.props;\n ModalWraper.confirm({\n title: '提示',\n content: '确定要挂失该会员卡吗?',\n onOk: async () => {\n this.api.RecordLoss(member).then(ret => {\n const { Success, Msg, Data } = ret;\n if (Success === true && Data) {\n const dt = JSON.parse(Data);\n member.Ts = dt.Ts;\n member.MemberState.Id = memberEnumState.loss;\n handleChange && handleChange(member);\n Message.success('挂失成功。')\n } else {\n Message.error(\"挂失失败:\" + Msg)\n }\n }).catch(e => {\n console.log('err', e);\n })\n },\n onCancel() {\n },\n onHide: () => {\n }\n })\n }\n //取消注销卡\n cancelLoss = () => {\n if(!this.api) return;\n let { member,handleChange, memberEnumState } = this.props;\n ModalWraper.confirm({\n title: '提示',\n content: '确定要取消挂失该会员卡吗?',\n onOk: async () => {\n this.api.UnRecordLoss(member).then(ret => {\n const { Success, Msg, Data } = ret;\n if (Success === true && Data) {\n const dt = JSON.parse(Data);\n member.Ts = dt.Ts;\n member.MemberState.Id = memberEnumState.using;\n handleChange && handleChange(member);\n Message.success('取消挂失成功。')\n } else {\n Message.error(\"取消挂失败:\" + Msg)\n }\n }).catch(e => {\n console.log('err', e);\n })\n },\n onCancel() {\n },\n onHide: () => {\n }\n })\n }\n\n // 开卡\n openCard = () => {\n const { member, loadUserInfo, selected, memberEnumState } = this.props;\n const { ID, MemberType: { IsStorage } } = member || {};\n memberStore.GetMemberDTO(ID, false).then((ret) => {\n stores.selectMemberStore.setCurMemberInfo(ret)\n stores.modalRouter.show({\n url: '/AA/OPENCARD',\n title: '开卡',\n className: 'memberAddModal',\n modalType: 'big',\n onHide: () => stores.modalRouter.hide('/AA/OPENCARD'),\n closeCk: () => {\n member.MemberState.Id = memberEnumState.using;\n // loadUserInfo(selected, ID, member, true, true);\n }\n })\n Loading.hide();\n })\n stores.modalRouter.show({\n url: '/AA/OPENCARD',\n title: '开卡',\n className: 'memberAddModal',\n modalType: 'big',\n destroyOnClose: true,\n onHide: () => stores.modalRouter.hide('/AA/OPENCARD'),\n closeCk: () => {\n member.MemberState.Id = memberEnumState.using;\n // loadUserInfo(selected, ID, member, true, true);\n },\n onHide: () => {\n }\n })\n Loading.hide();\n }\n\n // 点击绑卡\n bindCard = () => {\n this.setState({ bindCardShow: true})\n }\n\n // 点击关闭绑卡\n changeBindCardCancel = () => {\n this.setState({\n bindCardShow: false,\n bindCardBtnDisabled: true\n })\n }\n\n // 修改绑卡disabled\n changeBindCardBtnDisabled = (disabled) => {\n this.setState({\n bindCardBtnDisabled: disabled\n })\n }\n\n // 点击绑卡确定按钮\n bindCardClick = () => {\n if (this.bindCardRef) {\n const { storeKey } = this.props\n this.bindCardFn(this.bindCardRef.state)\n }\n }\n\n // MeStorageCard > gridTemplateUser > MeStorageCard.cardbatchExport\n // 绑卡确定按钮\n async bindCardFn (state) {\n const { value, password } = state\n const { member = {}, loadUserInfo, selected } = this.props\n const { ID } = member || {};\n const params = {\n cardNo: value,\n cardPwd: password,\n memberId: ID,\n isStorageCardBindMember:false\n }\n const ret = await this.api.MeStorageCardBind(params)\n Message.success('绑定成功')\n loadUserInfo(selected, ID, member, true, true)\n this.setState({\n bindCardShow: false\n })\n }\n\n click(key, auth, name) {\n this.setState({\n warnContent: ''\n })\n this.handleEvent(auth).then(ret=>{\n if (key === 'storage') {\n this.setState({\n menuKey: 'storage'\n })\n } else {\n this.setState({\n menuKey: null\n })\n }\n if (ret === true) {\n const { isHorizontalSunMi } = platform || {};\n switch (key) {\n case 'storage': this.storage(); break;\n case 'changePassword': this.changePassword(); break;\n case 'reportLoss': this.reportLoss(); break;\n case 'cancelLoss': this.cancelLoss(); break;\n case 'openCard': this.openCard(); break;\n case 'resetPassword': this.resetPassword(); break;\n case 'bindCard': this.bindCard(); break;\n }\n }\n })\n }\n\n jusIsAllAuthority(count) {\n const { changeIsAllAuthority } = this.props\n if (!count) {\n changeIsAllAuthority && changeIsAllAuthority()\n }\n }\n\n changeBtnDisabled = (value) => {\n this.setState({\n btnDissabled: value\n })\n }\n\n getMenuItem = (index, menu) => {\n let { member, loadingBtn} = this.props;\n const { setPwdShortKey } = this.state || {};\n const voucherDefaultPosMode = localStore && localStore.get('voucherDefaultPosMode') || 'touch'\n let newStyle = voucherDefaultPosMode=='voucher';\n // 控制显示修改密码还是设置密码\n if (menu.auth === 'ModifyPassword') {\n return <div key={index} className={`primary-color b-theme ${'hot-'+ menu.auth} ${loadingBtn === false ? 'member-menu-el' : 'member-menu-el disabled-member-select-btn '} ${newStyle && 'memberHeight'}`}\n onClick={() => {\n if (loadingBtn === false) this.click(menu.key, menu.auth)\n }}\n >\n {\n member.WalletEnabled ? <div><Ticon icon={menu.icon}></Ticon><span>修改密码</span><div className='menuHotkey'>{menu.SHORTCUT_KEY}</div></div> :\n <div><Ticon icon={menu.icon}></Ticon><span>设置密码</span><div className='menuHotkey'>{setPwdShortKey}</div></div>\n }\n </div>\n } else if (!member.WalletEnabled && menu.auth === 'PosResetPwd') {\n return;\n } else {\n return (\n <div\n key={index}\n className={`primary-color b-theme ${'hot-'+ menu.auth} ${loadingBtn === false ? 'member-menu-el' : 'member-menu-el disabled-member-select-btn '} ${newStyle && 'memberHeight'}`}\n onClick={() => {\n if (loadingBtn === false) this.click(menu.key, menu.auth, menu.name)\n }}\n >\n <Ticon icon={menu.icon}></Ticon><span>{menu.name}</span>\n <div className='menuHotkey'>{menu.SHORTCUT_KEY}</div>\n </div>\n )\n }\n }\n\n render() {\n const { menus, modifyPass, passwordTitle, btnDissabled, bindCardShow, bindCardBtnDisabled, refundShow, menuKey } = this.state;\n let { member, authProcess, loadUserInfo, selected, modifyMember, cardList = []} = this.props;\n const {id, storageBalanceAmount, presentAmount } = cardList[0] || {}\n return (\n <div className='member-menu'>\n {\n menus && menus.map((menu,index) => {\n let status = authProcess.execute(menu.auth);\n if (status) {\n return this.getMenuItem(index, menu)\n } else {\n if (menu.auth === 'ModifyPassword') {\n return this.getMenuItem(index, menu);\n } else if (menu.auth === 'bindCard') {\n return this.getMenuItem(index, menu);\n } else {\n return '';\n }\n }\n })\n }\n <ModalWraper\n title={!member.WalletEnabled ? '设置密码' : passwordTitle}\n show={modifyPass}\n ok={this.changePasswordClick}\n className='modify-password'\n modalType='mid'\n closeButton={true}\n exclueBoard={true}\n cancel={this.changePasswordCancel}\n btnDissabled={btnDissabled}\n >\n {\n passwordTitle === '换卡' ?\n <ChangeMemberCard modifyMember={modifyMember} member={member} ref={ref => this.modifyPass = ref} cancelModal={this.changePasswordCancel}></ChangeMemberCard>:\n <ModifyPass status='member' menuKey={menuKey} changeBtnDisabled={this.changeBtnDisabled} loadUserInfo={loadUserInfo} selected={selected} storageInit={this.storageInit} passwordTitle={\n !member.WalletEnabled ? '设置密码' : passwordTitle\n } ref={ref => this.modifyPass = ref} member={member} cardList={member} cancelModal={this.changePasswordCancel}></ModifyPass>\n }\n </ModalWraper>\n {/* 绑卡 */}\n <ModalWraper\n title=\"绑卡\"\n show={bindCardShow}\n className='bind-card'\n closeButton={false}\n ok={this.bindCardClick}\n cancel={this.changeBindCardCancel}\n btnDissabled={bindCardBtnDisabled}\n >\n <BindCard\n ref={ref => this.bindCardRef = ref}\n bindCardClick={this.bindCardClick}\n changeBindCardBtnDisabled={this.changeBindCardBtnDisabled}\n />\n </ModalWraper>\n {/* 绑卡 */}\n </div>\n )\n }\n}"]}
@@ -1034,7 +1034,7 @@ var _default = (0, _mutantsMicrofx.observer)(_class = (_temp = _class2 = functio
1034
1034
  },
1035
1035
  passwordTitle === '换卡' ? _react2.default.createElement(_changeMemberCard2.default, { cardList: cardList && cardList.length && cardList[selected], modifyMember: modifyMember, member: member, ref: function ref(_ref24) {
1036
1036
  return _this5.modifyPass = _ref24;
1037
- }, cancelModal: this.changePasswordCancel }) : _react2.default.createElement(_tplusComponentsTouch.ModifyPass, { menuKey: menuKey, cardListCopy: cardList, cardList: cardList && cardList.length && cardList[selected], changeBtnDisabled: this.changeBtnDisabled, getCardList: getCardList, selected: selected, storageInit: this.storageInit, passwordTitle: CardTypeEnum === 'BALANCE_CARD' && !WalletEnabled ? '设置密码' : passwordTitle, ref: function ref(_ref25) {
1037
+ }, cancelModal: this.changePasswordCancel }) : _react2.default.createElement(_tplusComponentsTouch.ModifyPass, { status: 'storage', menuKey: menuKey, cardListCopy: cardList, cardList: cardList && cardList.length && cardList[selected], changeBtnDisabled: this.changeBtnDisabled, getCardList: getCardList, selected: selected, storageInit: this.storageInit, passwordTitle: CardTypeEnum === 'BALANCE_CARD' && !WalletEnabled ? '设置密码' : passwordTitle, ref: function ref(_ref25) {
1038
1038
  return _this5.modifyPass = _ref25;
1039
1039
  }, member: member, cancelModal: this.changePasswordCancel })
1040
1040
  ),
@@ -1 +1 @@
1
- {"version":3,"sources":["tplus-member/member/memberMenuStorage/index.js"],"names":["menus1","key","name","visible","icon","auth","SHORTCUT_KEY","display","finish","semi","menus","observer","props","title","subKey","state","modifyPass","passwordTitle","btnDissabled","warnContent","setPwdShortKey","bindCardShow","bindCardBtnDisabled","menuKey","refundShow","refundTitle","memberUnBindCardLoading","refundBtnDisabled","lastesStorageResult","api","MemberStore","changeDisplay","setting_setData","localStore","get","JSON","parse","localStorage","getItem","length","forEach","settingItem","ParamType","Name","Value","storeKey","item","setState","setTimeout","changeState","flag","filterMenus","member","memberEnumState","list","MemberState","Id","notusing","loss","filter","menu","cardList","selected","controllerEvent","memberDto","operationName","card","viewM","context","viewModel","getViewItem","AuthType","CardStatusEnum","Message","warn","cardInfo","CardTypeEnum","WalletEnabled","FreePaymentPasswordStore","storageInit","justifyAuthority","data","IsNeedPassword","value","getCardList","StorageCardNo","params","cardNo","mobile","isStorageCardBindMember","changeBindCardBtnDisabled","MeStorageCardBind","ret","success","MemberMobile","enumController","getEnumOj","TradeType","dto","StorageMutiSettleDetails","pay","v","ThirdPaymentInfo","payment","VoucherType","Payment","REFUND","console","log","resolve","reject","nativeMs","setIpcRendererMethod","res","Code","type","msg","code","storageAmount","stores","memberStore","settlementMemberStore","MeStorageCardId","ID","PresentAmount","BalanceStorage","loadUserInfo","isCanRefund","canReturnAmount","storageInfos","Member","dtMember","isSelectedMember","StorageDetails","Idmember","ThisStorageAmount","StorageType","meStorageCardId","isPresentGiftpack","ThisPresentAmount","redBlueFlagEnum","tradeTypeEnum","finAccountId","paymentTypeId","latestStorageAmount","outTradeNo","StorageAmount","PaymentCode","DynamicPropertyValues","IdbankAccount","IdsettleStyle","DynamicPropertyKeys","DataSource","OrigPayAmount","OrigTradeNo","map","dynamic","thirdPaymentReturnInfo","getThirdPaymentInfo","thirdPayRefund","ReturnedStorage","isSuccess","ex","returnedCash","content","that","ModalWraper","confirm","okText","onOk","submitRefundStorage","handleEvent","then","platform","isHorizontalSunMi","storage","changePassword","reportLoss","cancelLoss","openCard","resetPassword","bindCard","memberUnBindCard","returnedStorage","authProcess","modifyMember","usedPresentAmount","index","status","execute","getMenuItem","changePasswordClick","changePasswordCancel","ref","changeBtnDisabled","bindCardClick","changeBindCardCancel","bindCardRef","changeRefundOk","changeRefundCancel","Component","contextTypes","onEvent","PropTypes","func","object","tags","indexOf","methodName","methodArgs","Action","fromJS","init","settlementControlEvent","onSettleSuccess","modalRouter","hide","callback","show","url","className","memberClass","onHide","handleOk","handleCancel","handleChange","this","Success","Msg","Data","dt","Ts","error","catch","e","onCancel","UnRecordLoss","using","MemberType","IsStorage","GetMemberDTO","selectMemberStore","setCurMemberInfo","modalType","closeCk","Loading","destroyOnClose","disabled","bindCardFn","refundable","parseFloat","Number","reduce","total","cur","tstore","obj","paymode","mode","paymodes","find","idSettleStyle","thridPayment","ThirdPaymentReturnInfo","getLatestStorageAmount","cardId","inputRefundAmount","meMemberId","isRefundStorage","MemberName","confirmLoading","MeStorageCardUnbind","loadingBtn","voucherDefaultPosMode","newStyle","click"],"mappings":"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","file":"index.js","sourcesContent":["import React, { Component } from 'react';\nimport { observer, stores,nativeMs } from \"mutants-microfx\"\nimport { Action } from 'mutants-appfx'\nimport { toJS } from 'mobx';\nimport './style.less';\nimport { Ticon, ModalWraper, Message,Loading,ModifyPass } from 'tplus-components-touch'\nimport { platform, localStore, enumController } from 'mutants-util';\nimport { formatPrecision, getFixedNumber } from '../../utils'\nimport ChangeMemberCard from './changeMemberCard'\nimport { PropTypes } from 'prop-types'\nimport MemberStore from '../api';\nimport BindCard from './bindCard'\n\nlet menus1 = [{\n key: 'storage',\n name: '储值',\n visible: true,\n icon: 'chuzhi',\n auth:'MemberStorage',\n SHORTCUT_KEY: ''\n}, {\n key: 'returnedStorage',\n name: '退储值',\n visible: true,\n icon: 'tuichuzhi',\n auth:'RefundStorage',\n SHORTCUT_KEY: ''\n}, {\n key: 'changePassword',\n name: '修改密码',\n visible: true,\n icon: 'xiugaimima1',\n auth:'ModifyPassword',\n SHORTCUT_KEY: ''\n},\n// {\n// key: 'reportLoss',\n// name: '挂失',\n// visible: true,\n// icon: 'guashi',\n// auth:'RecordLoss'\n\n// },\n {\n key: 'cancelLoss',\n name: '取消挂失',\n visible: true,\n icon: 'quxiaoguashi',\n auth:'RecordLoss',\n SHORTCUT_KEY: ''\n}, {\n key: 'resetPassword',\n name: '重置密码',\n visible: true,\n icon: 'chongzhimima',\n auth:'PosResetPwd',\n SHORTCUT_KEY: ''\n},{\n key: 'memberBindCard',\n name: '会员绑定',\n visible: true,\n icon: 'huiyuanbangding',\n auth:'BindStorageCard',\n SHORTCUT_KEY: ''\n},\n{\n key: 'memberUnBindCard',\n name: '解绑',\n visible: true,\n icon: 'jiebang',\n auth:'BindStorageCard',\n SHORTCUT_KEY: ''\n}\n]\nconst display = {\n finish: ['storage', 'changePassword', 'reportLoss', 'cancelLoss'],\n semi: ['openCard']\n}\n\nlet menus = [];\n@observer\nexport default class extends Component {\n \n constructor(props) {\n super(props)\n let { title, subKey } = props;\n this.state = {\n menus: menus1,\n modifyPass: false,\n passwordTitle: '换卡',\n btnDissabled: true,\n warnContent: '',\n setPwdShortKey: '',\n bindCardShow: false, // 是否显示会员绑卡,默认否\n bindCardBtnDisabled: true, // 会员绑卡确定按钮disabled\n menuKey: null, // 用来判断是否是储值,设置密码的时候使用\n refundShow: false, // 是否显示退储值,默认否\n refundTitle: '退储值', // 退储值名称\n memberUnBindCardLoading: false, // 解绑按钮loadong\n refundBtnDisabled: false, // 退储值disabled\n lastesStorageResult: {} // 最后一次储值的信息\n }\n this.api = MemberStore;\n }\n\n static contextTypes = {\n onEvent: PropTypes.func,\n viewModel: PropTypes.object,\n stores: PropTypes.object\n }\n\n componentWillMount() {\n this.changeDisplay('finish')\n }\n\n componentDidMount() {\n let setting_setData = localStore.get(\"setting_setData\");\n if(setting_setData == null){ \n setting_setData = JSON.parse(localStorage.getItem(\"setting_setData\"));\n }\n if(setting_setData && setting_setData.length != 0){\n setting_setData.forEach((settingItem)=>{\n if(settingItem.ParamType && settingItem.ParamType === \"SHORTCUT_KEY\"){\n const { Name, Value} = settingItem || {};\n const { title, storeKey } = this.props;\n menus = (menus1);\n menus.forEach((item) => {\n if (item.auth === Name) {\n item.SHORTCUT_KEY = Value;\n }\n })\n if (Name === 'MemberSetPassword') {\n this.setState({\n setPwdShortKey: Value\n })\n }\n }\n })\n }\n setTimeout(() => { this.changeState() }, 0)\n }\n\n componentWillReceiveProps() {\n this.changeState()\n }\n\n filterMenus = (tags) => {\n const { title, storeKey } = this.props;\n menus = (menus1);\n return menus.filter((menu) => {\n return ~tags.indexOf(menu.key)\n })\n }\n\n changeDisplay(flag = 'finish') {\n const menus = this.filterMenus(display[flag])\n this.setState({ menus });\n }\n\n changeState() {\n let { member, memberEnumState } = this.props;\n const { title, storeKey } = this.props;\n let list = (menus1);;\n\n if (member && member.MemberState) {\n if(member.MemberState.Id == memberEnumState.notusing){\n this.changeDisplay('semi')\n return;\n }\n this.changeDisplay('finish')\n if (member.MemberState.Id == memberEnumState.loss) {\n list = menus.filter((menu) => {\n return menu.key !== 'reportLoss'&&menu.key !== 'openCard'\n })\n }else{\n list = menus.filter((menu) => {\n return menu.key !== 'cancelLoss'&&menu.key !== 'openCard'\n })\n }\n }\n this.setState({ menus: list })\n }\n\n controllerEvent = (methodName, methodArgs) => {\n return this.context.onEvent({ 'controllerEvent': Action.fromJS(this.context.viewModel, methodName) }, 'controllerEvent', methodArgs);\n }\n\n async handleEvent(auth) {\n const { cardList = [], selected = 0 } = this.props;\n await this.controllerEvent('ValidateOperationName', { memberDto: cardList && cardList.length && cardList[selected], operationName: auth, card: 'card' });\n let viewM = this.context.viewModel.getViewItem('Voucher');\n if (viewM && viewM.AuthType === false) {\n return false;\n } else {\n return true;\n }\n }\n\n async justifyAuthority() {\n const { cardList = [], selected = 0, } = this.props;\n const {CardStatusEnum} = cardList[selected] || {};\n if (CardStatusEnum === 'DISABLED') {\n Message.warn('该储值卡未启用,不能进行该操作!');\n return false;\n } else if (CardStatusEnum === 'REFUNDED_CARD') {\n Message.warn('该储值卡已退卡,不能进行该操作!');\n return false;\n } else if(CardStatusEnum === 'REFUNDING_CARD') {\n Message.warn('该储值卡退卡中,不能进行该操作!');\n return false;\n } else if (CardStatusEnum === 'INVALIDATION') {\n Message.warn('该储值卡已失效,不能进行该操作!');\n return false;\n } else if (CardStatusEnum === 'EXPIRED') {\n Message.warn('该储值卡已过期,不能进行该操作!');\n return false;\n }\n }\n\n async storage() {\n const { cardList = [], selected = 0, } = this.props;\n if (cardList && cardList.length) {\n let cardInfo = cardList[selected];\n const {CardTypeEnum, WalletEnabled, FreePaymentPasswordStore} = cardInfo || {};\n if (CardTypeEnum === 'BALANCE_CARD') {\n if (FreePaymentPasswordStore || WalletEnabled) {\n this.storageInit();\n } else {\n this.setState({ modifyPass: true, passwordTitle: '设置密码', warnContent: '' });\n } \n } else {\n let data = await this.justifyAuthority();\n if (data === false) {\n return;\n }\n this.storageInit(); \n }\n }\n }\n\n storageInit = () => {\n const { cardList = [], getCardList, selected = 0, loadUserInfo } = this.props;\n const { StorageCardNo, ID } = cardList[selected] || {};\n const { data: { Member: dtMember = {} } = {} } = this.context.viewModel || {};\n const isSelectedMember = !!dtMember.ID;\n stores.memberStore.init({\n cardInfo: cardList[selected],\n settlementControlEvent: {\n onSettleSuccess: () => {\n stores.modalRouter.hide('/memberstore')\n if (!!isSelectedMember && dtMember.ID === ID) {\n loadUserInfo(ID)\n }\n getCardList(cardList && cardList.length > 1 ? cardList[0].MemberMobile : StorageCardNo)\n }\n },\n callback: () => {\n stores.modalRouter.show({\n url: '/memberstore',\n title: '储值',\n className: 'memberContainer1',\n memberClass:'memberClassWidth',\n onHide: () => {\n stores.modalRouter.hide('/memberstore')\n } \n })\n }\n })\n }\n\n //修改密码\n changePasswordClick = () => {\n if (this.modifyPass) this.modifyPass.handleOk()\n }\n // 修改密码\n async changePassword() {\n let data = await this.justifyAuthority();\n if (data === false) {\n return;\n }\n const { cardList = [], selected = 0 } = this.props\n const {IsNeedPassword, CardTypeEnum} = cardList[selected] || {}\n if (CardTypeEnum !== 'BALANCE_CARD' && !IsNeedPassword) {\n Message.warn(\"此卡没启用密码!\");\n return;\n }\n this.setState({ modifyPass: true, passwordTitle: '修改密码' });\n }\n\n // 重置密码\n async resetPassword() {\n let data = await this.justifyAuthority();\n if (data === false) {\n return;\n }\n const { cardList = [], selected = 0 } = this.props\n const {IsNeedPassword, CardTypeEnum} = cardList[selected] || {}\n if (CardTypeEnum !== 'BALANCE_CARD' && !IsNeedPassword) {\n Message.warn(\"此卡没启用密码!\");\n return;\n }\n this.setState({ modifyPass: true, passwordTitle: '重置密码' });\n }\n\n changePasswordCancel = () => {\n this.setState({ modifyPass: false })\n this.modifyPass.handleCancel();\n }\n\n // 注销卡\n reportLoss = () => {\n let { member, handleChange, memberEnumState } = this.props;\n ModalWraper.confirm({\n title: '提示',\n content: '确定要挂失该会员卡吗?',\n onOk: async () => {\n this.api.this.api(member).then(ret => {\n const { Success, Msg, Data } = ret;\n if (Success === true && Data) {\n const dt = JSON.parse(Data);\n member.Ts = dt.Ts;\n member.MemberState.Id = memberEnumState.loss;\n handleChange && handleChange(member);\n Message.success('挂失成功。')\n } else {\n Message.error(\"挂失失败:\" + Msg)\n }\n }).catch(e => {\n console.log('err', e);\n })\n },\n onCancel() {\n },\n onHide: () => { \n }\n })\n }\n //取消注销卡\n cancelLoss = () => {\n if(!this.api) return;\n let { member,handleChange, memberEnumState } = this.props;\n ModalWraper.confirm({\n title: '提示',\n content: '确定要取消挂失该会员卡吗?',\n onOk: async () => {\n this.api.UnRecordLoss(member).then(ret => {\n const { Success, Msg, Data } = ret;\n if (Success === true && Data) {\n const dt = JSON.parse(Data);\n member.Ts = dt.Ts;\n member.MemberState.Id = memberEnumState.using;\n handleChange && handleChange(member);\n Message.success('取消挂失成功。')\n } else {\n Message.error(\"取消挂失败:\" + Msg)\n }\n }).catch(e => {\n console.log('err', e);\n })\n },\n onCancel() {\n },\n onHide: () => { \n }\n })\n }\n\n // 开卡\n openCard = () => {\n const { member, selected = 0, memberEnumState } = this.props;\n const { ID, MemberType: { IsStorage } = {} } = member || {};\n memberStore.GetMemberDTO(ID, false).then((ret) => {\n stores.selectMemberStore.setCurMemberInfo(ret)\n stores.modalRouter.show({\n url: '/AA/OPENCARD',\n title: '开卡',\n className: 'memberAddModal',\n modalType: 'big',\n onHide: () => stores.modalRouter.hide('/AA/OPENCARD'),\n closeCk: () => {\n member.MemberState.Id = memberEnumState.using;\n }\n\n\n })\n Loading.hide();\n })\n stores.modalRouter.show({\n url: '/AA/OPENCARD',\n title: '开卡',\n className: 'memberAddModal',\n modalType: 'big',\n destroyOnClose: true,\n onHide: () => stores.modalRouter.hide('/AA/OPENCARD'),\n closeCk: () => {\n member.MemberState.Id = memberEnumState.using;\n },\n onHide: () => { \n }\n })\n Loading.hide();\n } \n\n // 点击会员绑卡\n bindCard = async () => {\n let data = await this.justifyAuthority();\n if (data === false) {\n return;\n }\n const { cardList = [], selected = 0 } = this.props\n const {ID} = cardList[selected] || {}\n if (!!ID) {\n Message.error('该储值卡已经绑定,不能再次进行绑定')\n return\n }\n this.setState({ bindCardShow: true})\n }\n\n // 点击关闭绑卡\n changeBindCardCancel = async () => {\n let data = await this.justifyAuthority();\n if (data === false) {\n return;\n }\n this.setState({\n bindCardShow: false,\n bindCardBtnDisabled: true\n })\n }\n\n // 修改会员绑卡disabled\n changeBindCardBtnDisabled = (disabled) => {\n this.setState({\n bindCardBtnDisabled: disabled\n })\n }\n\n // 点击会员绑卡确定按钮\n bindCardClick = () => {\n if (this.bindCardRef) {\n const { storeKey } = this.props\n this.bindCardFn(this.bindCardRef.state)\n }\n }\n\n // MeStorageCard > gridTemplateUser > MeStorageCard.cardbatchExport\n // 绑卡/会员绑卡确定按钮后,如果是会员绑卡\n async bindCardFn (state) {\n const { value } = state\n const { getCardList, cardList = [], selected = 0} = this.props\n const {StorageCardNo} = cardList[selected] || {}\n const params = {\n cardNo: StorageCardNo,\n mobile: value,\n isStorageCardBindMember: true\n }\n this.changeBindCardBtnDisabled(true)\n try {\n const ret = await this.api.MeStorageCardBind(params)\n this.changeBindCardBtnDisabled(false)\n Message.success('绑定成功')\n getCardList(cardList && cardList.length > 1 ? cardList[0].MemberMobile : StorageCardNo)\n this.setState({\n bindCardShow: false\n })\n } catch (err) {\n this.changeBindCardBtnDisabled(false)\n }\n }\n\n // 点击退储值的取消按钮\n changeRefundCancel = () => {\n this.setState({\n refundShow: false,\n })\n }\n\n\n // 点击退储值的确定按钮\n changeRefundOk = async () => {\n const { cardList = [], selected = 0 } = this.props\n const {MeStorageCardId, BalanceStorage = 0, PresentAmount = 0, StorageCardNo, ID} = (cardList.length && cardList[selected]) || {};\n \n const {isCanRefund = false, canReturnAmount = 0, storageInfos = []} = this.state.lastesStorageResult || {}\n const refundable = parseFloat(getFixedNumber(canReturnAmount))\n const storageAmount = getFixedNumber(0-(canReturnAmount))\n\n // 退款金额小于等于0,不允许退款\n if (Number(canReturnAmount) <= 0) {\n Message.error('无可退金额,不支持退款!')\n return\n }\n\n // 返回的isCanRefund如果是false,不支持原路退回,弹出退现金提示\n if (!isCanRefund) {\n this.returnedCash(`只能退现金,是否继续`, storageAmount)\n return\n }\n\n // 计算最后一次储值的总金额,\n const latestStorageAmount = storageInfos.reduce((total, cur) => total + cur.latestStorageAmount, 0)\n // 退款只支持退最后一次储值的金额,如果最后一次储值的金额小于可退金额,弹出提示。\n if (latestStorageAmount && latestStorageAmount < refundable) {\n this.returnedCash(`退款大于最后一次储值金额,无法原路退回,只可退现金!是否退款?`, storageAmount)\n return\n }\n \n this.submitRefundStorage(cardList[selected], storageAmount)\n }\n\n // 获取二开支付信息,如果有的话返回。\n getThirdPaymentInfo = (item, tstore) => {\n const { paymentTypeId, thirdPaymentReturnInfo } = item || {};\n let obj = {};\n let paymode = tstore && tstore.paymode;\n if (paymode) {\n let mode = paymode && paymode.paymodes.find(v => v.idSettleStyle == paymentTypeId)\n obj = thirdPaymentReturnInfo ?\n {\n ThirdPaymentInfo: mode && mode.thridPayment || null,\n ThirdPaymentReturnInfo: thirdPaymentReturnInfo\n } : {};\n }\n return obj;\n }\n\n // 执行储值退款\n async thirdPayRefund(params) {\n try {\n const { TradeType } = enumController.getEnumOj();\n const dto = params.StorageMutiSettleDetails;\n const pay = dto && dto.filter(v => v.ThirdPaymentInfo);\n if (pay && pay.length > 0) {\n const payment = pay[0];\n const params = { VoucherType: 2, Payment: payment, TradeType: TradeType.REFUND, dto: dto };\n console.log('退储值刷卡参数:', JSON.stringify(params));\n let ret = await new Promise((resolve, reject) => {\n nativeMs.setIpcRendererMethod('ThirdPayment', { ...params }, res => {\n return resolve(res);\n })\n })\n console.log('退储值刷卡返回:', ret);\n ret = JSON.parse(ret);\n const { Code, Message } = ret || {};\n if (Code > 0) {\n return { type: false, msg: Message, code: Code };\n } else {\n return { type: true, msg: Message, code: Code };\n }\n }\n return { type: true};\n }\n catch (ex) {\n return { type: false,msg: ex, code: '9999' }\n }\n }\n\n // 点击退储值确定或者退现金之后,请求数据 isCash, 是否是现金结算\n async submitRefundStorage(cardInfo = {}, storageAmount) {\n if (!cardInfo) return;\n const { memberStore, settlementMemberStore } = stores || {};\n const { data = {} } = memberStore;\n const { MeStorageCardId, StorageCardNo, ID, PresentAmount = 0, BalanceStorage = 0} = cardInfo\n const { getCardList, cardList = [], loadUserInfo} = this.props \n const { isCanRefund = false, canReturnAmount = 0, storageInfos = [] } = this.state.lastesStorageResult || {}\n const { data: { Member: dtMember = {} } = {} } = this.context.viewModel || {};\n const isSelectedMember = !!dtMember.ID;\n const params = {\n ...data,\n StorageDetails: [{\n Idmember: ID,\n ThisStorageAmount: storageAmount,\n StorageType: {},\n meStorageCardId: MeStorageCardId,\n isPresentGiftpack: data.StorageDetails[0].isPresentGiftpack,\n ThisPresentAmount: getFixedNumber(0-(BalanceStorage - canReturnAmount))\n }],\n redBlueFlagEnum: 'RED',\n storageAmount: storageAmount,\n tradeTypeEnum: 'REFUND_CARD'\n }\n\n // 如果isCanRefund是false的话,说明是需要退现金,入参的计算方式明细金额是需要退的总金额\n if (!isCanRefund) {\n const { finAccountId, paymentTypeId, latestStorageAmount, outTradeNo } = storageInfos[0] || {}\n params.StorageMutiSettleDetails = [{\n StorageAmount: storageAmount,\n PaymentCode: \"\",\n DynamicPropertyValues: [],\n IdbankAccount: finAccountId,\n Code: 1,\n IdsettleStyle: paymentTypeId,\n DynamicPropertyKeys: [],\n DataSource: {},\n OrigPayAmount: latestStorageAmount,\n OrigTradeNo: outTradeNo\n }]\n } else {\n params.StorageMutiSettleDetails = storageInfos.map(item => {\n let dynamic = item.thirdPaymentReturnInfo ? this.getThirdPaymentInfo(item, settlementMemberStore) : {};\n return {\n StorageAmount: '-' + item.latestStorageAmount,\n PaymentCode: \"\",\n DynamicPropertyValues: [],\n IdbankAccount: item.finAccountId,\n Code: 1,\n IdsettleStyle: item.paymentTypeId,\n DynamicPropertyKeys: [],\n DataSource: {},\n OrigPayAmount: item.latestStorageAmount,\n OrigTradeNo: item.outTradeNo,\n ...dynamic\n }\n })\n }\n\n // 二开支付处理\n let ret = await this.thirdPayRefund(params);\n const { type, code } = ret || {};\n if (type === false) {\n Message.warn(`刷卡支付失败,错误码:${code}`);\n return;\n }\n\n await this.setState({\n refundBtnDisabled: true\n })\n try {\n const ret = await this.api.ReturnedStorage(params)\n const { isSuccess, ex } = ret.data || {}\n if (isSuccess === true || isSuccess === 'true') {\n if (!!isSelectedMember && dtMember.ID === ID) {\n loadUserInfo(ID)\n }\n getCardList && getCardList(cardList && cardList.length > 1 ? cardList[0].MemberMobile : StorageCardNo)\n Message.success('退储值成功!')\n } else {\n this.returnedCash(`只能退现金,是否继续`, storageAmount)\n }\n \n await this.setState({\n refundBtnDisabled: false,\n refundShow: false\n })\n } catch (err) {\n await this.setState({\n refundBtnDisabled: false\n })\n }\n }\n // 退现金提示\n returnedCash (content, storageAmount) {\n const that = this\n ModalWraper.confirm({\n title: '提示',\n content,\n okText: '现金',\n onOk: () => {\n const {cardList = [], selected} = that.props\n that.setState({\n refundShow: false\n })\n that.submitRefundStorage(cardList[selected], storageAmount)\n }\n })\n }\n // 点击退储值\n returnedStorage = async () => {\n let data = await this.justifyAuthority();\n if (data === false) {\n return;\n }\n const { cardList = [], selected = 0 } = this.props\n const { Id, MeStorageCardId, BalanceStorage = 0, PresentAmount = 0 } = cardList[selected] || {}\n\n // 获取最后一次储值信息\n const refundable = parseFloat(getFixedNumber(BalanceStorage - PresentAmount))\n const lastesStorageResult = await this.api.getLatestStorageAmount({cardId: MeStorageCardId, inputRefundAmount: refundable})\n this.setState({\n lastesStorageResult: lastesStorageResult.data || {}\n })\n\n cardList[selected].meMemberId = Id\n cardList[selected].isRefundStorage = 1 // 自己添加参数,用来判断是储值还是退储值\n stores.memberStore.init({\n cardInfo: cardList[selected],\n settlementControlEvent: {},\n callback: () => {\n this.setState({\n refundShow: true\n })\n }\n })\n }\n // 点击解绑\n memberUnBindCard = async () => {\n let data = await this.justifyAuthority();\n if (data === false) {\n return;\n }\n const { cardList = [], selected = 0 } = this.props\n const {StorageCardNo, MemberMobile, MemberName, ID} = cardList[selected] || {}\n if (!ID) {\n Message.error('该卡未绑定会员')\n return\n }\n ModalWraper.confirm({\n title: '提示',\n content: `此卡属于${MemberName || MemberMobile}会员,确认解绑吗?`,\n confirmLoading: this.state.memberUnBindCardLoading,\n onOk: async () => {\n this.setState({\n memberUnBindCardLoading: true\n })\n this.api.MeStorageCardUnbind({StorageCardNo}).then(res => {\n const { getCardList } = this.props\n Message.success('解绑成功')\n getCardList(cardList && cardList.length > 1 ? cardList[0].MemberMobile : StorageCardNo)\n this.setState({\n memberUnBindCardLoading: false\n })\n }).catch(() => {\n this.setState({\n memberUnBindCardLoading: false\n })\n })\n },\n })\n }\n click(key, auth, name) {\n this.setState({\n warnContent: ''\n })\n this.handleEvent(auth).then(ret=>{\n if (key === 'storage') {\n this.setState({\n menuKey: 'storage'\n })\n } else {\n this.setState({\n menuKey: null\n })\n }\n if (ret === true) {\n const { isHorizontalSunMi } = platform || {};\n switch (key) {\n case 'storage': this.storage(); break;\n case 'changePassword': this.changePassword(); break;\n case 'reportLoss': this.reportLoss(); break;\n case 'cancelLoss': this.cancelLoss(); break;\n case 'openCard': this.openCard(); break;\n case 'resetPassword': this.resetPassword(); break;\n case 'memberBindCard': this.bindCard(key, name); break;\n case 'memberUnBindCard': this.memberUnBindCard(); break;\n case 'returnedStorage': this.returnedStorage(); break;\n }\n }\n })\n }\n\n changeBtnDisabled = (value) => {\n this.setState({\n btnDissabled: value\n })\n }\n\n getMenuItem = (index, menu) => {\n let {loadingBtn, cardList = [], selected = 0} = this.props;\n const { setPwdShortKey } = this.state || {};\n const voucherDefaultPosMode = localStore && localStore.get('voucherDefaultPosMode') || 'touch'\n let newStyle = voucherDefaultPosMode=='voucher';\n const { WalletEnabled, CardTypeEnum } = cardList && cardList.length && cardList[selected] || {};\n // 控制显示修改密码还是设置密码\n if (menu.auth === 'ModifyPassword') {\n if (CardTypeEnum === 'BALANCE_CARD') {\n return <div key={index} className={`primary-color b-theme ${'hot-'+ menu.auth} ${loadingBtn === false ? 'member-menu-el' : 'member-menu-el disabled-member-select-btn '} ${newStyle && 'memberHeight'}`}\n onClick={() => {\n if (loadingBtn === false) this.click(menu.key, menu.auth)\n }}\n >\n {WalletEnabled ? <div><Ticon icon={menu.icon}></Ticon><span>修改密码</span><div className='menuHotkey'>{menu.SHORTCUT_KEY}</div></div> : \n <div><Ticon icon={menu.icon}></Ticon><span>设置密码</span><div className='menuHotkey'>{setPwdShortKey}</div></div>}\n </div>\n } else {\n return <div key={index} className={`primary-color b-theme ${'hot-'+ menu.auth} ${loadingBtn === false ? 'member-menu-el' : 'member-menu-el disabled-member-select-btn '} ${newStyle && 'memberHeight'}`}\n onClick={() => {\n if (loadingBtn === false) this.click(menu.key, menu.auth)\n }}\n >\n <div><Ticon icon={menu.icon}></Ticon><span>修改密码</span><div className='menuHotkey'>{menu.SHORTCUT_KEY}</div></div>\n </div>\n }\n } else if (CardTypeEnum === 'BALANCE_CARD' && !WalletEnabled && menu.auth === 'PosResetPwd') {\n return\n }\n else {\n return (\n <div \n key={index} \n className={`primary-color b-theme ${'hot-'+ menu.auth} ${loadingBtn === false ? 'member-menu-el' : 'member-menu-el disabled-member-select-btn '} ${newStyle && 'memberHeight'}`}\n onClick={() => {\n if (loadingBtn === false) this.click(menu.key, menu.auth, menu.name)\n }}\n >\n <Ticon icon={menu.icon}></Ticon><span>{menu.name}</span>\n <div className='menuHotkey'>{menu.SHORTCUT_KEY}</div>\n </div>\n )\n }\n }\n\n render() {\n const { menus, modifyPass, passwordTitle, btnDissabled, bindCardShow, bindCardBtnDisabled, refundShow, refundBtnDisabled, menuKey, lastesStorageResult = {} } = this.state;\n let { member = {}, authProcess, getCardList, selected = 0, modifyMember, cardList = []} = this.props;\n const {Id, BalanceStorage = 0, PresentAmount = 0, WalletEnabled, CardTypeEnum, CardStatusEnum, StorageCardNo } = (cardList.length && cardList[selected]) || {};\n const { canReturnAmount, usedPresentAmount } = lastesStorageResult\n\n return (\n <div className='member-menu'>\n {\n menus && menus.map((menu,index) => {\n let status = authProcess.execute(menu.auth);\n if (status) {\n if (menu.auth === 'BindStorageCard') {\n if (menu.key === 'memberBindCard' && CardTypeEnum !== 'BALANCE_CARD' && CardStatusEnum && CardStatusEnum === 'UNBINDING') {\n return this.getMenuItem(index, menu);\n }\n if (menu.key === 'memberUnBindCard' && CardTypeEnum !== 'BALANCE_CARD' && CardStatusEnum && CardStatusEnum === 'BINDING') {\n return this.getMenuItem(index, menu);\n }\n } else {\n return this.getMenuItem(index, menu)\n }\n } else {\n if (menu.auth === 'ModifyPassword') {\n return this.getMenuItem(index, menu);\n } else if (menu.auth === 'returnedStorage') {\n return this.getMenuItem(index, menu);\n } else {\n return '';\n }\n }\n })\n }\n <ModalWraper\n title={CardTypeEnum === 'BALANCE_CARD' && !WalletEnabled ? '设置密码' : passwordTitle}\n show={modifyPass}\n ok={this.changePasswordClick}\n className='modify-password'\n modalType='mid'\n closeButton={true}\n exclueBoard={true}\n cancel={this.changePasswordCancel}\n btnDissabled={btnDissabled}\n >\n {\n passwordTitle === '换卡' ?\n <ChangeMemberCard cardList={cardList && cardList.length && cardList[selected]} modifyMember={modifyMember} member={member} ref={ref => this.modifyPass = ref} cancelModal={this.changePasswordCancel}></ChangeMemberCard>:\n <ModifyPass menuKey={menuKey} cardListCopy={cardList} cardList={cardList && cardList.length && cardList[selected]} changeBtnDisabled={this.changeBtnDisabled} getCardList={getCardList} selected={selected} storageInit={this.storageInit} passwordTitle={\n CardTypeEnum === 'BALANCE_CARD' && !WalletEnabled ? '设置密码' : passwordTitle\n } ref={ref => this.modifyPass = ref} member={member} cancelModal={this.changePasswordCancel}></ModifyPass>\n }\n </ModalWraper>\n {/* 会员绑定 */}\n <ModalWraper \n title='会员绑定'\n show={bindCardShow}\n className='bind-card'\n closeButton={false}\n ok={this.bindCardClick}\n cancel={this.changeBindCardCancel}\n btnDissabled={bindCardBtnDisabled}\n >\n <BindCard\n ref={ref => this.bindCardRef = ref}\n bindCardClick={this.bindCardClick}\n changeBindCardBtnDisabled={this.changeBindCardBtnDisabled}\n />\n </ModalWraper>\n {/* 会员绑定 */}\n {/* 退储值 */}\n <ModalWraper \n title='退储值'\n show={refundShow}\n className='refund'\n modalType=\"mid\"\n closeButton={false}\n ok={this.changeRefundOk}\n cancel={this.changeRefundCancel}\n btnDissabled={refundBtnDisabled}\n >\n <div className='refund-container'>\n <ul className='refund-list'>\n <li className='refund-item'>\n <span className='title'>储值卡号:</span>\n <span className='value'>{StorageCardNo}</span>\n </li>\n <li className='refund-item'>\n <span className='title'>储值余额:</span>\n <span className='value'>{formatPrecision(BalanceStorage, 2)}</span>\n </li>\n <li className='refund-item'>\n <span className='title'>赠送金额:</span>\n <span className='value'>{getFixedNumber(PresentAmount + usedPresentAmount)}</span>\n </li>\n <li className='refund-item'>\n <span className='title'>可退金额:</span>\n <span className='value special'>{ getFixedNumber(canReturnAmount) }</span>\n </li>\n </ul> \n <p className='tips'>注:可退金额 = 储值余额-赠送金。(仅支持将最近一次储值金额原路退回到微信或支付宝,若超出时请退现金!)</p>\n </div> \n </ModalWraper>\n {/* 退储值 */}\n </div>\n )\n }\n}"]}
1
+ {"version":3,"sources":["tplus-member/member/memberMenuStorage/index.js"],"names":["menus1","key","name","visible","icon","auth","SHORTCUT_KEY","display","finish","semi","menus","observer","props","title","subKey","state","modifyPass","passwordTitle","btnDissabled","warnContent","setPwdShortKey","bindCardShow","bindCardBtnDisabled","menuKey","refundShow","refundTitle","memberUnBindCardLoading","refundBtnDisabled","lastesStorageResult","api","MemberStore","changeDisplay","setting_setData","localStore","get","JSON","parse","localStorage","getItem","length","forEach","settingItem","ParamType","Name","Value","storeKey","item","setState","setTimeout","changeState","flag","filterMenus","member","memberEnumState","list","MemberState","Id","notusing","loss","filter","menu","cardList","selected","controllerEvent","memberDto","operationName","card","viewM","context","viewModel","getViewItem","AuthType","CardStatusEnum","Message","warn","cardInfo","CardTypeEnum","WalletEnabled","FreePaymentPasswordStore","storageInit","justifyAuthority","data","IsNeedPassword","value","getCardList","StorageCardNo","params","cardNo","mobile","isStorageCardBindMember","changeBindCardBtnDisabled","MeStorageCardBind","ret","success","MemberMobile","enumController","getEnumOj","TradeType","dto","StorageMutiSettleDetails","pay","v","ThirdPaymentInfo","payment","VoucherType","Payment","REFUND","console","log","resolve","reject","nativeMs","setIpcRendererMethod","res","Code","type","msg","code","storageAmount","stores","memberStore","settlementMemberStore","MeStorageCardId","ID","PresentAmount","BalanceStorage","loadUserInfo","isCanRefund","canReturnAmount","storageInfos","Member","dtMember","isSelectedMember","StorageDetails","Idmember","ThisStorageAmount","StorageType","meStorageCardId","isPresentGiftpack","ThisPresentAmount","redBlueFlagEnum","tradeTypeEnum","finAccountId","paymentTypeId","latestStorageAmount","outTradeNo","StorageAmount","PaymentCode","DynamicPropertyValues","IdbankAccount","IdsettleStyle","DynamicPropertyKeys","DataSource","OrigPayAmount","OrigTradeNo","map","dynamic","thirdPaymentReturnInfo","getThirdPaymentInfo","thirdPayRefund","ReturnedStorage","isSuccess","ex","returnedCash","content","that","ModalWraper","confirm","okText","onOk","submitRefundStorage","handleEvent","then","platform","isHorizontalSunMi","storage","changePassword","reportLoss","cancelLoss","openCard","resetPassword","bindCard","memberUnBindCard","returnedStorage","authProcess","modifyMember","usedPresentAmount","index","status","execute","getMenuItem","changePasswordClick","changePasswordCancel","ref","changeBtnDisabled","bindCardClick","changeBindCardCancel","bindCardRef","changeRefundOk","changeRefundCancel","Component","contextTypes","onEvent","PropTypes","func","object","tags","indexOf","methodName","methodArgs","Action","fromJS","init","settlementControlEvent","onSettleSuccess","modalRouter","hide","callback","show","url","className","memberClass","onHide","handleOk","handleCancel","handleChange","this","Success","Msg","Data","dt","Ts","error","catch","e","onCancel","UnRecordLoss","using","MemberType","IsStorage","GetMemberDTO","selectMemberStore","setCurMemberInfo","modalType","closeCk","Loading","destroyOnClose","disabled","bindCardFn","refundable","parseFloat","Number","reduce","total","cur","tstore","obj","paymode","mode","paymodes","find","idSettleStyle","thridPayment","ThirdPaymentReturnInfo","getLatestStorageAmount","cardId","inputRefundAmount","meMemberId","isRefundStorage","MemberName","confirmLoading","MeStorageCardUnbind","loadingBtn","voucherDefaultPosMode","newStyle","click"],"mappings":"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","file":"index.js","sourcesContent":["import React, { Component } from 'react';\nimport { observer, stores,nativeMs } from \"mutants-microfx\"\nimport { Action } from 'mutants-appfx'\nimport { toJS } from 'mobx';\nimport './style.less';\nimport { Ticon, ModalWraper, Message,Loading,ModifyPass } from 'tplus-components-touch'\nimport { platform, localStore, enumController } from 'mutants-util';\nimport { formatPrecision, getFixedNumber } from '../../utils'\nimport ChangeMemberCard from './changeMemberCard'\nimport { PropTypes } from 'prop-types'\nimport MemberStore from '../api';\nimport BindCard from './bindCard'\n\nlet menus1 = [{\n key: 'storage',\n name: '储值',\n visible: true,\n icon: 'chuzhi',\n auth:'MemberStorage',\n SHORTCUT_KEY: ''\n}, {\n key: 'returnedStorage',\n name: '退储值',\n visible: true,\n icon: 'tuichuzhi',\n auth:'RefundStorage',\n SHORTCUT_KEY: ''\n}, {\n key: 'changePassword',\n name: '修改密码',\n visible: true,\n icon: 'xiugaimima1',\n auth:'ModifyPassword',\n SHORTCUT_KEY: ''\n},\n// {\n// key: 'reportLoss',\n// name: '挂失',\n// visible: true,\n// icon: 'guashi',\n// auth:'RecordLoss'\n\n// },\n {\n key: 'cancelLoss',\n name: '取消挂失',\n visible: true,\n icon: 'quxiaoguashi',\n auth:'RecordLoss',\n SHORTCUT_KEY: ''\n}, {\n key: 'resetPassword',\n name: '重置密码',\n visible: true,\n icon: 'chongzhimima',\n auth:'PosResetPwd',\n SHORTCUT_KEY: ''\n},{\n key: 'memberBindCard',\n name: '会员绑定',\n visible: true,\n icon: 'huiyuanbangding',\n auth:'BindStorageCard',\n SHORTCUT_KEY: ''\n},\n{\n key: 'memberUnBindCard',\n name: '解绑',\n visible: true,\n icon: 'jiebang',\n auth:'BindStorageCard',\n SHORTCUT_KEY: ''\n}\n]\nconst display = {\n finish: ['storage', 'changePassword', 'reportLoss', 'cancelLoss'],\n semi: ['openCard']\n}\n\nlet menus = [];\n@observer\nexport default class extends Component {\n \n constructor(props) {\n super(props)\n let { title, subKey } = props;\n this.state = {\n menus: menus1,\n modifyPass: false,\n passwordTitle: '换卡',\n btnDissabled: true,\n warnContent: '',\n setPwdShortKey: '',\n bindCardShow: false, // 是否显示会员绑卡,默认否\n bindCardBtnDisabled: true, // 会员绑卡确定按钮disabled\n menuKey: null, // 用来判断是否是储值,设置密码的时候使用\n refundShow: false, // 是否显示退储值,默认否\n refundTitle: '退储值', // 退储值名称\n memberUnBindCardLoading: false, // 解绑按钮loadong\n refundBtnDisabled: false, // 退储值disabled\n lastesStorageResult: {} // 最后一次储值的信息\n }\n this.api = MemberStore;\n }\n\n static contextTypes = {\n onEvent: PropTypes.func,\n viewModel: PropTypes.object,\n stores: PropTypes.object\n }\n\n componentWillMount() {\n this.changeDisplay('finish')\n }\n\n componentDidMount() {\n let setting_setData = localStore.get(\"setting_setData\");\n if(setting_setData == null){ \n setting_setData = JSON.parse(localStorage.getItem(\"setting_setData\"));\n }\n if(setting_setData && setting_setData.length != 0){\n setting_setData.forEach((settingItem)=>{\n if(settingItem.ParamType && settingItem.ParamType === \"SHORTCUT_KEY\"){\n const { Name, Value} = settingItem || {};\n const { title, storeKey } = this.props;\n menus = (menus1);\n menus.forEach((item) => {\n if (item.auth === Name) {\n item.SHORTCUT_KEY = Value;\n }\n })\n if (Name === 'MemberSetPassword') {\n this.setState({\n setPwdShortKey: Value\n })\n }\n }\n })\n }\n setTimeout(() => { this.changeState() }, 0)\n }\n\n componentWillReceiveProps() {\n this.changeState()\n }\n\n filterMenus = (tags) => {\n const { title, storeKey } = this.props;\n menus = (menus1);\n return menus.filter((menu) => {\n return ~tags.indexOf(menu.key)\n })\n }\n\n changeDisplay(flag = 'finish') {\n const menus = this.filterMenus(display[flag])\n this.setState({ menus });\n }\n\n changeState() {\n let { member, memberEnumState } = this.props;\n const { title, storeKey } = this.props;\n let list = (menus1);;\n\n if (member && member.MemberState) {\n if(member.MemberState.Id == memberEnumState.notusing){\n this.changeDisplay('semi')\n return;\n }\n this.changeDisplay('finish')\n if (member.MemberState.Id == memberEnumState.loss) {\n list = menus.filter((menu) => {\n return menu.key !== 'reportLoss'&&menu.key !== 'openCard'\n })\n }else{\n list = menus.filter((menu) => {\n return menu.key !== 'cancelLoss'&&menu.key !== 'openCard'\n })\n }\n }\n this.setState({ menus: list })\n }\n\n controllerEvent = (methodName, methodArgs) => {\n return this.context.onEvent({ 'controllerEvent': Action.fromJS(this.context.viewModel, methodName) }, 'controllerEvent', methodArgs);\n }\n\n async handleEvent(auth) {\n const { cardList = [], selected = 0 } = this.props;\n await this.controllerEvent('ValidateOperationName', { memberDto: cardList && cardList.length && cardList[selected], operationName: auth, card: 'card' });\n let viewM = this.context.viewModel.getViewItem('Voucher');\n if (viewM && viewM.AuthType === false) {\n return false;\n } else {\n return true;\n }\n }\n\n async justifyAuthority() {\n const { cardList = [], selected = 0, } = this.props;\n const {CardStatusEnum} = cardList[selected] || {};\n if (CardStatusEnum === 'DISABLED') {\n Message.warn('该储值卡未启用,不能进行该操作!');\n return false;\n } else if (CardStatusEnum === 'REFUNDED_CARD') {\n Message.warn('该储值卡已退卡,不能进行该操作!');\n return false;\n } else if(CardStatusEnum === 'REFUNDING_CARD') {\n Message.warn('该储值卡退卡中,不能进行该操作!');\n return false;\n } else if (CardStatusEnum === 'INVALIDATION') {\n Message.warn('该储值卡已失效,不能进行该操作!');\n return false;\n } else if (CardStatusEnum === 'EXPIRED') {\n Message.warn('该储值卡已过期,不能进行该操作!');\n return false;\n }\n }\n\n async storage() {\n const { cardList = [], selected = 0, } = this.props;\n if (cardList && cardList.length) {\n let cardInfo = cardList[selected];\n const {CardTypeEnum, WalletEnabled, FreePaymentPasswordStore} = cardInfo || {};\n if (CardTypeEnum === 'BALANCE_CARD') {\n if (FreePaymentPasswordStore || WalletEnabled) {\n this.storageInit();\n } else {\n this.setState({ modifyPass: true, passwordTitle: '设置密码', warnContent: '' });\n } \n } else {\n let data = await this.justifyAuthority();\n if (data === false) {\n return;\n }\n this.storageInit(); \n }\n }\n }\n\n storageInit = () => {\n const { cardList = [], getCardList, selected = 0, loadUserInfo } = this.props;\n const { StorageCardNo, ID } = cardList[selected] || {};\n const { data: { Member: dtMember = {} } = {} } = this.context.viewModel || {};\n const isSelectedMember = !!dtMember.ID;\n stores.memberStore.init({\n cardInfo: cardList[selected],\n settlementControlEvent: {\n onSettleSuccess: () => {\n stores.modalRouter.hide('/memberstore')\n if (!!isSelectedMember && dtMember.ID === ID) {\n loadUserInfo(ID)\n }\n getCardList(cardList && cardList.length > 1 ? cardList[0].MemberMobile : StorageCardNo)\n }\n },\n callback: () => {\n stores.modalRouter.show({\n url: '/memberstore',\n title: '储值',\n className: 'memberContainer1',\n memberClass:'memberClassWidth',\n onHide: () => {\n stores.modalRouter.hide('/memberstore')\n } \n })\n }\n })\n }\n\n //修改密码\n changePasswordClick = () => {\n if (this.modifyPass) this.modifyPass.handleOk()\n }\n // 修改密码\n async changePassword() {\n let data = await this.justifyAuthority();\n if (data === false) {\n return;\n }\n const { cardList = [], selected = 0 } = this.props\n const {IsNeedPassword, CardTypeEnum} = cardList[selected] || {}\n if (CardTypeEnum !== 'BALANCE_CARD' && !IsNeedPassword) {\n Message.warn(\"此卡没启用密码!\");\n return;\n }\n this.setState({ modifyPass: true, passwordTitle: '修改密码' });\n }\n\n // 重置密码\n async resetPassword() {\n let data = await this.justifyAuthority();\n if (data === false) {\n return;\n }\n const { cardList = [], selected = 0 } = this.props\n const {IsNeedPassword, CardTypeEnum} = cardList[selected] || {}\n if (CardTypeEnum !== 'BALANCE_CARD' && !IsNeedPassword) {\n Message.warn(\"此卡没启用密码!\");\n return;\n }\n this.setState({ modifyPass: true, passwordTitle: '重置密码' });\n }\n\n changePasswordCancel = () => {\n this.setState({ modifyPass: false })\n this.modifyPass.handleCancel();\n }\n\n // 注销卡\n reportLoss = () => {\n let { member, handleChange, memberEnumState } = this.props;\n ModalWraper.confirm({\n title: '提示',\n content: '确定要挂失该会员卡吗?',\n onOk: async () => {\n this.api.this.api(member).then(ret => {\n const { Success, Msg, Data } = ret;\n if (Success === true && Data) {\n const dt = JSON.parse(Data);\n member.Ts = dt.Ts;\n member.MemberState.Id = memberEnumState.loss;\n handleChange && handleChange(member);\n Message.success('挂失成功。')\n } else {\n Message.error(\"挂失失败:\" + Msg)\n }\n }).catch(e => {\n console.log('err', e);\n })\n },\n onCancel() {\n },\n onHide: () => { \n }\n })\n }\n //取消注销卡\n cancelLoss = () => {\n if(!this.api) return;\n let { member,handleChange, memberEnumState } = this.props;\n ModalWraper.confirm({\n title: '提示',\n content: '确定要取消挂失该会员卡吗?',\n onOk: async () => {\n this.api.UnRecordLoss(member).then(ret => {\n const { Success, Msg, Data } = ret;\n if (Success === true && Data) {\n const dt = JSON.parse(Data);\n member.Ts = dt.Ts;\n member.MemberState.Id = memberEnumState.using;\n handleChange && handleChange(member);\n Message.success('取消挂失成功。')\n } else {\n Message.error(\"取消挂失败:\" + Msg)\n }\n }).catch(e => {\n console.log('err', e);\n })\n },\n onCancel() {\n },\n onHide: () => { \n }\n })\n }\n\n // 开卡\n openCard = () => {\n const { member, selected = 0, memberEnumState } = this.props;\n const { ID, MemberType: { IsStorage } = {} } = member || {};\n memberStore.GetMemberDTO(ID, false).then((ret) => {\n stores.selectMemberStore.setCurMemberInfo(ret)\n stores.modalRouter.show({\n url: '/AA/OPENCARD',\n title: '开卡',\n className: 'memberAddModal',\n modalType: 'big',\n onHide: () => stores.modalRouter.hide('/AA/OPENCARD'),\n closeCk: () => {\n member.MemberState.Id = memberEnumState.using;\n }\n\n\n })\n Loading.hide();\n })\n stores.modalRouter.show({\n url: '/AA/OPENCARD',\n title: '开卡',\n className: 'memberAddModal',\n modalType: 'big',\n destroyOnClose: true,\n onHide: () => stores.modalRouter.hide('/AA/OPENCARD'),\n closeCk: () => {\n member.MemberState.Id = memberEnumState.using;\n },\n onHide: () => { \n }\n })\n Loading.hide();\n } \n\n // 点击会员绑卡\n bindCard = async () => {\n let data = await this.justifyAuthority();\n if (data === false) {\n return;\n }\n const { cardList = [], selected = 0 } = this.props\n const {ID} = cardList[selected] || {}\n if (!!ID) {\n Message.error('该储值卡已经绑定,不能再次进行绑定')\n return\n }\n this.setState({ bindCardShow: true})\n }\n\n // 点击关闭绑卡\n changeBindCardCancel = async () => {\n let data = await this.justifyAuthority();\n if (data === false) {\n return;\n }\n this.setState({\n bindCardShow: false,\n bindCardBtnDisabled: true\n })\n }\n\n // 修改会员绑卡disabled\n changeBindCardBtnDisabled = (disabled) => {\n this.setState({\n bindCardBtnDisabled: disabled\n })\n }\n\n // 点击会员绑卡确定按钮\n bindCardClick = () => {\n if (this.bindCardRef) {\n const { storeKey } = this.props\n this.bindCardFn(this.bindCardRef.state)\n }\n }\n\n // MeStorageCard > gridTemplateUser > MeStorageCard.cardbatchExport\n // 绑卡/会员绑卡确定按钮后,如果是会员绑卡\n async bindCardFn (state) {\n const { value } = state\n const { getCardList, cardList = [], selected = 0} = this.props\n const {StorageCardNo} = cardList[selected] || {}\n const params = {\n cardNo: StorageCardNo,\n mobile: value,\n isStorageCardBindMember: true\n }\n this.changeBindCardBtnDisabled(true)\n try {\n const ret = await this.api.MeStorageCardBind(params)\n this.changeBindCardBtnDisabled(false)\n Message.success('绑定成功')\n getCardList(cardList && cardList.length > 1 ? cardList[0].MemberMobile : StorageCardNo)\n this.setState({\n bindCardShow: false\n })\n } catch (err) {\n this.changeBindCardBtnDisabled(false)\n }\n }\n\n // 点击退储值的取消按钮\n changeRefundCancel = () => {\n this.setState({\n refundShow: false,\n })\n }\n\n\n // 点击退储值的确定按钮\n changeRefundOk = async () => {\n const { cardList = [], selected = 0 } = this.props\n const {MeStorageCardId, BalanceStorage = 0, PresentAmount = 0, StorageCardNo, ID} = (cardList.length && cardList[selected]) || {};\n \n const {isCanRefund = false, canReturnAmount = 0, storageInfos = []} = this.state.lastesStorageResult || {}\n const refundable = parseFloat(getFixedNumber(canReturnAmount))\n const storageAmount = getFixedNumber(0-(canReturnAmount))\n\n // 退款金额小于等于0,不允许退款\n if (Number(canReturnAmount) <= 0) {\n Message.error('无可退金额,不支持退款!')\n return\n }\n\n // 返回的isCanRefund如果是false,不支持原路退回,弹出退现金提示\n if (!isCanRefund) {\n this.returnedCash(`只能退现金,是否继续`, storageAmount)\n return\n }\n\n // 计算最后一次储值的总金额,\n const latestStorageAmount = storageInfos.reduce((total, cur) => total + cur.latestStorageAmount, 0)\n // 退款只支持退最后一次储值的金额,如果最后一次储值的金额小于可退金额,弹出提示。\n if (latestStorageAmount && latestStorageAmount < refundable) {\n this.returnedCash(`退款大于最后一次储值金额,无法原路退回,只可退现金!是否退款?`, storageAmount)\n return\n }\n \n this.submitRefundStorage(cardList[selected], storageAmount)\n }\n\n // 获取二开支付信息,如果有的话返回。\n getThirdPaymentInfo = (item, tstore) => {\n const { paymentTypeId, thirdPaymentReturnInfo } = item || {};\n let obj = {};\n let paymode = tstore && tstore.paymode;\n if (paymode) {\n let mode = paymode && paymode.paymodes.find(v => v.idSettleStyle == paymentTypeId)\n obj = thirdPaymentReturnInfo ?\n {\n ThirdPaymentInfo: mode && mode.thridPayment || null,\n ThirdPaymentReturnInfo: thirdPaymentReturnInfo\n } : {};\n }\n return obj;\n }\n\n // 执行储值退款\n async thirdPayRefund(params) {\n try {\n const { TradeType } = enumController.getEnumOj();\n const dto = params.StorageMutiSettleDetails;\n const pay = dto && dto.filter(v => v.ThirdPaymentInfo);\n if (pay && pay.length > 0) {\n const payment = pay[0];\n const params = { VoucherType: 2, Payment: payment, TradeType: TradeType.REFUND, dto: dto };\n console.log('退储值刷卡参数:', JSON.stringify(params));\n let ret = await new Promise((resolve, reject) => {\n nativeMs.setIpcRendererMethod('ThirdPayment', { ...params }, res => {\n return resolve(res);\n })\n })\n console.log('退储值刷卡返回:', ret);\n ret = JSON.parse(ret);\n const { Code, Message } = ret || {};\n if (Code > 0) {\n return { type: false, msg: Message, code: Code };\n } else {\n return { type: true, msg: Message, code: Code };\n }\n }\n return { type: true};\n }\n catch (ex) {\n return { type: false,msg: ex, code: '9999' }\n }\n }\n\n // 点击退储值确定或者退现金之后,请求数据 isCash, 是否是现金结算\n async submitRefundStorage(cardInfo = {}, storageAmount) {\n if (!cardInfo) return;\n const { memberStore, settlementMemberStore } = stores || {};\n const { data = {} } = memberStore;\n const { MeStorageCardId, StorageCardNo, ID, PresentAmount = 0, BalanceStorage = 0} = cardInfo\n const { getCardList, cardList = [], loadUserInfo} = this.props \n const { isCanRefund = false, canReturnAmount = 0, storageInfos = [] } = this.state.lastesStorageResult || {}\n const { data: { Member: dtMember = {} } = {} } = this.context.viewModel || {};\n const isSelectedMember = !!dtMember.ID;\n const params = {\n ...data,\n StorageDetails: [{\n Idmember: ID,\n ThisStorageAmount: storageAmount,\n StorageType: {},\n meStorageCardId: MeStorageCardId,\n isPresentGiftpack: data.StorageDetails[0].isPresentGiftpack,\n ThisPresentAmount: getFixedNumber(0-(BalanceStorage - canReturnAmount))\n }],\n redBlueFlagEnum: 'RED',\n storageAmount: storageAmount,\n tradeTypeEnum: 'REFUND_CARD'\n }\n\n // 如果isCanRefund是false的话,说明是需要退现金,入参的计算方式明细金额是需要退的总金额\n if (!isCanRefund) {\n const { finAccountId, paymentTypeId, latestStorageAmount, outTradeNo } = storageInfos[0] || {}\n params.StorageMutiSettleDetails = [{\n StorageAmount: storageAmount,\n PaymentCode: \"\",\n DynamicPropertyValues: [],\n IdbankAccount: finAccountId,\n Code: 1,\n IdsettleStyle: paymentTypeId,\n DynamicPropertyKeys: [],\n DataSource: {},\n OrigPayAmount: latestStorageAmount,\n OrigTradeNo: outTradeNo\n }]\n } else {\n params.StorageMutiSettleDetails = storageInfos.map(item => {\n let dynamic = item.thirdPaymentReturnInfo ? this.getThirdPaymentInfo(item, settlementMemberStore) : {};\n return {\n StorageAmount: '-' + item.latestStorageAmount,\n PaymentCode: \"\",\n DynamicPropertyValues: [],\n IdbankAccount: item.finAccountId,\n Code: 1,\n IdsettleStyle: item.paymentTypeId,\n DynamicPropertyKeys: [],\n DataSource: {},\n OrigPayAmount: item.latestStorageAmount,\n OrigTradeNo: item.outTradeNo,\n ...dynamic\n }\n })\n }\n\n // 二开支付处理\n let ret = await this.thirdPayRefund(params);\n const { type, code } = ret || {};\n if (type === false) {\n Message.warn(`刷卡支付失败,错误码:${code}`);\n return;\n }\n\n await this.setState({\n refundBtnDisabled: true\n })\n try {\n const ret = await this.api.ReturnedStorage(params)\n const { isSuccess, ex } = ret.data || {}\n if (isSuccess === true || isSuccess === 'true') {\n if (!!isSelectedMember && dtMember.ID === ID) {\n loadUserInfo(ID)\n }\n getCardList && getCardList(cardList && cardList.length > 1 ? cardList[0].MemberMobile : StorageCardNo)\n Message.success('退储值成功!')\n } else {\n this.returnedCash(`只能退现金,是否继续`, storageAmount)\n }\n \n await this.setState({\n refundBtnDisabled: false,\n refundShow: false\n })\n } catch (err) {\n await this.setState({\n refundBtnDisabled: false\n })\n }\n }\n // 退现金提示\n returnedCash (content, storageAmount) {\n const that = this\n ModalWraper.confirm({\n title: '提示',\n content,\n okText: '现金',\n onOk: () => {\n const {cardList = [], selected} = that.props\n that.setState({\n refundShow: false\n })\n that.submitRefundStorage(cardList[selected], storageAmount)\n }\n })\n }\n // 点击退储值\n returnedStorage = async () => {\n let data = await this.justifyAuthority();\n if (data === false) {\n return;\n }\n const { cardList = [], selected = 0 } = this.props\n const { Id, MeStorageCardId, BalanceStorage = 0, PresentAmount = 0 } = cardList[selected] || {}\n\n // 获取最后一次储值信息\n const refundable = parseFloat(getFixedNumber(BalanceStorage - PresentAmount))\n const lastesStorageResult = await this.api.getLatestStorageAmount({cardId: MeStorageCardId, inputRefundAmount: refundable})\n this.setState({\n lastesStorageResult: lastesStorageResult.data || {}\n })\n\n cardList[selected].meMemberId = Id\n cardList[selected].isRefundStorage = 1 // 自己添加参数,用来判断是储值还是退储值\n stores.memberStore.init({\n cardInfo: cardList[selected],\n settlementControlEvent: {},\n callback: () => {\n this.setState({\n refundShow: true\n })\n }\n })\n }\n // 点击解绑\n memberUnBindCard = async () => {\n let data = await this.justifyAuthority();\n if (data === false) {\n return;\n }\n const { cardList = [], selected = 0 } = this.props\n const {StorageCardNo, MemberMobile, MemberName, ID} = cardList[selected] || {}\n if (!ID) {\n Message.error('该卡未绑定会员')\n return\n }\n ModalWraper.confirm({\n title: '提示',\n content: `此卡属于${MemberName || MemberMobile}会员,确认解绑吗?`,\n confirmLoading: this.state.memberUnBindCardLoading,\n onOk: async () => {\n this.setState({\n memberUnBindCardLoading: true\n })\n this.api.MeStorageCardUnbind({StorageCardNo}).then(res => {\n const { getCardList } = this.props\n Message.success('解绑成功')\n getCardList(cardList && cardList.length > 1 ? cardList[0].MemberMobile : StorageCardNo)\n this.setState({\n memberUnBindCardLoading: false\n })\n }).catch(() => {\n this.setState({\n memberUnBindCardLoading: false\n })\n })\n },\n })\n }\n click(key, auth, name) {\n this.setState({\n warnContent: ''\n })\n this.handleEvent(auth).then(ret=>{\n if (key === 'storage') {\n this.setState({\n menuKey: 'storage'\n })\n } else {\n this.setState({\n menuKey: null\n })\n }\n if (ret === true) {\n const { isHorizontalSunMi } = platform || {};\n switch (key) {\n case 'storage': this.storage(); break;\n case 'changePassword': this.changePassword(); break;\n case 'reportLoss': this.reportLoss(); break;\n case 'cancelLoss': this.cancelLoss(); break;\n case 'openCard': this.openCard(); break;\n case 'resetPassword': this.resetPassword(); break;\n case 'memberBindCard': this.bindCard(key, name); break;\n case 'memberUnBindCard': this.memberUnBindCard(); break;\n case 'returnedStorage': this.returnedStorage(); break;\n }\n }\n })\n }\n\n changeBtnDisabled = (value) => {\n this.setState({\n btnDissabled: value\n })\n }\n\n getMenuItem = (index, menu) => {\n let {loadingBtn, cardList = [], selected = 0} = this.props;\n const { setPwdShortKey } = this.state || {};\n const voucherDefaultPosMode = localStore && localStore.get('voucherDefaultPosMode') || 'touch'\n let newStyle = voucherDefaultPosMode=='voucher';\n const { WalletEnabled, CardTypeEnum } = cardList && cardList.length && cardList[selected] || {};\n // 控制显示修改密码还是设置密码\n if (menu.auth === 'ModifyPassword') {\n if (CardTypeEnum === 'BALANCE_CARD') {\n return <div key={index} className={`primary-color b-theme ${'hot-'+ menu.auth} ${loadingBtn === false ? 'member-menu-el' : 'member-menu-el disabled-member-select-btn '} ${newStyle && 'memberHeight'}`}\n onClick={() => {\n if (loadingBtn === false) this.click(menu.key, menu.auth)\n }}\n >\n {WalletEnabled ? <div><Ticon icon={menu.icon}></Ticon><span>修改密码</span><div className='menuHotkey'>{menu.SHORTCUT_KEY}</div></div> : \n <div><Ticon icon={menu.icon}></Ticon><span>设置密码</span><div className='menuHotkey'>{setPwdShortKey}</div></div>}\n </div>\n } else {\n return <div key={index} className={`primary-color b-theme ${'hot-'+ menu.auth} ${loadingBtn === false ? 'member-menu-el' : 'member-menu-el disabled-member-select-btn '} ${newStyle && 'memberHeight'}`}\n onClick={() => {\n if (loadingBtn === false) this.click(menu.key, menu.auth)\n }}\n >\n <div><Ticon icon={menu.icon}></Ticon><span>修改密码</span><div className='menuHotkey'>{menu.SHORTCUT_KEY}</div></div>\n </div>\n }\n } else if (CardTypeEnum === 'BALANCE_CARD' && !WalletEnabled && menu.auth === 'PosResetPwd') {\n return\n }\n else {\n return (\n <div \n key={index} \n className={`primary-color b-theme ${'hot-'+ menu.auth} ${loadingBtn === false ? 'member-menu-el' : 'member-menu-el disabled-member-select-btn '} ${newStyle && 'memberHeight'}`}\n onClick={() => {\n if (loadingBtn === false) this.click(menu.key, menu.auth, menu.name)\n }}\n >\n <Ticon icon={menu.icon}></Ticon><span>{menu.name}</span>\n <div className='menuHotkey'>{menu.SHORTCUT_KEY}</div>\n </div>\n )\n }\n }\n\n render() {\n const { menus, modifyPass, passwordTitle, btnDissabled, bindCardShow, bindCardBtnDisabled, refundShow, refundBtnDisabled, menuKey, lastesStorageResult = {} } = this.state;\n let { member = {}, authProcess, getCardList, selected = 0, modifyMember, cardList = []} = this.props;\n const {Id, BalanceStorage = 0, PresentAmount = 0, WalletEnabled, CardTypeEnum, CardStatusEnum, StorageCardNo } = (cardList.length && cardList[selected]) || {};\n const { canReturnAmount, usedPresentAmount } = lastesStorageResult\n\n return (\n <div className='member-menu'>\n {\n menus && menus.map((menu,index) => {\n let status = authProcess.execute(menu.auth);\n if (status) {\n if (menu.auth === 'BindStorageCard') {\n if (menu.key === 'memberBindCard' && CardTypeEnum !== 'BALANCE_CARD' && CardStatusEnum && CardStatusEnum === 'UNBINDING') {\n return this.getMenuItem(index, menu);\n }\n if (menu.key === 'memberUnBindCard' && CardTypeEnum !== 'BALANCE_CARD' && CardStatusEnum && CardStatusEnum === 'BINDING') {\n return this.getMenuItem(index, menu);\n }\n } else {\n return this.getMenuItem(index, menu)\n }\n } else {\n if (menu.auth === 'ModifyPassword') {\n return this.getMenuItem(index, menu);\n } else if (menu.auth === 'returnedStorage') {\n return this.getMenuItem(index, menu);\n } else {\n return '';\n }\n }\n })\n }\n <ModalWraper\n title={CardTypeEnum === 'BALANCE_CARD' && !WalletEnabled ? '设置密码' : passwordTitle}\n show={modifyPass}\n ok={this.changePasswordClick}\n className='modify-password'\n modalType='mid'\n closeButton={true}\n exclueBoard={true}\n cancel={this.changePasswordCancel}\n btnDissabled={btnDissabled}\n >\n {\n passwordTitle === '换卡' ?\n <ChangeMemberCard cardList={cardList && cardList.length && cardList[selected]} modifyMember={modifyMember} member={member} ref={ref => this.modifyPass = ref} cancelModal={this.changePasswordCancel}></ChangeMemberCard>:\n <ModifyPass status='storage' menuKey={menuKey} cardListCopy={cardList} cardList={cardList && cardList.length && cardList[selected]} changeBtnDisabled={this.changeBtnDisabled} getCardList={getCardList} selected={selected} storageInit={this.storageInit} passwordTitle={\n CardTypeEnum === 'BALANCE_CARD' && !WalletEnabled ? '设置密码' : passwordTitle\n } ref={ref => this.modifyPass = ref} member={member} cancelModal={this.changePasswordCancel}></ModifyPass>\n }\n </ModalWraper>\n {/* 会员绑定 */}\n <ModalWraper \n title='会员绑定'\n show={bindCardShow}\n className='bind-card'\n closeButton={false}\n ok={this.bindCardClick}\n cancel={this.changeBindCardCancel}\n btnDissabled={bindCardBtnDisabled}\n >\n <BindCard\n ref={ref => this.bindCardRef = ref}\n bindCardClick={this.bindCardClick}\n changeBindCardBtnDisabled={this.changeBindCardBtnDisabled}\n />\n </ModalWraper>\n {/* 会员绑定 */}\n {/* 退储值 */}\n <ModalWraper \n title='退储值'\n show={refundShow}\n className='refund'\n modalType=\"mid\"\n closeButton={false}\n ok={this.changeRefundOk}\n cancel={this.changeRefundCancel}\n btnDissabled={refundBtnDisabled}\n >\n <div className='refund-container'>\n <ul className='refund-list'>\n <li className='refund-item'>\n <span className='title'>储值卡号:</span>\n <span className='value'>{StorageCardNo}</span>\n </li>\n <li className='refund-item'>\n <span className='title'>储值余额:</span>\n <span className='value'>{formatPrecision(BalanceStorage, 2)}</span>\n </li>\n <li className='refund-item'>\n <span className='title'>赠送金额:</span>\n <span className='value'>{getFixedNumber(PresentAmount + usedPresentAmount)}</span>\n </li>\n <li className='refund-item'>\n <span className='title'>可退金额:</span>\n <span className='value special'>{ getFixedNumber(canReturnAmount) }</span>\n </li>\n </ul> \n <p className='tips'>注:可退金额 = 储值余额-赠送金。(仅支持将最近一次储值金额原路退回到微信或支付宝,若超出时请退现金!)</p>\n </div> \n </ModalWraper>\n {/* 退储值 */}\n </div>\n )\n }\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tplus-member",
3
- "version": "3.54.3",
3
+ "version": "3.54.7",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {