{
"version":3,
"file":"common.js",
"lineCount":143,
"mappings":"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",
"sources":["common.js"],
"sourcesContent":["\nfunction _instanceof(left, right) { if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) { return !!right[Symbol.hasInstance](left); } else { return left instanceof right; } }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n/**\n * @author Wu Fan\n * @date 2013-05-22\n */\n\n// public function\n$(function () {\n  wmf.util.autoCompleteOff();\n  wmf.util.listOperation();\n  wmf.util.bindMenuToggleEvent();\n  jQuery.cachedScript = function (url, options) {\n    // allow user to set any option except for dataType, cache, and url\n    options = $.extend(options || {}, {\n      dataType: \"script\",\n      cache: true,\n      url: url\n    });\n    // Use $.ajax() since it is more flexible than $.getScript\n    // Return the jqXHR object so we can chain callbacks\n    return jQuery.ajax(options);\n  };\n});\nfunction initMultipleSelect(options) {\n  var opts = {\n    // placeholder text\n    placeholder: I18N.t('\u8bf7\u9009\u62e9\u89c4\u5219\u7c7b\u578b'),\n    // displays the Select All checkbox\n    selectAll: true,\n    // allows to select a single option\n    single: false,\n    // shows a radio button when single is set to true\n    singleRadio: false,\n    // allows multiple selection\n    multiple: true,\n    // hides checkboxes for Optgroup\n    hideOptgroupCheckboxes: true,\n    // width of the item\n    multipleWidth: 180,\n    minimumCountSelected: 3,\n    // width\n    width: 180,\n    // or 'top'\n    position: 'bottom',\n    displayHtml: false,\n    // displays selected values\n    displayValues: false,\n    // displays titles\n    displayTitle: false,\n    // is opened on init\n    isOpen: false,\n    // keeps the select always be opened\n    keepOpen: false,\n    // opens the select on hover\n    openOnHover: true,\n    // shows clear icon\n    showClear: false,\n    formatSelectAll: function formatSelectAll() {\n      return I18N.t('\u5168\u9009');\n    },\n    formatAllSelected: function formatAllSelected() {\n      return I18N.t('\u5168\u90e8\u7c7b\u578b');\n    },\n    formatCountSelected: function formatCountSelected() {\n      return false;\n    },\n    formatNoMatchesFound: function formatNoMatchesFound() {\n      return I18N.t('\u8bf7\u9009\u62e9\u7c7b\u578b');\n    }\n  };\n  $.extend(opts, options || {});\n  return $(opts.el).multipleSelect(opts);\n}\nfunction changeStatusReload(tips, status, name) {\n  var selectedValues = wmf.util.getCheckedValue(name);\n  if (selectedValues.length == 0) {\n    wmf.util.alert(I18N.t('\u8bf7\u9009\u62e9\u9700\u8981\u64cd\u4f5c\u7684\u9879\u76ee'));\n    return;\n  }\n  wmf.util.confirm(I18N.t('\u4f60\u786e\u5b9a\u8981[tips]\u5417\uff1f', {\n    tips: tips\n  }), {\n    ok: function ok() {\n      wmf.ajax.doAjax({\n        type: 'post',\n        url: 'status',\n        data: {\n          multi: true,\n          ids: selectedValues,\n          status: status\n        },\n        success: function success(result) {\n          if (result.success) {\n            reload();\n          } else {\n            wmf.ajax.errorHandler(result);\n          }\n        }\n      }, tips);\n    }\n  });\n}\nfunction deleteReload(name) {\n  var selectedValues = wmf.util.getCheckedValue(name);\n  if (selectedValues.length == 0) {\n    return;\n  }\n  wmf.util.confirm(I18N.t('\u4f60\u786e\u5b9a\u8981\u5220\u9664\u9009\u4e2d\u9879\u5417\uff1f'), {\n    ok: function ok() {\n      wmf.ajax.doAjax({\n        type: 'post',\n        url: 'delete',\n        data: {\n          ids: selectedValues\n        },\n        success: function success(result) {\n          if (result.success) {\n            reload();\n          } else {\n            wmf.ajax.errorHandler(result);\n          }\n        }\n      });\n    }\n  });\n}\nfunction formSubmit(form) {\n  $(form).submit();\n}\n\n/**\n * \u5f02\u6b65\u63d0\u4ea4\u5e26\u6709\u6587\u4ef6\u4e0a\u4f20\u7684\u8868\u5355\n * @param $multipartForm multipart form\n * @param callback \u56de\u8c03\u51fd\u6570\n */\nfunction multipartFormSubmitAjax($multipartForm, callback) {\n  var formData = new FormData();\n  $multipartForm.find(':input[name]').each(function (index, el) {\n    var $field = $(el);\n    var fieldName = $field.attr('name');\n    if ($field.is(':file')) {\n      var files = el.files;\n      if (files.length) {\n        var file = files[0];\n        formData.append(fieldName, file, file.name);\n      }\n    } else if ($field.is(':radio') || $field.is(':checkbox')) {\n      if ($field.prop('checked')) {\n        formData.append(fieldName, $field.val());\n      }\n    } else {\n      formData.append(fieldName, $field.val());\n    }\n  });\n  var onComplete = function onComplete(result) {\n    if (result.success) {\n      closeDialog();\n      reload();\n    } else {\n      wmf.ajax.errorHandler(result);\n    }\n  };\n  if (typeof callback === 'function') {\n    onComplete = callback;\n  }\n  var xhr = new XMLHttpRequest();\n  xhr.onreadystatechange = function () {\n    if (xhr.readyState === 4) {\n      if (xhr.status === 200) {\n        var result;\n        try {\n          result = JSON.parse(xhr.responseText);\n        } catch (err) {\n          result = {\n            success: false,\n            message: err\n          };\n        }\n        onComplete.apply(this, [result]);\n      } else {\n        onComplete.apply(this, [new Error('XMLHttpRequest response status is ' + xhr.status)]);\n      }\n    }\n  };\n  xhr.open('POST', $multipartForm.attr('action'));\n  xhr.send(formData);\n}\nfunction buildSubmitForm(opts) {\n  var opts = $.extend({\n    action: '',\n    method: 'post',\n    target: '_self',\n    params: {}\n  }, opts || {});\n  var $form = $(\"<form></form>\").attr({\n    action: opts.action,\n    method: opts.method,\n    target: opts.target,\n    style: 'display: none;'\n  });\n  $.each(opts.params || {}, function (name, value) {\n    var $field = $('<input type=\"hidden\" />').attr({\n      name: name,\n      value: value\n    });\n    $form.append($field);\n  });\n  $('body').append($form);\n  formSubmit($form);\n}\nfunction generateQRCode(title, url, options) {\n  var setting = $.extend({}, {\n    dialogId: false,\n    width: 390,\n    height: 460,\n    label: false,\n    desc: false,\n    showCopyBtn: true,\n    showDownloadBtn: true,\n    showUrl: null,\n    imageDownloadUrl: null,\n    showClose: true\n  }, options);\n  var buildUrl = function buildUrl(url, download) {\n    if (url.indexOf('/') === 0) {\n      url = location.origin + url;\n    }\n    return '/common/qrCode/download?size=350&code=' + encodeURIComponent(url) + '&download=' + download;\n  };\n  if (!setting.showUrl) {\n    setting.showUrl = buildUrl(url, false);\n  }\n  var baseUrl = url.indexOf('/') === 0 ? location.origin + url : url;\n  var message = '<div style=\"text-align: center;padding-bottom: 15px;\">' + '<img style=\"display: inline-block;\" src=\"' + setting.showUrl + '\" width=\"300\" height=\"300\" /><br>' + '<div class=\"link-2dCode\">' + (setting.label ? setting.label : '<a href=' + baseUrl + ' target=\"view_window\">' + baseUrl + '</a>\\n');\n  if (setting.showCopyBtn || setting.showDownloadBtn) {\n    message += '<br/>';\n    if (setting.showCopyBtn) {\n      message += '<a id=\"copy-link\" href=\"javascript:void(0)\" title=\"' + I18N.t('\u590d\u5236\u94fe\u63a5') + '\" class=\"btn btn-default btn-sm\" onclick=\"copyText(\\'copy-link\\', \\'' + baseUrl + '\\')\">' + '<i class=\"fa fa-copy\" aria-hidden=\"true\"></i>\\n' + '<span>' + I18N.t('\u590d\u5236\u94fe\u63a5') + '</span></a>\\n';\n    }\n    if (setting.showDownloadBtn) {\n      if (!setting.downloadUrl) {\n        setting.downloadUrl = buildUrl(url, true);\n      }\n      message += '<a target=\"_blank\" href=\"' + setting.downloadUrl + '\" title=\"' + I18N.t('\u4e0b\u8f7d') + '\" class=\"btn btn-default btn-sm\">' + '<i class=\"fa fa-download\" aria-hidden=\"true\"></i>\\n' + '<span>' + I18N.t('\u4e0b\u8f7d') + '</span></a>\\n';\n    }\n  }\n  message += (setting.desc ? '<p>' + setting.desc + '</p>' : '') + '</div></div>';\n  var dialogId = 'ju_dialog';\n  if (setting.dialogId) {\n    dialogId = setting.dialogId;\n  }\n  initDialog(dialogId, title, message, null, setting.width, setting.height, true, setting.showClose);\n}\nfunction initCopyTextElement(element, _text) {\n  var clipboard = new ClipboardJS(element, {\n    text: function text() {\n      return _text;\n    }\n  });\n  var copyDone = false;\n  clipboard.on('success', function () {\n    wmf.util.tip(I18N.t('\u590d\u5236\u6210\u529f'));\n  });\n  clipboard.on('error', function (e) {\n    wmf.util.alert(I18N.t('\u590d\u5236\u5931\u8d25') + \"\uff1a\" + e);\n  });\n}\n\n/**\n * @deprecated \u76f4\u63a5\u7528 copyToClipboard\n */\nfunction copyText(id, text) {\n  initCopyTextElement('#' + id, text);\n}\nfunction copyToClipboard(text) {\n  var el = $('span');\n  initCopyTextElement(el[0], text);\n  el.click();\n}\nfunction openWindow(url) {\n  window.open(url, 'wmf-window');\n}\nfunction changeStatusDoSearch(select) {\n  forward('list?status=' + $(select).val());\n}\nfunction bindDatePicker(options) {\n  if (typeof options == \"undefined\") {\n    $(\".datePicker\").datepicker({\n      changeMonth: true,\n      changeYear: true,\n      showButtonPanel: true\n    });\n    return;\n  }\n  _bindDatePicker($(\".datePicker\"), options);\n}\nfunction bindDatetimePicker(options) {\n  if (typeof options == \"undefined\") {\n    $(\".dateTimePicker\").datetimepicker();\n    return;\n  }\n  var $el;\n  var isJquery = _typeof(options) === 'object' && _instanceof(options, jQuery) && typeof options.jquery === 'string';\n  if (isJquery) {\n    $el = options;\n    options = arguments.length > 1 ? arguments[1] : undefined;\n  } else {\n    $el = $(\".dateTimePicker\");\n  }\n  _bindDatetimePicker($el, options);\n}\nfunction _bindDatePicker(elem, options) {\n  var opts = $.extend({}, {\n    format: 'yyyy-mm-dd',\n    minView: 'month'\n  }, options || {});\n  return _bindDatetimePicker(elem, opts);\n}\nfunction _bindDatetimePicker(elem, options) {\n  var $field = $(elem);\n  var opts = $.extend({}, {\n    format: 'yyyy-mm-dd hh:ii',\n    minView: 'hour',\n    todayBtn: true,\n    autoclose: true,\n    language: 'zh-CN'\n  }, options || {});\n  if (opts.minDate) {\n    var startDate = moment(opts.minDate);\n    if (startDate.isValid()) {\n      opts.startDate = startDate.toDate();\n    }\n  }\n  if (opts.maxDate) {\n    var endDate = moment(opts.maxDate);\n    if (endDate.isValid()) {\n      opts.endDate = endDate.toDate();\n    }\n  }\n  if (typeof opts.callback === 'function') {\n    return $field.datetimepicker(opts).on('changeDate', function () {\n      if (typeof opts.callback === 'function') {\n        opts.callback.apply(this, arguments);\n      }\n    });\n  } else {\n    return $field.datetimepicker(opts);\n  }\n}\nfunction bindDateOfBirthPicker() {\n  $(\".dateOfBirthPicker\").datepicker({\n    yearRange: '1900:',\n    maxDate: new Date(),\n    changeMonth: true,\n    changeYear: true,\n    showButtonPanel: true\n  });\n}\nfunction bindDateFromToPicker(from, to, dateLimit, options) {\n  var $startDate = typeof from === 'string' ? $('#' + from) : from;\n  var $endDate = typeof to === 'string' ? $('#' + to) : to;\n  _datepicker($startDate, $.extend({}, {\n    changeMonth: true,\n    changeYear: true,\n    showButtonPanel: true,\n    onSelect: function onSelect(date) {\n      var selected = moment(date);\n      log('from: ' + selected.format('YYYY-MM-DD'));\n      var endDate = moment($endDate.val());\n      if (endDate.isValid()) {\n        if (endDate.isBefore(selected)) {\n          $endDate.val(selected.format('YYYY-MM-DD'));\n        }\n        if (dateLimit) {\n          var endMaxDate = momentAdd(selected.clone(), dateLimit);\n          log('endMaxDate: ' + endMaxDate.format('YYYY-MM-DD'));\n          if (endDate.isAfter(endMaxDate)) {\n            $endDate.val(endMaxDate.format('YYYY-MM-DD'));\n          }\n        }\n      }\n    }\n  }, options || {}));\n  _datepicker($endDate, $.extend({}, {\n    changeMonth: true,\n    changeYear: true,\n    showButtonPanel: true,\n    onSelect: function onSelect(date) {\n      var selected = moment(date);\n      log('to: ' + selected.format('YYYY-MM-DD'));\n      var startDate = moment($startDate.val());\n      if (startDate.isValid()) {\n        if (startDate.isAfter(selected)) {\n          $startDate.val(selected.format('YYYY-MM-DD'));\n        }\n        if (options && options.maxDate) {\n          if (startDate.isAfter(options.maxDate)) {\n            $startDate.val(options.maxDate.format('YYYY-MM-DD'));\n          }\n        }\n        if (dateLimit) {\n          var startMinDate = selected.clone().subtract(dateLimit);\n          log('startMinDate: ' + startMinDate.format('YYYY-MM-DD'));\n          if (startDate.isBefore(startMinDate)) {\n            $startDate.val(startMinDate.format('YYYY-MM-DD'));\n          }\n        }\n      }\n    }\n  }, options || {}));\n}\nfunction momentAdd(momentObj, dateLimit) {\n  for (var field in dateLimit) {\n    momentObj.add && momentObj.add(dateLimit[field], field);\n  }\n  return momentObj;\n}\nfunction bindDateRange($el, options, fields) {\n  fields = $.extend({}, {\n    from: '#dateFrom',\n    to: '#dateTo',\n    fromBeforeDays: 7\n  }, fields || {});\n  var $dateFrom = $(fields.from);\n  var $dateTo = $(fields.to);\n  var dateFrom, dateTo;\n  if (isEmpty($dateFrom.val()) || isEmpty($dateTo.val())) {\n    dateFrom = moment().subtract(fields.fromBeforeDays, \"days\");\n    dateTo = moment();\n  } else {\n    dateFrom = moment($dateFrom.val(), 'YYYY-MM-DD');\n    dateTo = moment($dateTo.val(), 'YYYY-MM-DD');\n  }\n  var action = '';\n  options = $.extend({\n    lang: 'zh',\n    display: 'center',\n    defaultValue: [dateFrom.toDate(), dateTo.toDate()],\n    onClose: function onClose(value, inst) {\n      initFieldValue.apply(this, [value, inst, action]);\n    },\n    onCancel: function onCancel(event, inst) {\n      action = 'onCancel';\n    },\n    onSet: function onSet(event, inst) {\n      action = 'onSet';\n    },\n    onchange: function onchange(value, inst) {\n      initFieldValue.apply(this, [value, inst, action]);\n    }\n  }, options || {});\n  $el.mobiscroll().range(options);\n  function initFieldValue(value, inst, action) {\n    if (value.valueText) {\n      var date = value.valueText.split(\" - \");\n      $dateFrom.val(date[0]);\n      $dateTo.val(date[1]);\n    }\n    if ($el.is(':input')) {\n      $el.val(value.valueText);\n    }\n    $('.crumbs_datePick').html(value.valueText);\n    if (typeof options.callback === 'function') {\n      options.callback.apply(this, [value, inst, action]);\n    }\n  }\n}\nfunction bindMonthPicker(from, to, options) {\n  options = $.extend({\n    changeMonth: true,\n    changeYear: true,\n    showButtonPanel: true,\n    dateFormat: 'yy-mm',\n    currentText: I18N.t('\u672c\u6708'),\n    closeText: I18N.t('\u786e\u5b9a'),\n    monthOnly: true,\n    onClose: function onClose(dateText, inst) {\n      var $el = $(this);\n      $el.datepicker('setDate', new Date(inst.selectedYear, inst.selectedMonth, 1));\n      $el.blur();\n    }\n  }, options || {});\n  _datepicker($('#' + from), options);\n  if (!to) return;\n  _datepicker($('#' + to), options);\n}\nfunction _datepicker($el, options) {\n  options = $.extend({\n    monthOnly: false\n  }, options || {});\n  var beforeShow = options.beforeShow;\n  options.beforeShow = function (el, inst) {\n    var $calendar = $(inst.dpDiv);\n    $calendar.toggleClass('ui-datepicker-month-only', options.monthOnly);\n    typeof beforeShow == 'function' && beforeShow.apply(this, arguments);\n  };\n  return $el.datepicker(options);\n}\nfunction bindTimeFromToPicker(from, to) {\n  $.timepicker.timeRange($('#' + from), $('#' + to), {});\n}\nfunction bindDateTimeFromToPicker(from, to) {\n  $.timepicker.datetimeRange($('#' + from), $('#' + to), {\n    showSecond: true,\n    timeFormat: 'HH:mm:ss'\n  });\n}\nfunction memberChangePassword() {\n  var content = $('.m_change_password');\n  content.hide();\n  $('#m_change_password_btn').bind('click', function () {\n    if (content.css('display') == 'none') {\n      content.show();\n    } else {\n      content.hide();\n    }\n  });\n}\nfunction buildURI(path) {\n  var accountPrefixRegex = /(\\/v2\\/restaurant|\\/enterprise|\\/agency|\\/restaurant|\\/system).*/;\n  return location.pathname.replace(accountPrefixRegex, '$1') + path;\n}\nfunction editMemberDialog() {\n  openAjaxDialog(I18N.t('\u7f16\u8f91\u4e2a\u4eba\u4fe1\u606f'), buildURI(\"/member_info/edit\"), 400, 320, true);\n}\nfunction modifyTelephoneDialog() {\n  openAjaxDialog(I18N.t('\u4fee\u6539\u624b\u673a\u53f7'), buildURI(\"/modify_telephone\"), 400, 320, true);\n}\nfunction changePasswordDialog() {\n  openAjaxDialog(I18N.t('\u66f4\u6539\u5bc6\u7801'), buildURI(\"/password/change\"), 400, 320, true);\n}\nfunction isV2() {\n  var str = \"\";\n  if (window.location.href.indexOf(\"v2\") != -1) {\n    str = \"/v2\";\n  }\n  return str;\n}\nfunction editMemberInfoAgency(id) {\n  openAjaxDialog(I18N.t('\u7f16\u8f91\u4e2a\u4eba\u4fe1\u606f'), \"/agency/member_info/edit?changePassword=false&id=\" + id, 400, 380, true);\n}\nfunction openDialog(title, content, loadUrl, width, height, modal) {\n  initDialog('ju_dialog', title, content, loadUrl, width, height, modal);\n}\nfunction initDialog(id, title, content, loadUrl, width, height, modal, showClose) {\n  return wmf.util._dialog(id, {\n    title: title,\n    content: content,\n    loadUrl: loadUrl,\n    width: width,\n    height: height,\n    modal: modal,\n    showClose: showClose\n  });\n}\nfunction openAjaxDialog(title, loadUrl, width, height, modal) {\n  openDialog(title, null, loadUrl, width, height, modal);\n}\nfunction initDialogById(id, title, width, height, modal) {\n  var content = $('#' + id).html();\n  return wmf.util._dialog(id, {\n    title: title,\n    content: content,\n    width: width,\n    height: height,\n    modal: modal\n  });\n}\nfunction closeDialogById(id) {\n  var modalSize = $('.modal').length;\n  var $dialog = $(\"#\" + id),\n    removeBackdrop = modalSize === 1;\n  var $backdrop = $('.modal-backdrop');\n  $dialog.one(wmf.util.transition.end, function () {\n    removeBackdrop && $(document.body).removeClass('modal-open');\n    removeBackdrop && $backdrop.remove();\n    $dialog.modal && $dialog.modal('hide');\n    $dialog.hide();\n    setTimeout(function () {\n      $dialog.remove();\n    }, 1000);\n  }).wmfTransitionEnd(300);\n  $dialog.removeClass('in');\n  removeBackdrop && $backdrop.removeClass('in');\n  'function' === typeof onCloseDialog && onCloseDialog($dialog);\n}\nfunction closeDialogByDialog($dialog) {\n  closeDialog($dialog.find(\".modal-body\"));\n}\nfunction closeDialog($dom) {\n  var dialogId = false;\n  if ($dom) {\n    var $ele = $($dom);\n    var $modalDialog = $ele.closest(\".modal-dialog\");\n    if (!$modalDialog.length) {\n      $modalDialog = $ele.children(\".modal-dialog\");\n    }\n    if ($modalDialog.length) {\n      dialogId = $modalDialog.parent().attr(\"id\");\n    }\n  }\n  if (dialogId) {\n    closeDialogById(dialogId);\n  } else {\n    closeDialogById('ju_dialog');\n  }\n}\nfunction closeTargetDialog(targetId) {\n  if (!isEmpty(targetId)) {\n    closeDialogById(targetId);\n  } else {\n    closeDialog();\n  }\n}\nfunction renderDialogTo(id, html) {\n  renderDialogTo$el($(\"#\" + id), html);\n}\nfunction renderDialogTo$el($el, html) {\n  var modal = $el.find('.modal-body-content');\n  if (modal.length) {\n    modal.html(html);\n  } else {\n    $el.html(html);\n  }\n  wmf.util.autoCompleteOff();\n}\nfunction dialogSubmitReload(form) {\n  wmf.form.ajaxSubmit(form, function (result) {\n    if (result.success) {\n      closeDialog();\n      location.reload();\n    } else {\n      ajaxErrorHandler(result);\n    }\n  });\n}\nfunction dialogSubmit(form, fun, tips) {\n  wmf.form.ajaxSubmit(form, function (result) {\n    if (result.success) {\n      fun(result);\n    } else {\n      ajaxErrorHandler(result);\n    }\n  }, tips);\n}\nfunction submitWithAjax($form, callback) {\n  wmf.form.ajaxSubmit($form, function (result) {\n    if (result.success) {\n      if (typeof callback == 'function') {\n        callback.apply(this, arguments);\n      } else {\n        var tips = callback;\n        wmf.util.tip(tips ? tips : I18N.t('\u64cd\u4f5c\u6210\u529f'), function () {\n          var redirectUrl = result.redirectUrl;\n          if (redirectUrl && !isEmpty(redirectUrl)) {\n            forward(redirectUrl);\n          }\n        });\n      }\n    } else {\n      var tabSelector = $form.attr('data-tab-selector');\n      var tabs = tabSelector ? $(tabSelector) : null;\n      ajaxErrorHandler(result, tabs);\n    }\n  });\n}\nfunction dialogSubmitClose(form) {\n  submitWithAjax(form, function () {\n    closeDialog();\n  });\n}\nfunction dialogSubmitCloseReload(form) {\n  submitWithAjax(form, function () {\n    closeDialog();\n    reload();\n  });\n}\nfunction dialogSubmitRefreshTab(form) {\n  submitWithAjax(form, function () {\n    closeDialog();\n    wmf.util.refreshCurrentTabs();\n  });\n}\nfunction ajaxSubmitForward(form, forwardUrl) {\n  submitWithAjax(form, function () {\n    forward(forwardUrl);\n  });\n}\nfunction searchByPageNumber(form, currentPage, url, targetIdOrCallback, renderOnly) {\n  searchByPageNumberOptions({\n    form: form,\n    currentPage: currentPage,\n    url: url,\n    targetIdOrCallback: targetIdOrCallback,\n    renderOnly: renderOnly\n  });\n}\nfunction searchByPageNumberOptions(options) {\n  var form = options.form;\n  var currentPage = options.currentPage;\n  var prevPage = options.prevPage;\n  var prevMinCursor = options.prevMinCursor;\n  var prevMaxCursor = options.prevMaxCursor;\n  var url = options.url;\n  var targetIdOrCallback = options.targetIdOrCallback;\n  var renderOnly = options.renderOnly;\n  var nonBlockUiOnForward = options.nonBlockUiOnForward;\n  var thisForm = $(form);\n  var dataParam = thisForm.attr('data-param');\n  var data = thisForm.serialize();\n  if (dataParam) {\n    if (data) {\n      data = data + '&' + dataParam;\n    } else {\n      data = dataParam;\n    }\n  }\n  url = isEmpty(url) ? thisForm.attr('action') : url;\n  var prevPageParam = prevPage ? \"&prevPage=\" + prevPage : '';\n  var prevMinCursorParam = prevMinCursor ? \"&prevMinCursor=\" + prevMinCursor : '';\n  var prevMaxCursorParam = prevMaxCursor ? \"&prevMaxCursor=\" + prevMaxCursor : '';\n  var searchUrl = urlConcat(url, \"currentPage=\" + currentPage + prevPageParam + prevMinCursorParam + prevMaxCursorParam);\n  if (targetIdOrCallback) {\n    var $target = typeof targetIdOrCallback === 'string' ? $('#' + targetIdOrCallback) : null;\n    if ($target) {\n      wmf.util.refreshCurrentTabDataUrl($target, data);\n    }\n    wmf.ajax.doAjax({\n      url: searchUrl,\n      data: data,\n      type: options.requestType || 'GET',\n      success: function success(result) {\n        var $el = $(result);\n        var $error = $el.find('#exception_error_page');\n        if ($error && $error.length > 0) {\n          return false;\n        }\n        if ($target) {\n          if (renderOnly) {\n            $target.html(result);\n          } else {\n            renderDialogTo(targetIdOrCallback, result);\n          }\n        }\n        if (typeof targetIdOrCallback === 'function') {\n          targetIdOrCallback(result);\n        }\n      },\n      error: function error(x, s, e) {\n        wmf.util.unblockUI();\n        wmf.ajax.defaults.error(x, s, e);\n      }\n    }, options.doNotShowLoading ? false : I18N.t('\u67e5\u8be2'));\n  } else {\n    if (nonBlockUiOnForward) {\n      forwardNonBlockUI(urlConcat(searchUrl, data));\n    } else {\n      forward(urlConcat(searchUrl, data));\n    }\n  }\n}\nfunction forwardToPage(page) {\n  forward(setUrlParam('currentPage', page));\n}\nfunction form2MapData($form) {\n  var arrayData = $form.serializeArray();\n  var mapData = {};\n  $.each(arrayData, function () {\n    mapData[this.name] = this.value;\n  });\n  return mapData;\n}\nfunction searchByPageNumberV2($form, page) {\n  var mapData = form2MapData($form);\n  mapData['currentPage'] = page;\n  forward(setUrlParams(mapData));\n}\n\n/**\n * \u8be5\u65b9\u6cd5\u5728<a>\u6807\u7b7e\u4e2d\u4e0e\u5173\u952e\u5b57\u51b2\u7a81,\u4e0d\u53ef\u76f4\u63a5\u4f7f\u7528onclick\u8c03\u7528\n */\nfunction search(form) {\n  var thisForm = $(form);\n  var searchUrl = thisForm.attr('action');\n  forward(urlConcat(searchUrl, thisForm.serialize()));\n}\nfunction tabsSearch(form) {\n  var thisForm = $(form);\n  var searchUrl = thisForm.attr('action');\n  wmf.util.loadCurrentTabs(urlConcat(searchUrl, thisForm.serialize()));\n}\nfunction urlConcat(prefix, suffix) {\n  return prefix + (prefix.indexOf('?') === -1 ? '?' : '&') + suffix;\n}\nfunction searchByInputPageNumber(form, goToPage, currentPage, pageCount, url, targetId) {\n  var reg = /^[1-9]\\d*$/;\n  var pageNumber = goToPage;\n  if (!reg.test(goToPage)) {\n    pageNumber = currentPage;\n  } else {\n    if (goToPage < 1 || goToPage > pageCount) {\n      pageNumber = currentPage;\n    }\n  }\n  searchByPageNumber(form, pageNumber, url, targetId);\n}\nfunction toggleMore(e) {\n  var $toggleElem = $(e);\n  var currentValue = $toggleElem.html();\n  var toggleValue = $toggleElem.attr('data-toggle-value');\n  var toggleSelector = $toggleElem.attr('data-toggle-selector');\n  var $target = $(toggleSelector);\n  if ($target.hasClass('hidden')) {\n    $target.removeClass('hidden');\n  } else {\n    $target.addClass('hidden');\n  }\n  $toggleElem.attr({\n    'data-toggle-value': currentValue\n  });\n  $toggleElem.html(toggleValue);\n}\n\n/**\n * \u7528\u6cd5\uff1a\n *  1. changeStatus({id: 'xxx', status: 'ACTIVATED', tips: I18N.t('\u6fc0\u6d3b')}) \u6216\n *  2. changeStatus('xxx', 'ACTIVATED', I18N.t('\u6fc0\u6d3b'), '', false)\n */\nfunction changeStatus(id, status, tips, urlPrefix, tab, dialogId) {\n  event.cancelBubble = true;\n  event.preventDefault();\n  var options = arguments[0];\n  if (_typeof(options) !== 'object') {\n    options = {\n      id: id,\n      status: status,\n      tips: tips,\n      urlPrefix: urlPrefix,\n      tab: tab\n    };\n  }\n  options = $.extend({}, {\n    id: '',\n    status: '',\n    action: 'status',\n    tips: I18N.t('\u6267\u884c\u6b64'),\n    urlPrefix: '',\n    tab: false,\n    dialog: false,\n    callback: null\n  }, options || {});\n  if (typeof options.tab === 'boolean' ? options.tab : 'true' === options.tab) {\n    wmf.util.tabsChangeStatus(options.id, options.status, options.tips, options.urlPrefix);\n  } else {\n    if (typeof dialogId !== 'undefined' && '' !== dialogId) {\n      options.callback = function () {\n        searchByPageNumber($('#search_form'), 1, '', dialogId);\n      };\n    }\n    wmf.util.confirm(I18N.t('\u4f60\u786e\u5b9a\u8981') + options.tips + '\uff1f', {\n      ok: function ok() {\n        var prefix = isEmpty(options.urlPrefix) ? '' : options.urlPrefix;\n        var url = prefix + options.action;\n        var data = $.extend({\n          id: options.id,\n          status: options.status\n        }, options.data || {});\n        wmf.ajax.doAjax({\n          type: 'get',\n          url: url,\n          data: data,\n          success: function success(result) {\n            if (isEmpty(result) || result.success) {\n              if (typeof options.callback === 'function') {\n                options.callback.apply(this, arguments);\n              } else {\n                reload();\n              }\n            } else {\n              wmf.ajax.errorHandler(result);\n            }\n          }\n        });\n      }\n    });\n  }\n}\nfunction changeStatusCallback(id, status, tips, urlPrefix, callback) {\n  changeStatus({\n    id: id,\n    status: status,\n    tips: tips,\n    urlPrefix: urlPrefix,\n    callback: callback\n  });\n}\nfunction deleteRecord(id) {\n  wmf.util.confirm(I18N.t('\u4f60\u786e\u5b9a\u8981\u5220\u9664\u8fd9\u6761\u8bb0\u5f55\u5417\uff1f'), {\n    ok: function ok() {\n      afterAjaxReload('delete?id=' + id);\n    }\n  });\n}\nfunction afterAjaxReload(url) {\n  ajaxRequest(url, function () {\n    reload();\n  });\n}\nfunction ajaxRequest(url, fun) {\n  wmf.ajax.doAjax({\n    type: 'get',\n    url: url,\n    success: function success() {\n      if (typeof fun === 'function') fun.apply(this, arguments);\n    }\n  });\n}\n\n/**\n * \u4e0a\u4f20\u5355\u5f20\u56fe\u7247\n * @param field\n * @param opts\n */\nfunction pictureUploader(field, opts) {\n  var fieldItem = $('#' + field);\n  if (!fieldItem.length) return;\n  opts = $.extend({\n    uploadScript: '/common/file/upload?fieldName=' + field + '&mode=1&dataType=json&token=' + wmf.token,\n    fileObjName: field,\n    buttonText: I18N.t('\u9009\u56fe'),\n    width: \"auto\",\n    fileType: '.gif,.jpg,.png',\n    fileSizeLimit: '1MB',\n    onInit: function onInit() {},\n    onUpload: function onUpload() {\n      var imageShow = $('#' + field + '_imageShow');\n      imageShow.empty();\n      imageShow.addClass('file-loading');\n    },\n    onUploadComplete: function onUploadComplete(file, data, response) {\n      $('#' + field + '_imageShow').removeClass('file-loading');\n      if (data) {\n        handleUploadResult(field, data);\n      }\n      if (typeof opts.afterUploadComplete === 'function') {\n        opts.afterUploadComplete(data);\n      }\n    },\n    onError: function onError(errorType, file) {\n      $('#' + field + '_imageShow').removeClass('file-loading');\n    },\n    onClean: function onClean() {},\n    onFallback: function onFallback() {\n      wmf.util.alert(I18N.t('\u4e0d\u652f\u6301H5\u4e0a\u4f20\u6587\u4ef6\uff0c\u8bf7\u5347\u7ea7\u65b0\u7248\u672c\u6216\u66f4\u6362\u5176\u5b83\u6d4f\u89c8\u5668'));\n    }\n  }, opts || {});\n  var params = opts.params || {};\n  $.each(params, function (key, val) {\n    opts.uploadScript += '&' + key + '=' + val;\n  });\n  initPicture();\n  fieldItem.uploadifive(opts);\n  fieldItem.data(opts);\n  function initPicture() {\n    var $field = $('#' + field + '_key');\n    var oKey = $field.attr('data-url') || $field.val() || opts.defaultValue;\n    var url;\n    if (!isEmpty(oKey)) {\n      url = oKey.indexOf('/') !== -1 ? oKey : '/common/images/' + oKey;\n      showPicture(field, url);\n    }\n    opts.onInit.apply(this, [url]);\n  }\n}\n\n/**\n * Excel\u4e0a\u4f20\n * @param field\n */\nfunction excelUploader(field, params) {\n  var fieldItem = $('#' + field);\n  if (fieldItem.length == 0) return;\n  var uploadResult = $('.upload-result');\n  uploadResult.attr({\n    'class': 'upload-result'\n  });\n  var uploadVerParma = params.importV2 ? '&uploadVer=2' : '';\n  var options = $.extend({\n    uploadScript: '/common/file/upload?fieldName=' + field + '&mode=3&dataType=json&token=' + wmf.token + uploadVerParma,\n    fileObjName: field,\n    buttonText: I18N.t('\u4e0a\u4f20') + 'Excel',\n    fileType: '.xls, .xlsx',\n    onUpload: function onUpload() {\n      uploadResult.html('<img src=\"/images/loading.gif\"/> ' + I18N.t('\u6b63\u5728\u4e0a\u4f20'));\n    },\n    onUploadComplete: function onUploadComplete(file, data, response) {\n      if (data) {\n        uploadResult.html('');\n        var result = $.parseJSON(data);\n        if (result.success) {\n          if (params.importV2) {\n            onUploadCompleteImportV2(params, result);\n            return;\n          }\n          var tip = '';\n          if (result.errors) {\n            for (var i in result.errors) {\n              tip += '<p>' + result.errors[i].message + '</p>';\n            }\n          }\n          if (tip !== '' && tip != null) {\n            wmf.util.confirm(tip, {\n              ok: function ok() {\n                closeDialog();\n                wmf.util.tip(I18N.t('\u5bfc\u5165\u6210\u529f\uff01'), function () {\n                  reload();\n                });\n              }\n            });\n          } else {\n            closeDialog();\n            wmf.util.tip(I18N.t('\u5bfc\u5165\u6210\u529f\uff01'), function () {\n              reload();\n            });\n          }\n        } else {\n          var displayHtml = '<ul>';\n          for (var i in result.errors) {\n            displayHtml += '<li>' + result.errors[i].message + '</li>';\n          }\n          displayHtml += '</ul>';\n          uploadResult.html(displayHtml);\n          if (result.errors.length > 0) {\n            uploadResult.addClass('alert alert-danger');\n          }\n        }\n      } else {\n        uploadResult.html(I18N.t('\u4e0a\u4f20\u5931\u8d25'));\n      }\n      function onUploadCompleteImportV2(params, result) {\n        var titleRowItems = $.parseJSON(result.titleRow);\n        titleRowItems[titleRowItems.length - 1] = I18N.t('\u9519\u8bef\u63cf\u8ff0');\n        var errorCnt = 0;\n        var rightCnt = 0;\n        var importDataAllItems = $.parseJSON(result.importData);\n        var importDataErrorInfos = $.parseJSON(result.importDataError);\n        var rightItems = [],\n          errorItems = [];\n        for (var idx in importDataErrorInfos) {\n          var errorInfo = importDataErrorInfos[idx];\n          if (null != errorInfo) {\n            errorCnt++;\n            var errorItem = importDataAllItems[idx];\n            errorItem[titleRowItems.length - 1] = errorInfo.message;\n            errorItems.push(errorItem);\n          } else {\n            rightCnt++;\n            rightItems.push(importDataAllItems[idx]);\n          }\n        }\n        params.titleRow = result.titleRow;\n        if (errorCnt == 0) {\n          params.importData = result.importData;\n          handleImportData(params);\n          return;\n        }\n        var resultElement = $(\"\" + \"<div class='upload-result-box'>\" + \"   <div class='alert alert-danger'>\" + \"       \" + I18N.t('\u6587\u4ef6\u4e2d\u6709') + rightCnt + I18N.t('\u6761\u6570\u636e\u53ef\u5bfc\u5165') + \"\uff0c\" + errorCnt + I18N.t('\u6761\u6570\u636e\u9519\u8bef') + \"<br/>\" + \"       \" + I18N.t('\u662f\u5426\u7ee7\u7eed\u5bfc\u5165\u53ef\u5bfc\u5165\u90e8\u5206\uff1f') + \"   </div>\" + \"   <div>\" + \"        <button class='btn btn-default continue-import-btn mr10'>\" + I18N.t('\u7ee7\u7eed\u5bfc\u5165') + \"</button>\" + \"        <button class='btn btn-primary down-errors-btn'>\" + I18N.t('\u4e0b\u8f7d\u9519\u8bef\u90e8\u5206') + \"</button>\" + \"   </div>\" + \"</div>\");\n        resultElement.find(\".down-errors-btn\").click(function () {\n          downloadCsvByData({\n            titleRow: titleRowItems,\n            importData: errorItems,\n            fileName: I18N.t('\u4e0b\u8f7d\u6587\u4ef6\u540d')\n          });\n          return false;\n        });\n        resultElement.find(\".continue-import-btn\").click(function () {\n          params.importData = JSON.stringify(rightItems);\n          handleImportData(params);\n          return false;\n        });\n        uploadResult.html(resultElement);\n      }\n    },\n    onError: function onError(errorType, file) {\n      uploadResult.html('');\n    },\n    onFallback: function onFallback() {\n      wmf.util.alert(I18N.t('\u4e0d\u652f\u6301H5\u4e0a\u4f20\u6587\u4ef6\uff0c\u8bf7\u5347\u7ea7\u65b0\u7248\u672c\u6216\u66f4\u6362\u5176\u5b83\u6d4f\u89c8\u5668'));\n    }\n  }, params || {});\n  fieldItem.uploadifive(options);\n}\n\n/**\n * \u4e00\u6761\u4e00\u6761\u4fdd\u5b58\u9700\u8981\u4fdd\u5b58\u7684\u6570\u636e\n * @param param \u53c2\u6570\n */\nfunction handleImportData(param) {\n  setCookie('hasImportDataPlan', true, 5);\n  var rid = param.rid;\n  var submitCount = param.submitCount;\n  var importType = param.fieldName;\n  var importDataKey = importType + '_' + rid + '_key';\n  var importData;\n  var titleRow;\n  var importDataInfo = {};\n  var importTypeName;\n  var operationDate;\n  var index;\n  var successCount;\n  var failedCount;\n  if (param.continueImport) {\n    importDataInfo = $.parseJSON(localStorage.getItem(importDataKey));\n    importData = importDataInfo.importData;\n    importTypeName = importDataInfo.title;\n    index = importDataInfo.index;\n    successCount = importDataInfo.successCount;\n    failedCount = importDataInfo.failedCount;\n  } else {\n    var importDataJSON = param.importData;\n    importTypeName = param.title;\n    if (!importDataJSON) {\n      setCookie('hasImportDataPlan', false, 5);\n      wmf.util.alert(importTypeName + I18N.t('\u6570\u636e\u4e0d\u80fd\u4e3a\u7a7a'));\n      return;\n    }\n    importData = $.parseJSON(importDataJSON);\n    titleRow = $.parseJSON(param.titleRow);\n    importDataInfo.importData = importData;\n    importDataInfo.titleRow = titleRow;\n    operationDate = moment(new Date()).add('year', 0).format(\"YYYY-MM-DD HH:mm:ss\");\n    importDataInfo.operationDate = operationDate;\n    importDataInfo.fieldName = importType;\n    importTypeName = param.title;\n    importDataInfo.title = importTypeName;\n    index = 0;\n    importDataInfo.index = 0;\n    successCount = 0;\n    failedCount = 0;\n    importDataInfo.successCount = successCount;\n    importDataInfo.failedCount = failedCount;\n  }\n  localStorage.setItem(importDataKey, JSON.stringify(importDataInfo));\n  setTimeout(function () {\n    $('#ju_dialog').remove();\n  }, 2000);\n  //\u72b6\u6001\u662f\u5012\u6570\u7b2c\u4e8c\u4e2a\n  var statusIndex = importData[0].length - 2;\n  var remarkIndex = importData[0].length - 1;\n  var html = '' + '<div class=\"m-t-sm m-b-sm\">' + '   <span class=\"color-red\" style=\"color: red;font-size: 16px;font-weight: bold;\">' + I18N.t('\u6ce8\uff1a[importTypeName]\u8fc7\u7a0b\u4e2d\u5173\u95ed\u5f39\u7a97\u6216\u6d4f\u89c8\u5668\uff0c\u5c06\u505c\u6b62\u5bfc\u5165', {\n    importTypeName: importTypeName\n  }) + '</span>' + '</div>' + '<div class=\"progress m-t-xs\">' + '    <div id=\"process-bar\" class=\"progress-bar progress-bar-success\" role=\"progressbar\"' + '         aria-valuenow=\"0\" aria-valuemin=\"0\" aria-valuemax=\"100\">' + '    <span id=\"percentage\">0%</span>' + '    </div>' + '</div>' + '<div class=\"m-b-sm\" sytle=\"display:flex;align-items: center;justify-content: center;\">' + '    <span>' + I18N.t('\u5f85\u5bfc\u5165') + '\uff1a<span id=\"import_member_count\">' + importData.length + '</span>\uff0c' + I18N.t('\u5b8c\u6210') + '\uff1a<span id=\"import-progress\">0</span>\uff0c' + I18N.t('\u5931\u8d25') + '\uff1a<span id=\"failed_count\">' + failedCount + '</span></span>' + '   <button id=\"download_btn\" class=\"btn btn-primary m-l-sm\" disabled onclick=saveOrDeleteImportResultLog(\"' + importDataKey + '\",' + '\"save\")>' + I18N.t('\u4e0b\u8f7d\u7ed3\u679c') + '</button>' + '</div>';\n  wmf.util.dialog({\n    id: 'import_data_dialog',\n    title: importTypeName + I18N.t('\u4fe1\u606f'),\n    content: html,\n    width: 600,\n    cancel: function cancel() {\n      if (!localStorage.getItem(importDataKey)) {\n        $('#import_data_dialog').remove();\n        $('#ju_dialog').remove();\n        return;\n      }\n      if (!importDataInfo.uploadComplete) {\n        wmf.util.confirm(I18N.t('\u5173\u95ed\u5f39\u7a97\u540e\uff0c\u5c06\u505c\u6b62') + importTypeName + '\uff0c' + I18N.t('\u786e\u5b9a\u5173\u95ed\u5417\uff1f'), {\n          ok: function ok() {\n            $('#import_data_dialog').remove();\n            setCookie('hasImportDataPlan', false, 5);\n          }\n        });\n      } else {\n        wmf.util.confirm(I18N.t('\u662f\u5426\u4e0b\u8f7d') + importTypeName + I18N.t('\u7ed3\u679c\uff1f') + '<sapn class=\"text-danger\">\uff08' + I18N.t('\u7ed3\u679c\u5220\u9664\u540e\uff0c\u65e0\u6cd5\u518d\u4e0b\u8f7d\uff09') + '</sapn>', {\n          showCloseBtn: false,\n          okBtnText: I18N.t('\u4e0b\u8f7d'),\n          cancelBtnText: I18N.t('\u5220\u9664\u7ed3\u679c'),\n          ok: function ok() {\n            saveOrDeleteImportResultLog(importDataKey, 'save', function () {\n              $('#import_data_dialog').remove();\n            });\n          },\n          cancel: function cancel() {\n            saveOrDeleteImportResultLog(importDataKey, 'delete', function () {\n              $('#import_data_dialog').remove();\n            });\n          }\n        });\n      }\n    }\n  });\n  var progressIndex = 0;\n  var lastStartTime;\n  function setImportProgress(index, count) {\n    var addOneMills = submitCount / 10;\n    if (lastStartTime) {\n      addOneMills = (new Date().getTime() - lastStartTime) / count;\n      addOneMills = addOneMills - 1;\n    }\n    if (addOneMills < 3) {\n      addOneMills = 3;\n    }\n    addOneMills = parseInt(addOneMills);\n    var currentIndex = index;\n    function setProgress() {\n      setTimeout(function () {\n        if (currentIndex++ <= importData.length) {\n          if (currentIndex > progressIndex) {\n            $('#import-progress').html(currentIndex + \"/\" + importData.length);\n          }\n          progressIndex = currentIndex;\n        }\n        if (currentIndex < index + count) {\n          setProgress();\n        }\n      }, addOneMills);\n    }\n    setProgress();\n  }\n  var canExecuteNext = true;\n  var importMember = setInterval(function () {\n    if (!canExecuteNext) {\n      return;\n    }\n    canExecuteNext = false;\n    if ($('#import_data_dialog').length <= 0) {\n      clearInterval(importMember);\n      setCookie('hasImportDataPlan', false, 5);\n      return;\n    }\n    if (index >= importData.length || importData.length <= 0) {\n      clearInterval(importMember);\n      setCookie('hasImportDataPlan', false, 5);\n      $('#download_btn').removeAttr('disabled');\n      importDataInfo.uploadComplete = true;\n      $(\"#percentage\").html(I18N.t('\u5b8c\u6210'));\n      localStorage.setItem(importDataKey, JSON.stringify(importDataInfo));\n      return;\n    }\n    var dataItems = [];\n    var actSubmitCount = 0;\n    for (var i = 0; i < submitCount; i++) {\n      var dataIndex = index + i;\n      if (dataIndex >= importData.length) {\n        break;\n      }\n      var dataItem = importData[dataIndex];\n      if (dataItem[statusIndex] === I18N.t('\u5f85\u5904\u7406')) {\n        dataItem[statusIndex] = I18N.t('\u5bfc\u5165\u4e2d');\n        dataItems.push(dataItem);\n      }\n      actSubmitCount++;\n    }\n    if (dataItems.length === 0) {\n      index = index + actSubmitCount;\n      canExecuteNext = true;\n      return;\n    }\n    setImportProgress(index, dataItems.length);\n    lastStartTime = new Date().getTime();\n    wmf.ajax.doAjaxPost({\n      url: param.importDataUrl,\n      data: {\n        'dataItems': JSON.stringify(dataItems)\n      },\n      dataType: 'json',\n      success: function success(data) {\n        for (var rIndex = 0; rIndex < data.itemResults.length; rIndex++) {\n          var result = data.itemResults[rIndex];\n          var dataItem = dataItems[result.index];\n          if (result.success) {\n            dataItem[statusIndex] = I18N.t('\u6210\u529f');\n            ++successCount;\n          } else {\n            dataItem[statusIndex] = I18N.t('\u5931\u8d25');\n            ++failedCount;\n            dataItem[remarkIndex] = result.message;\n          }\n        }\n        localStorage.setItem(importDataKey, JSON.stringify(importDataInfo));\n        index = index + actSubmitCount;\n        importDataInfo.index = index;\n        importDataInfo.successCount = successCount;\n        importDataInfo.failedCount = failedCount;\n        setCookie('hasImportDataPlan', true, 5);\n        canExecuteNext = true;\n        var process = parseInt(index / importData.length * 100);\n        $('#failed_count').html(failedCount);\n        $(\"#process-bar\").attr(\"aria-valuenow\", process).css(\"width\", process + '%');\n        $(\"#percentage\").html(process + '%');\n      }\n    });\n  }, 20);\n}\n\n/**\n * \u5c06\u6570\u636e\u8f6c\u6362\u6210csv\u4e0b\u8f7d\n * @param filename \u6587\u4ef6\u540d\n * @param content \u5185\u5bb9\n */\nfunction downloadCsv(filename, content) {\n  var data = \"\\uFEFF\" + content;\n  var blob = new Blob([data], {\n    type: 'text/csv,charset=UTF-8'\n  });\n  var link = document.createElement('a');\n  link.style.display = 'none';\n  link.href = URL.createObjectURL(blob);\n  link.setAttribute('download', filename + '.csv');\n  document.body.appendChild(link);\n  link.click();\n  document.body.removeChild(link);\n}\n\n/**\n * \u5bfc\u51fa\u7ed3\u679c\n * @param key localStorage\u7684\u952e\n */\nfunction exportImportResult(key) {\n  var importDataInfo = $.parseJSON(localStorage.getItem(key));\n  var importTypeName = importDataInfo.title;\n  var operationDate = importDataInfo.operationDate;\n  importDataInfo['fileName'] = operationDate + importTypeName + I18N.t('\u7ed3\u679c');\n  downloadCsvByData(importDataInfo);\n}\n\n/**\n * \u6839\u636e\u6570\u636e\u4e0b\u8f7dcsv\u6587\u4ef6\n * \u6570\u636e\u683c\u5f0f\uff1a\n *  {\n *      titleRow: ['\u52171','\u52172','\u5217xxx'],\n *      importData: [[I18N.t('\u5217\u503c') + '1',I18N.t('\u5217\u503c') + '2',I18N.t('\u5217\u503c') + 'xxx'],[...]],\n *      fileName: I18N.t('\u4e0b\u8f7d\u6587\u4ef6\u540d')\n *  }\n */\nfunction downloadCsvByData(data) {\n  var title = data.titleRow;\n  var importData = data.importData;\n  if (!importData) {\n    return;\n  }\n  var content = '';\n  $.each(title, function (i, item) {\n    if (title.length - 1 === i) {\n      content += item;\n    } else {\n      content += item + '\\t,';\n    }\n  });\n  content += '\\t,\\r\\n';\n  $.each(importData, function (i, importItem) {\n    $.each(importItem, function (j, item) {\n      if (importItem.length - 1 === j) {\n        content += '\"' + item + '\"';\n      } else {\n        content += '\"' + item + '\"\\t,';\n      }\n    });\n    content += '\\t,\\r\\n';\n  });\n  downloadCsv(data.fileName, content);\n}\nfunction saveOrDeleteImportResultLog(key, type, callBack) {\n  var importDataInfo = $.parseJSON(localStorage.getItem(key));\n  var importType = importDataInfo.fieldName;\n  var importTypeName = importDataInfo.title;\n  var desc = I18N.t('\u5220\u9664') + importTypeName + I18N.t('\u7ed3\u679c');\n  var tip = I18N.t('\u5220\u9664\u6210\u529f');\n  var failMessage = I18N.t('\u5220\u9664\u5931\u8d25');\n  if ('save' === type) {\n    desc = I18N.t('\u4e0b\u8f7d\u5e76') + desc;\n    tip = I18N.t('\u4e0b\u8f7d\u6210\u529f');\n    failMessage = I18N.t('\u4e0b\u8f7d\u5931\u8d25');\n  }\n  wmf.ajax.doAjaxPost({\n    url: '/v2/restaurant/log/operate_import_result',\n    data: {\n      desc: desc,\n      importType: importType\n    },\n    success: function success(result) {\n      if (result.success) {\n        if ('save' === type) {\n          exportImportResult(key);\n        }\n        if (typeof callBack === 'function') {\n          callBack();\n        }\n        localStorage.removeItem(key);\n        $('#import_data_dialog').remove();\n        wmf.util.tip(tip);\n      } else {\n        var message = result.message || failMessage;\n        wmf.util.alert(message);\n      }\n    }\n  });\n}\nfunction templateDownload(filename) {\n  wmf.util.download('/common/download_template?filename=' + filename, {\n    closeDialog: false\n  });\n}\nfunction excelUploadDialog(title, field, templateName) {\n  openExcelUploadDialog(title, field, function () {\n    templateDownload(templateName);\n  });\n}\nfunction openExcelUploadDialog(title, field, templateDownload) {\n  templateDownloadAndUploadDialog({\n    title: title,\n    fieldName: field,\n    intros: [I18N.t('\u8bf7\u5148\u4e0b\u8f7d\u6a21\u677f\uff0c\u586b\u5199\u540e\u4e0a\u4f20')],\n    buttons: [{\n      text: I18N.t('\u4e0b\u8f7d\u6a21\u677f'),\n      className: 'link ml5',\n      onClick: templateDownload\n    }]\n  });\n}\nfunction templateDownloadAndUploadDialog(options) {\n  function init(params) {\n    options = $.extend({}, {\n      title: I18N.t('\u4e0a\u4f20'),\n      fieldName: 'file-upload',\n      intros: [I18N.t('\u8bf7\u5148\u4e0b\u8f7d\u6a21\u677f\uff0c\u586b\u5199\u540e\u4e0a\u4f20')],\n      buttons: [],\n      submitCount: 50,\n      template: '<html><head><link rel=\"stylesheet\" href=\"/js/jquery/uploadifive/uploadifive.css\" media=\"screen\">' + '<script type=\"text/javascript\" src=\"/js/jquery/uploadifive/jquery.uploadifive.js\">\u003c/script></head>' + '<body>' + '<div class=\"mt10\"><form class=\"form-horizontal\">' + '<div class=\"form-group no-margins upload-buttons\">' + '<input type=\"file\" class=\"__upload-field-name\"/>' + '</div>' + '<div class=\"form-group no-margins\">' + '<div class=\"upload-status\"></div>' + '<div class=\"upload-intros\"></div>' + '</div>' + '<div class=\"form-group no-margins\">' + '<div class=\"upload-result\"></div>' + '</div>' + '</form></div>' + '</body></html>'\n    }, options || {});\n    var $content = $(options.template);\n    $content.find('input[type=\"file\"].__upload-field-name').attr({\n      id: options.fieldName\n    });\n    var $intros = $content.find('.upload-intros');\n    $.each(options.intros, function (i, intro) {\n      $('<p class=\"tips help-block\"></p>').html(intro).appendTo($intros);\n    });\n    var $buttons = $content.find('.upload-buttons');\n    $.each(options.buttons, function (i, btn) {\n      $('<a class=\"form-control-static link ml5 m-l-xs\" href=\"javascript:void(0)\"></a>').addClass(btn.className).html(btn.text).bind('click', btn.onClick || function () {}).appendTo($buttons);\n    });\n    openDialog(options.title, $content, null, 500, 180, true);\n    excelUploader(options.fieldName, params);\n  }\n  function saveImportData(params) {\n    $(window).bind('beforeunload', function (e) {\n      if ($('#import_data_dialog').length > 0) {\n        return I18N.t('\u786e\u8ba4\u79bb\u5f00\u6b64\u9875\u5417');\n      }\n    });\n    var hasImportDataPlan = getCookieValueByKey('hasImportDataPlan');\n    if ('true' === hasImportDataPlan) {\n      wmf.util.alert(I18N.t('\u5f53\u524d\u6709\u6b63\u5728\u5bfc\u5165\u7684\u4efb\u52a1\uff0c\u8bf7\u7ed3\u675f\u540e\u8fdb\u884c\u64cd\u4f5c'));\n      return;\n    }\n    var rid = params.rid;\n    var importDataUrl = params.importDataUrl;\n    var fieldName = params.fieldName;\n    var key = fieldName + '_' + rid + '_key';\n    var title = params.title;\n    var importDataInfoStr = localStorage.getItem(key);\n    if (importDataInfoStr) {\n      var importDataInfo = $.parseJSON(importDataInfoStr);\n      var importData = importDataInfo.importData;\n      var uploadComplete = importDataInfo.uploadComplete;\n      var operationDate = importDataInfo.operationDate;\n      if (uploadComplete) {\n        var message = '' + operationDate + title + I18N.t('\u7ed3\u679c\u672a\u4e0b\u8f7d\uff0c\u662f\u5426\u4e0b\u8f7d\uff1f') + '<sapn class=\"text-danger\">\uff08' + I18N.t('\u7ed3\u679c\u5220\u9664\u540e\uff0c\u65e0\u6cd5\u518d\u4e0b\u8f7d\uff09') + '</sapn>';\n        wmf.util.confirm(message, {\n          showCloseBtn: false,\n          okBtnText: I18N.t('\u4e0b\u8f7d'),\n          cancelBtnText: I18N.t('\u5220\u9664\u7ed3\u679c'),\n          ok: function ok() {\n            saveOrDeleteImportResultLog(key, 'save', function () {\n              exportImportResult(key);\n              init(params);\n            });\n          },\n          cancel: function cancel() {\n            saveOrDeleteImportResultLog(key, 'delete', function () {\n              init(params);\n            });\n          }\n        });\n      } else if (importData) {\n        var message = '' + operationDate + title + I18N.t('\u672a\u5b8c\u6210\uff08\u653e\u5f03\u4f1a\u4e0b\u8f7d\u4e0a\u6b21\u5bfc\u5165\u7ed3\u679c\uff09\uff1f');\n        wmf.util.confirm(message, {\n          showCloseBtn: false,\n          okBtnText: I18N.t('\u7ee7\u7eed\u4e0a\u6b21\u5bfc\u5165'),\n          cancelBtnText: I18N.t('\u653e\u5f03'),\n          ok: function ok() {\n            handleImportData($.extend({\n              continueImport: true\n            }, params || {}));\n          },\n          cancel: function cancel() {\n            saveOrDeleteImportResultLog(key, 'save', function () {\n              init(params);\n            });\n          }\n        });\n      }\n      return;\n    } else {\n      init(params);\n    }\n  }\n  serverRushing(function (result) {\n    var params = {};\n    if (!result.success) {\n      params = {\n        fileSizeLimit: '1MB',\n        message: result.message\n      };\n    }\n    if (options.importV2) {\n      this.opts = $.extend({}, options, params || {});\n      saveImportData(options);\n    } else {\n      init(params);\n    }\n  });\n}\nfunction serverRushing(data, callback) {\n  if (typeof data === 'function') {\n    callback = data;\n    data = {};\n  }\n  wmf.ajax.doAjax({\n    url: '/common/rushing',\n    data: data || {},\n    success: function success(result) {\n      callback.apply(this, arguments);\n    }\n  });\n}\n\n/**\n * \u6279\u91cf\u4e0a\u4f20\u56fe\u7247\n * @param field\n * @param preFun \u4e0a\u4f20\u524d\u5904\u7406\u51fd\u6570\n * @param del \u8981\u5220\u9664\u7684\u5143\u7d20\n * @param success \u4e0a\u4f20\u6210\u529f\u56de\u8c03\u51fd\u6570\n * @param size \u6587\u4ef6\u5927\u5c0f\n */\nfunction multiPictureUploader(field, preFun, del, success, size) {\n  var fieldItem = $('#' + field);\n  if (fieldItem.length == 0) return;\n  fieldItem.uploadifive({\n    uploadScript: '/common/file/upload?fieldName=' + field + '&mode=1&dataType=json&token=' + wmf.token,\n    fileObjName: field,\n    buttonText: I18N.t('\u4e0a\u4f20\u56fe\u7247'),\n    fileType: '.png,.jpg',\n    fileSizeLimit: size || '1MB',\n    multi: true,\n    onUpload: function onUpload(selectCount) {\n      $.each(new Array(selectCount), function () {\n        preFun();\n      });\n    },\n    onUploadComplete: function onUploadComplete(file, data, response) {\n      var pic = $('.' + field + '-box').find($('.pic.loading')[0]);\n      if (data) {\n        var result = $.parseJSON(data);\n        if (pic.length > 0) {\n          pic.attr({\n            key: result.key\n          });\n          pic.css({\n            background: 'url(\"/common/images/' + result.key + '\") 50% 50% / cover no-repeat'\n          });\n          pic.append('<span class=\"remove\" onclick=\"removePicture(this, \\'' + del + '\\', \\'' + field + '\\');\"><img src=\"/images/icons/deactivate.png\"/></span>');\n          pic.removeClass('loading');\n          pic.parent().addClass('uploaded');\n          if (typeof success == 'function') {\n            success(result, pic);\n          }\n        }\n      } else {\n        if (pic.length > 0) {\n          pic.remove();\n        }\n      }\n    },\n    onError: function onError(errorType, file) {\n      var $this = this;\n      setTimeout(function () {\n        $this.uploadifive('cancel', file);\n      }, 3000);\n    },\n    onFallback: function onFallback() {\n      wmf.util.alert(I18N.t('\u4e0d\u652f\u6301H5\u4e0a\u4f20\u6587\u4ef6\uff0c\u8bf7\u5347\u7ea7\u65b0\u7248\u672c\u6216\u66f4\u6362\u5176\u5b83\u6d4f\u89c8\u5668'));\n    }\n  });\n}\nfunction updatePictureFieldValue(field) {\n  var keys = [];\n  $('.' + field + '-box').find('.pic-item').each(function () {\n    var key = $(this).find('.pic').attr('key');\n    keys.push('\\'' + key + '\\'');\n  });\n  $('#' + field + '-data').val('[' + keys.join(',') + ']');\n}\n\n/**\n * \u6279\u91cf\u4e0a\u4f20\u56fe\u7247-\u5220\u9664\n * @param e \u4e8b\u4ef6\u5143\u7d20\n * @param del \u8981\u5220\u9664\u7684\u5143\u7d20\n * @param field x\n * @param minImgCount \u6700\u5c11\u4fdd\u7559\u56fe\u7247\u6570\u91cf\n */\nfunction removePicture(e, del, field, minImgCount) {\n  minImgCount = minImgCount === 0 ? 0 : minImgCount || 1;\n  if ($('.' + field + '-box').find(del).length > minImgCount) {\n    $(e).closest(del).remove();\n  }\n  if (field) {\n    updatePictureFieldValue(field);\n  }\n}\n\n/**\n * \u4e0a\u4f20MP3\n * @param field\n * @param size Ex:1MB, 1KB etc.\n */\nfunction mp3Uploader(field, size) {\n  var fieldItem = $('#' + field);\n  if (fieldItem.length == 0) return;\n  var oKey = $('#' + field + '_key').val();\n  if (!isEmpty(oKey)) {\n    initAudioPlayer(field, oKey);\n  }\n  fieldItem.uploadifive({\n    uploadScript: '/common/file/upload?fieldName=' + field + '&mode=2&dataType=json&token=' + wmf.token,\n    fileObjName: field,\n    buttonText: I18N.t('\u4e0a\u4f20\u97f3\u9891'),\n    fileType: '.mp3,.m4a,.wav',\n    successTimeout: 999,\n    fileSizeLimit: size,\n    onUpload: function onUpload() {\n      var musicShow = $('#' + field + '_musicShow');\n      musicShow.empty();\n      musicShow.addClass('file-loading');\n    },\n    onUploadComplete: function onUploadComplete(file, result, response) {\n      $('#' + field + '_musicShow').removeClass('file-loading');\n      if (result) {\n        result = $.parseJSON(result);\n        if (result.success) {\n          var key = result.key;\n          if (!isEmpty(key)) {\n            initAudioPlayer(field, key);\n          }\n        } else {\n          wmf.util.tip(result.result.label);\n        }\n      }\n    },\n    onError: function onError() {\n      $('#' + field + '_musicShow').removeClass('file-loading');\n    }\n  });\n}\n\n/**\n * \u4e0a\u4f20\u5e94\u7528\n * @param field\n * @param callback Function\n */\nfunction appUploader(field, callback) {\n  var fieldItem = $('#' + field);\n  if (fieldItem.length == 0) return;\n  fieldItem.uploadifive({\n    uploadScript: '/common/file/upload?fieldName=' + field + '&mode=4&dataType=json&token=' + wmf.token,\n    fileObjName: field,\n    buttonText: I18N.t('\u4e0a\u4f20\u5e94\u7528'),\n    fileType: '.exe,.apk',\n    onUpload: function onUpload() {\n      var upload = $('#' + field + '_upload');\n      upload.empty();\n      upload.addClass('file-loading');\n    },\n    onUploadComplete: function onUploadComplete(file, result, response) {\n      $('#' + field + '_upload').removeClass('file-loading');\n      if (result) {\n        result = $.parseJSON(result);\n        if (result.success) {\n          callback(result, fieldItem);\n        } else {\n          wmf.util.tip(result.result.label);\n        }\n      }\n    },\n    onError: function onError() {\n      $('#' + field + '_upload').removeClass('file-loading');\n    }\n  });\n}\n\n/**\n * \u4e0a\u4f20\u5b57\u4f53\u6587\u4ef6\n * @param field\n * @param opts file upload options\n */\nfunction fontFileUploader(field, opts) {\n  var fieldItem = $('#' + field);\n  if (!fieldItem.length) return;\n  opts = $.extend({}, {\n    uploadScript: '/common/file/upload?fieldName=' + field + '&mode=8&dataType=json&token=' + wmf.token,\n    fileObjName: field,\n    buttonText: I18N.t('\u9009\u62e9\u5b57\u4f53'),\n    fileType: fieldItem.data(\"accpet-types\") || '.ttf',\n    fileSizeLimit: '5MB',\n    onInit: function onInit() {},\n    onUpload: function onUpload() {\n      var imageShow = $('#' + field + '_imageShow');\n      imageShow.empty();\n      imageShow.addClass('file-loading');\n    },\n    onUploadComplete: function onUploadComplete(file, data, response) {\n      if (typeof opts.afterUploadComplete === 'function') {\n        opts.afterUploadComplete($.parseJSON(data));\n      }\n    },\n    onFallback: function onFallback() {\n      wmf.util.alert(I18N.t('\u4e0d\u652f\u6301H5\u4e0a\u4f20\u6587\u4ef6\uff0c\u8bf7\u5347\u7ea7\u65b0\u7248\u672c\u6216\u66f4\u6362\u5176\u5b83\u6d4f\u89c8\u5668'));\n    }\n  }, opts || {});\n  var params = opts.params || {};\n  $.each(params, function (key, val) {\n    opts.uploadScript += '&' + key + '=' + val;\n  });\n  fieldItem.uploadifive(opts);\n}\n\n/**\n * \u4e0a\u4f20\u6587\u4ef6 \u8fd4\u56deBase64\n * @param field\n * @param callback Function\n */\nfunction base64Handler(field, callback) {\n  var fieldItem = $('#' + field);\n  if (fieldItem.length == 0) return;\n  var base64 = $('#' + field + '_base64').val();\n  if (!isEmpty(base64)) {\n    base64Download(field);\n  }\n  fieldItem.uploadifive({\n    uploadScript: '/common/file/upload?fieldName=' + field + '&mode=5&dataType=json&token=' + wmf.token,\n    buttonText: I18N.t('\u4e0a\u4f20\u6587\u4ef6'),\n    fileObjName: field,\n    onUpload: function onUpload() {\n      var upload = $('#' + field + '_upload');\n      upload.empty();\n      upload.addClass('file-loading');\n    },\n    onUploadComplete: function onUploadComplete(file, result, response) {\n      $('#' + field + '_upload').removeClass('file-loading');\n      if (result) {\n        result = $.parseJSON(result);\n        if (result.success) {\n          callback(field, result);\n        } else {\n          wmf.util.tip(result.result.label);\n        }\n      }\n    },\n    onError: function onError() {\n      $('#' + field + '_upload').removeClass('file-loading');\n    }\n  });\n}\nfunction base64Download(field) {\n  if (Window.debug) {\n    var download = $('<a href=\"javascript:void(0)\" onclick=\"downloadBase64File(this)\">' + I18N.t('\u4e0b\u8f7d') + '</a>');\n    download.attr({\n      target: field\n    });\n    $('#' + field + '_upload').html(download);\n  } else {\n    $('#' + field + '_upload').html(I18N.t('\u5df2\u4e0a\u4f20'));\n  }\n}\nfunction downloadBase64File(elem) {\n  var target = $(elem).attr('target');\n  var inputItem = $('#' + target + '_base64');\n  var base64Data = inputItem.val();\n  var filename = inputItem.attr('filename');\n  post('/common/download_base64', [{\n    name: 'filename',\n    value: filename\n  }, {\n    name: 'data',\n    value: base64Data\n  }]);\n}\n\n/**\n * \u4e0a\u4f20\u56fe\u7247\u7ed3\u679c\u5904\u7406\n * @param field\n * key: field + '_key'\n * @param result\n */\nfunction handleUploadResult(field, result) {\n  result = $.parseJSON(result);\n  if (result.success) {\n    $('#' + field + '_key').val(result.key);\n    $('#' + field + '_key').attr('data-url', result.url);\n    var $mediaIdDom = $('#' + field + '_media_id');\n    if ($mediaIdDom.length) {\n      $mediaIdDom.val(result.media_id || '');\n    }\n    showPicture(field, result.url);\n  } else {\n    if (result.errors.length > 0) {\n      wmf.util.tip(result.errors[0].message);\n    } else {\n      wmf.util.tip(result.result.label);\n    }\n  }\n}\n\n/**\n * \u5f02\u6b65\u4e0a\u4f20\u56fe\u7247\u540e\u663e\u793a\u56fe\u7247\n * @param field\n * imageId = field + '_imageShow'\n * @param url\n */\nfunction showPicture(field, url) {\n  if (isEmpty(url)) return;\n  var imageShow = $('#' + field + '_imageShow');\n  var img = $('<img />', {\n    'src': url,\n    'class': 'tooltip'\n  });\n  imageShow.attr({\n    href: url\n  });\n  imageShow.append(img);\n}\nfunction initPictureDelete(field) {\n  var imageShow = $('#' + field + '_imageShow');\n  imageShow.off('click');\n  imageShow.attr({\n    title: I18N.t('\u70b9\u51fb\u5220\u9664')\n  });\n  imageShow.bind('click', function () {\n    cleanPicture(field);\n  });\n}\n\n/**\n * \u5220\u9664\u56fe\u7247\n * @param field\n */\nfunction cleanPicture(field) {\n  $('#' + field + '_key').val('');\n  $('#' + field + '_imageShow').removeAttr('title').empty();\n}\nfunction cleanAudio(btn) {\n  var field = $(btn).attr(\"data-id\");\n  $('#' + field + \"_key\").val(\"\").trigger('change');\n  $('#' + field + '_musicShow').empty();\n}\nfunction initAudioPlayer(field, key) {\n  var musicShow = $('#' + field + '_musicShow');\n  musicShow.empty();\n  musicShow.removeClass('file-loading');\n  if (isEmpty(key)) return;\n  $('#' + field + '_key').val(key).trigger('change');\n  var src = '//jrpymp3.oss-cn-hangzhou.aliyuncs.com/' + encodeURIComponent(key);\n  var audio = $('<audio></audio>', {\n    src: src,\n    preload: 'none'\n  });\n  var clearBtn = $(\"<a class='link hidden-clean-audio-btn' href='javascript:void(0)' data-id=\" + field + \" \" + \"onclick='cleanAudio(this)'>\" + I18N.t('\u6e05\u9664') + \"</a>\");\n  musicShow.append(audio, clearBtn);\n  audiojs.events.ready(function () {\n    audiojs.createAll({}, audio);\n    var key = $('#' + field + '_key').val();\n    var filename = key.substring(key.lastIndexOf('/') + 1);\n    var nameShow = $('<em class=\"filename\" title=\"' + filename + '\">' + decodeURIComponent(filename) + '</em>');\n    musicShow.find('.audiojs').find('.time').append(nameShow);\n  });\n}\n\n//////////////////////         \u6a21\u677f\u9009\u62e9           ////////////////////////////////\n/**\n * @param type \u6a21\u677f\u7c7b\u578b\n */\nfunction openTemplateChooseDialog(type, callback) {\n  wmf.ajax.doAjax({\n    type: 'post',\n    url: '/restaurant/template/categories',\n    data: {\n      type: type\n    },\n    success: function success(result) {\n      var categories = result.categories;\n      var $panel = $('<div class=\"panel\"></div>');\n      var tabs = $('<div class=\"template_categories\"></div>');\n      var $tabs = $('<ul class=\"nav nav-tabs\"></ul>');\n      for (var i in categories) {\n        var li = $('<li onclick=\"loadTemplate(this);\"></li>').attr({\n          type: type,\n          category: categories[i]\n        });\n        if (i == 0) {\n          li.addClass('active');\n        }\n        li.append('<a data-toggle=\"tab\" href=\"javascript:void(0);\">' + categories[i] + '</a>');\n        $tabs.append(li);\n      }\n      var otherLi = $('<li onclick=\"loadTemplate(this);\"></li>').attr({\n        type: type,\n        category: ''\n      });\n      otherLi.append('<a data-toggle=\"tab\" href=\"javascript:void(0);\">' + I18N.t('\u5176\u5b83') + '</a>');\n      $tabs.append(otherLi);\n      tabs.append($tabs);\n      $panel.append(tabs);\n      var $table = $('<table id=\"template_list\" class=\"table\"></table>');\n      $table.addClass('template-' + type);\n      $panel.append($table);\n      initDialog('choose-template', I18N.t('\u9009\u62e9\u6a21\u677f'), $panel, null, 700, 450, true);\n      $tabs.find('li:first-child').trigger('click');\n      $table.delegate('.btn-confirm', 'click', function () {\n        var $el = $(this);\n        var $tr = $el.closest('tr');\n        var template = $tr.data('template');\n        if (typeof callback === 'function') {\n          callback.apply(this, [template, $tr, $el]);\n          closeDialogById('choose-template');\n        } else {\n          console.error('no callback found! choose template', template);\n          closeDialogById('choose-template');\n        }\n      });\n    }\n  });\n}\nfunction loadTemplate(elem) {\n  var li = $(elem);\n  li.parent().find('li').removeClass('active');\n  li.addClass('active');\n  var type = li.attr('type');\n  var category = li.attr('category');\n  wmf.ajax.doAjax({\n    type: 'post',\n    url: '/restaurant/template/templates',\n    data: {\n      type: type,\n      category: category\n    },\n    success: function success(result) {\n      var $table = $('#template_list');\n      $table.empty();\n      var templates = result.templates;\n      if (templates.length == 0) {\n        $table.append('<tbody><tr><td>' + I18N.t('\u5373\u5c06\u4e0a\u7ebf') + '</td></tr></tbody>');\n      } else {\n        var $tbody = $('<tbody></tbody>');\n        for (var i in templates) {\n          var template = templates[i];\n          var key = template.value;\n          var $tr = $('<tr></tr>').attr({\n            key: key\n          });\n          var $name = $('<td>' + template.name + '</td>');\n          if ('AUDIO' === type) {\n            var filename = key.substring(key.lastIndexOf('/') + 1);\n            $name.append(' [' + filename + '] ');\n          } else if ('IMAGE' === type) {\n            var $imagePreview = $('<div></div>').css({\n              background: 'background: url(\"/common/images/' + key + '\") 50% 50% / cover no-repeat\"'\n            });\n            $name.append($imagePreview);\n          }\n          var $operation = $('<td></td>');\n          var $btn = $('<a href=\"javascript:void(0)\" class=\"link btn-confirm\">' + I18N.t('\u9009\u62e9') + '</a>').appendTo($operation);\n          $btn.attr({\n            key: key\n          });\n          $tr.append($name, $operation);\n          $tr.data('template', template);\n          $tbody.append($tr);\n        }\n        $table.append($tbody);\n      }\n    }\n  });\n}\nfunction bindSystemWindowResizeEvent() {\n  $(window).resize(function () {\n    bodyHeight();\n  });\n  bodyHeight();\n}\nfunction bodyHeight() {\n  var pageHeight = $('html').height();\n  var headHeight = $('#header').outerHeight();\n  var minHeight = pageHeight - headHeight - 60 - 35;\n  if (window.fullHeight) {\n    $('#body_content').css({\n      'height': minHeight\n    });\n  } else {\n    $('#body_content').css({\n      'min-height': minHeight\n    });\n  }\n}\nfunction login(url) {\n  if (url != undefined && !isEmpty(url)) {\n    forward('/login?returnUrl=' + url);\n  } else {\n    forward('/login');\n  }\n}\nfunction memberReg() {\n  forward('/registration');\n}\nfunction switchUser(type, account) {\n  forward('/system/' + type + '_switch_user/go?account=' + account);\n}\nfunction toggleVersion() {\n  var uri = location.pathname;\n  if (uri.startsWith('/v2/')) {\n    window.localStorage.setItem(\"isVer2\", \"false\");\n    uri = uri.replace('/v2', '');\n  } else {\n    window.localStorage.setItem(\"isVer2\", \"true\");\n    uri = '/v2' + uri;\n  }\n  forward(uri + location.search);\n}\nfunction toggleShow() {\n  $(\".theme-config-box\").toggleClass(\"show\");\n  $(\".theme-mask\").toggleClass(\"show\");\n}\n\n//\u62a5\u8868\u4e2d\u7b5b\u9009\u6761\u4ef6\u76f8\u5173\u7684JS\nfunction initCondition() {\n  initConditionByElement($(\".crumbs_search .dropdown-menu li\"));\n}\nfunction initConditionByElement($element) {\n  $element.each(function () {\n    var $el = $(this);\n    if ($el.is('.active')) {\n      var text = $el.find(\"a\").html();\n      $el.closest(\".dropdown-menu\").closest(\"li\").find(\".drop_name\").html(text);\n    }\n  });\n}\nfunction answerClick(callback) {\n  answerClickByElement(callback, $(\".crumbs_search .dropdown-menu\"));\n}\nfunction answerClickByElement(callback, $element) {\n  $element.delegate(\"li\", \"click\", function () {\n    var $el = $(this);\n    var value = $el.attr(\"value\");\n    var text = $el.find(\"a\").html();\n    var $menu = $el.closest(\".dropdown-menu\");\n    if (!$menu.is('[target]')) {\n      return;\n    }\n    var $li = $el.closest(\"li\");\n    $li.addClass('active');\n    $li.siblings().removeClass('active');\n    var fieldName = $menu.attr('target');\n    $menu.closest('li').find('.drop_name').html(text);\n    var $search = $menu.closest(\".crumbs_search\");\n    var $target = $search.find(':input[name=' + fieldName + ']');\n    $target.val(value);\n    $target.trigger('change');\n    //\u5982\u679c\u662f\u63a7\u5236\u9875\u9762\u5143\u7d20\u663e\u793a\u7684\uff0c\u5219\u4e0d\u63d0\u4ea4\u8868\u5355\n    if ($menu.closest(\"li\").attr(\"type\") !== \"control\") {\n      if (typeof callback === \"function\") {\n        log('fieldName', fieldName, 'value', value);\n        callback.apply(this, [fieldName, value]);\n      }\n    } else {\n      $(\".crumbs_search > li.control\").addClass(\"hide\");\n      $(\".\" + value).removeClass(\"hide\");\n    }\n  });\n}\n//\u62a5\u8868\u4e2d\u7b5b\u9009\u6761\u4ef6\u76f8\u5173\u7684JS ----------\u5b8c\n\n// \u5c0f\u6570\u683c\u5f0f\u5316 - \u907f\u514d\u7cbe\u5ea6\u4e22\u5931\nfunction formatFloat(f, digit) {\n  if (isEmpty(digit)) {\n    digit = 2;\n  }\n  var m = Math.pow(10, digit);\n  return Math.round(f * m, 10) / m;\n}\n(function () {\n  function VerifyCode() {\n    this.timer = null;\n    this.timeout = 0;\n    this.running = false;\n  }\n  VerifyCode.prototype = {\n    init: function init(opts) {\n      this.options = $.extend({}, {\n        waitTime: 60,\n        buttonSelector: '#verification_code',\n        fieldSelector: '#telephone',\n        success: function success() {},\n        error: function error() {},\n        url: '/common/v_code',\n        field: 'account',\n        params: {},\n        $el: $('body')\n      }, opts || {});\n      this.$el = this.options.$el;\n      this.waitTime = this.options.waitTime;\n      this.timeout = this.options.waitTime;\n      this.field = this.$el.find(this.options.fieldSelector);\n      this.button = this.$el.find(this.options.buttonSelector);\n      this.text = this.button.html();\n      this.bindClickEvent();\n    },\n    bindClickEvent: function bindClickEvent() {\n      var self = this;\n      this.button.bind('click', function () {\n        self.getCode();\n      });\n    },\n    getCode: function getCode() {\n      var self = this;\n      var data = {};\n      data['rid'] = this.options.rid;\n      data[this.options.field] = this.options.telephone;\n      var params = this.options.params;\n      if (params) {\n        for (var i in params) {\n          var val = params[i];\n          data[i] = typeof val == 'function' ? val() : val;\n        }\n      }\n      $.ajax({\n        type: 'post',\n        dataType: 'json',\n        url: this.options.url,\n        data: data,\n        success: function success(result) {\n          self.disableButton();\n          if (result.success) {\n            self.options.success.apply(self);\n          } else {\n            self.options.error.apply(self);\n            self.activeButton();\n            self.fieldError('telephone', result.message);\n          }\n        }\n      });\n    },\n    refreshWaitingTime: function refreshWaitingTime() {\n      var currentTime = --this.timeout;\n      if (currentTime === 0) {\n        this.activeButton();\n      } else {\n        this.button.html(currentTime + I18N.t('\u79d2\u540e\u91cd\u53d1'));\n      }\n    },\n    activeButton: function activeButton() {\n      clearInterval(this.timmer);\n      this.running = false;\n      this.timeout = this.waitTime;\n      this.button.html(this.text);\n      this.button.removeAttr('disabled').removeClass('disabled').bind('click', this.bindClickEvent());\n    },\n    disableButton: function disableButton() {\n      var self = this;\n      this.button.attr({\n        disabled: 'disabled'\n      }).addClass('disabled').unbind('click');\n      if (!this.running) {\n        self.refreshWaitingTime();\n        this.timmer = setInterval(function () {\n          self.refreshWaitingTime();\n        }, 1000);\n        this.running = true;\n      }\n    },\n    fieldError: function fieldError(field, message) {\n      wmf.util.alert(message, {\n        ok: function ok() {\n          var elem = $('[name=\\'' + field + '\\']');\n          elem.length && elem.focus();\n        }\n      });\n    }\n  };\n  $.VerifyCode = VerifyCode;\n})();\nfunction validateCode(options) {\n  var operator = options.operator || '/enterprise';\n  var operation = options.operation || I18N.t('\u64cd\u4f5c\u9a8c\u8bc1');\n  var $form = $('<form id=\"validate_code_form\"></form>');\n  var managerAuthorization = getCookieValueByKey(\"managerAuthorization\");\n  var tpl = options.tpl;\n  if ('true' === managerAuthorization) {\n    $form.append($('#' + tpl).html());\n    if (options.message) {\n      $form.append(options.message);\n    }\n    if (tpl || options.message) {\n      wmf.util.confirm($form, {\n        ok: options.callback\n      });\n      return;\n    }\n    options.callback();\n    return;\n  }\n  var phoneNumberForShow = '';\n  var template = '';\n  wmf.ajax.doAjaxPost({\n    url: operator + '/sms/load_show_telephone',\n    success: function success(result) {\n      if (!result.needValidateCode) {\n        document.cookie = \"managerAuthorization=\" + true;\n        $form.append($('#' + tpl).html());\n        if (options.message) {\n          $form.append(options.message);\n        }\n        if (tpl || options.message) {\n          wmf.util.confirm($form, {\n            ok: options.callback\n          });\n          return;\n        }\n        options.callback();\n        return;\n      }\n      if (result.success) {\n        phoneNumberForShow = result.phoneNumberForShow;\n        template = '' + '<p> <span> ' + I18N.t('\u624b\u673a\u53f7') + '\uff1a' + phoneNumberForShow + '<a class=\"weui_cell_btn m-l-sm\" id=\"verification_code\" href=\"javascript:void(0)\">' + I18N.t('\u83b7\u53d6\u5fae\u4fe1\u9a8c\u8bc1\u7801') + '</a>' + ' </span> </p> <p> ' + I18N.t('\u9a8c\u8bc1\u7801') + '\uff1a<input type=\"text\" id=\"validationCode\" name=\"validationCode\" ' + 'class=\"form-control control-input inline-block\" placeholder=\"' + I18N.t('\u8bf7\u8f93\u5165\u9a8c\u8bc1\u7801') + '\"/>' + '<span id=\"code_tips\" class=\"cred m-l-xs\"></span> </p>' + '<p><span id=\"code_tips\" class=\"cred\">' + I18N.t('\u8be5\u64cd\u4f5c\u9700\u8981\u7ba1\u7406\u5458\u5173\u6ce8\u8fc5\u624b\u667a\u6167\u9910\u996e\u516c\u4f17\u53f7\u63a5\u6536\u64cd\u4f5c\u9a8c\u8bc1\u7801') + '</span> </p>';\n        $form.append(template, $('#' + tpl).html());\n        if (options.message) {\n          $form.append(options.message);\n        }\n        validateCodeDialog($form, options.callback, operator, operation);\n      } else {\n        wmf.util.alert(result.message);\n        return;\n      }\n    },\n    error: function error(x, s, e) {\n      wmf.ajax.defaults.error(x, s, e);\n      return;\n    }\n  }, I18N.t('\u9a8c\u8bc1\u7801'));\n}\nfunction validateCodeDialog(form, callback, operator, operation) {\n  wmf.util.confirm(form, {\n    ok: function ok() {\n      var validationCode = $(\"#validationCode\").val();\n      if (isEmpty(validationCode)) {\n        $('#code_tips').text(I18N.t('\u8bf7\u8f93\u5165\u6b63\u786e\u7684\u9a8c\u8bc1\u7801'));\n        return;\n      }\n      wmf.ajax.doAjaxPost({\n        url: operator + '/sms/validate_manager_code',\n        data: $('#validate_code_form').serialize(),\n        success: function success(result) {\n          if (result.success) {\n            document.cookie = \"managerAuthorization=\" + true;\n            if (typeof callback === 'function') {\n              callback();\n            }\n          } else {\n            $('#code_tips').text(result.message);\n          }\n        },\n        error: function error(x, s, e) {\n          wmf.ajax.defaults.error(x, s, e);\n        }\n      });\n    },\n    autoClose: false,\n    id: 'validation-code'\n  });\n  new $.VerifyCode().init({\n    url: operator + '/sms/send_manager_validation_code',\n    params: {\n      operation: operation\n    }\n  });\n}\n//\u901a\u8fc7key\u83b7\u53d6cookie\u91ccvalue\u7684\u503c,\u83b7\u53d6\u5230\u7684\u503c\u662f\u5b57\u7b26\u4e32\nfunction getCookieValueByKey(cname) {\n  var name = cname + \"=\";\n  var decodedCookie = decodeURIComponent(document.cookie);\n  var ca = decodedCookie.split(';');\n  for (var i = 0; i < ca.length; i++) {\n    var c = ca[i];\n    while (c.charAt(0) == ' ') {\n      c = c.substring(1);\n    }\n    if (c.indexOf(name) == 0) {\n      return c.substring(name.length, c.length);\n    }\n  }\n  return \"\";\n}\n\n/**\n * \u8bbe\u7f6ecookie\u7684\u503c\n * @param cname \u952e\n * @param cvalue \u503c\n * @param seconds \u8fc7\u671f\u65f6\u95f4(\u79d2)\n */\nfunction setCookie(cname, cvalue, seconds) {\n  var d = new Date();\n  d.setTime(d.getTime() + seconds * 1000);\n  var expires = \"expires=\" + d.toGMTString();\n  document.cookie = cname + \"=\" + cvalue + \"; \" + expires;\n}\n\n/**\n * \u5728\u5f00\u542f\u8fc5\u624b\u672a\u5f00yunpos\u7684\u60c5\u51b5\u4e0b\uff0c\u5728\u4e91\u5e73\u53f0\u4f7f\u7528\u521b\u5efa\u5546\u54c1\u3001\u684c\u53f0\u7b49\u529f\u80fd\u8fdb\u884c\u5f39\u7a97\u63d0\u793a\n */\nfunction nonsupportTip(dom, callback) {\n  if (!$(dom).data(\"debug\")) {\n    if ('true' === wmf.flyhandApiHasCompany) {\n      wmf.util.alert(I18N.t('\u542f\u7528\u8fc5\u624b\u63a5\u53e3\u540e\uff0c\u4e0d\u652f\u6301\u8be5\u529f\u80fd\uff0c\u8bf7\u5230\u8fc5\u624b\u8f6f\u4ef6\u4e2d\u64cd\u4f5c\u3002'));\n      return false;\n    }\n  }\n  if (typeof callback === 'function') {\n    callback.apply(this, Array.prototype.slice.call(arguments).slice(2));\n  }\n  return true;\n}\nfunction initUEditor(id, options) {\n  if ($('#' + id).length === 0) {\n    return;\n  }\n  if (!UM) {\n    console.error('UM not defined, Is not import umeditor js?');\n    return;\n  }\n  UM.delEditor(id);\n  UM.getEditor(id, options);\n}\nfunction chooseCardBackgroundTemplate(el) {\n  var $uploader = $(el).closest('.h5-uploader');\n  choosePictureTemplate(null, {\n    title: I18N.t('\u9009\u62e9\u4f1a\u5458\u5361\u6a21\u677f'),\n    templates: cardBackgroundTemplates,\n    onChoose: function onChoose(picture) {\n      var uploader = $uploader.data('h5Uploader');\n      $uploader.find(':input.h5-uploader-field').val(picture.key);\n      if (uploader) {\n        uploader.resetPicture(picture);\n      }\n    }\n  });\n}\n\n/**\n * \u901a\u7528\u9009\u62e9\u56fe\u7247\u5de5\u5177\n * @param $field \u56fe\u7247\u4e0a\u4f20\u5b57\u6bb5\n * @param options \u9009\u9879\n */\nfunction choosePictureTemplate($field, options) {\n  initPictureChooseDialog($.extend({}, options || {}, {\n    $field: $field\n  }));\n}\nfunction initPictureChooseDialog(options) {\n  options = $.extend({}, {\n    $field: null,\n    title: I18N.t('\u9009\u62e9\u56fe\u7247'),\n    templates: [],\n    urlKey: 'url',\n    className: null,\n    onChoose: function onChoose(picture) {}\n  }, options || {});\n  var dialogId = 'picture-template-choose';\n  var $wrapper = $('<div class=\"template-list\"></div>');\n  $.each(options.templates, function (i, item) {\n    var $template = $('<div class=\"template\" data-template-id=' + (item.id || i + 1) + '>\\n' + '    <div class=\"template-bd\"></div>\\n' + '    <div class=\"template-ft\">' + (item.name || item.title) + '</div>\\n' + '</div>\\n');\n    var css = {},\n      style = item.style || {},\n      data = item.data || {};\n    var backgroundImageUrl = null;\n    if (item[options.urlKey]) {\n      backgroundImageUrl = item[options.urlKey];\n    }\n    if (data.backgroundImageUrl || !backgroundImageUrl) {\n      backgroundImageUrl = data.backgroundImageUrl;\n    }\n    var backgroundColor = style.backgroundColor || item.backgroundColor;\n    if (backgroundImageUrl) {\n      css.background = (backgroundColor ? backgroundColor + ' ' : '') + 'url(\\'' + backgroundImageUrl + '\\') 50% 50% / cover no-repeat';\n    } else {\n      if (backgroundColor) {\n        css.backgroundColor = backgroundColor;\n      }\n    }\n    if (style.color || item.color) {\n      css.color = style.color || item.color;\n    }\n    var $bd = $template.find('.template-bd');\n    if (item.text) {\n      $bd.html(item.text);\n    }\n    $bd.css(css);\n    $template.data('template', item);\n    $wrapper.append($template);\n  });\n  if (options.className) {\n    $wrapper.addClass(options.className);\n  }\n  initDialog(dialogId, options.title, $wrapper, null, 800, 350, true);\n  $wrapper.delegate('.template', 'click', function (e) {\n    closeDialogById(dialogId);\n    var $el = $(e.currentTarget);\n    var template = $el.data('template');\n    if (options.$field) {\n      options.$field.val(template.key);\n      options.$field.attr('data-url', template.url);\n    }\n    options.onChoose.apply(this, [template]);\n  });\n}\n\n/**\n * \u5f39\u51fa\u5207\u6362\u8d26\u53f7\u7a97\u53e3 (\u9ad8\u5185\u805a\u7248\u672c - \u7edf\u4e00\u7ed1\u5b9a\u5f39\u7a97)\n */\nfunction qrLogin(options) {\n  options = $.extend({}, {\n    action: 'select'\n  }, options || {});\n  var openId = sessionStorage.getItem('qrOpenId');\n  var openType = sessionStorage.getItem('qrOpenType');\n  var authCode = sessionStorage.getItem('qrAuthCode');\n  if (!openId || !openType) {\n    wmf.util.alert(\"\u5f53\u524d\u672a\u4f7f\u7528\u626b\u7801\u767b\u5f55\uff0c\u65e0\u6cd5\u5207\u6362\u8d26\u53f7\");\n    return;\n  }\n\n  // ==========================================\n  // \u5185\u90e8\u79c1\u6709\u51fd\u6570\u533a\u57df (\u95ed\u5305\uff0c\u4e0d\u5bf9\u5916\u66b4\u9732)\n  // ==========================================\n  function executeSwitchLogin(account, password) {\n    var form = $('<form action=\"/account_check\" method=\"post\" style=\"display:none;\"></form>');\n    form.append('<input type=\"hidden\" name=\"account\" value=\"' + account + '\">');\n    form.append('<input type=\"hidden\" name=\"password\" value=\"' + password.toUpperCase() + '\">');\n    form.append('<input type=\"hidden\" name=\"loginType\" value=\"QRCODE\">');\n    $('body').append(form);\n    localStorage.setItem('loginType', 'QRCODE');\n    form.submit();\n  }\n  function executeUnbindAccount(account, tryCnt) {\n    wmf.util.confirm(\"\u786e\u5b9a\u8981\u89e3\u9664\u7ed1\u5b9a\u8d26\u53f7[\" + account + \"] \u5417\uff1f\", {\n      ok: function ok() {\n        wmf.ajax.doAjax({\n          url: \"/login_qr/unbind\",\n          type: \"post\",\n          data: {\n            openId: openId,\n            openType: openType,\n            account: account,\n            authCode: authCode\n          },\n          success: function success(result) {\n            if (result.success) {\n              setTimeout(function () {\n                qrLogin({\n                  action: 'select'\n                });\n              }, 400);\n            } else {\n              if (!result.message && tryCnt > 0) {\n                executeUnbindAccount(account, tryCnt - 1);\n              } else {\n                wmf.util.alert(result.message || \"\u89e3\u7ed1\u5931\u8d25\");\n              }\n            }\n          }\n        });\n      }\n    });\n  }\n\n  // \u3010\u6838\u5fc3\u6539\u9020\u3011\uff1a\u5c06\u7ed1\u5b9a\u65b0\u8d26\u53f7\u548c\u91cd\u65b0\u9a8c\u8bc1\u878d\u5408\u6210\u4e00\u4e2a\u7edf\u4e00\u7684\u5f39\u7a97\u51fd\u6570\n  function showAccountBindModal(title, btnText, account, invalidReason) {\n    var isRebind = !!account; // \u5224\u65ad\u662f\u5426\u662f\u91cd\u65b0\u9a8c\u8bc1\u573a\u666f\n\n    var html = '<div style=\"margin-top: 10px;display: flex;flex-direction: column;align-items: center;\">';\n\n    // 1. \u52a8\u6001\u63d0\u793a\u6587\u6848\n    if (isRebind) {\n      html += '  <p class=\"text-danger\"><i class=\"fa fa-info-circle\"></i> \u68c0\u6d4b\u5230\u8be5\u8d26\u53f7\u7684' + invalidReason + '\uff0c\u8bf7\u9a8c\u8bc1\u6700\u65b0\u5bc6\u7801\u4ee5\u6062\u590d\u7ed1\u5b9a</p>';\n    } else {\n      html += '  <p class=\"text-muted\"><i class=\"fa fa-info-circle\"></i> \u8bf7\u8f93\u5165\u60a8\u8981\u7ed1\u5b9a\u7684\u7cfb\u7edf\u8d26\u53f7\u548c\u5bc6\u7801</p>';\n    }\n\n    // 2. \u8d26\u53f7\u6846\u5904\u7406\uff1a\u5982\u679c\u662f\u91cd\u65b0\u9a8c\u8bc1\uff0c\u586b\u5165\u8d26\u53f7\u5e76\u5f7b\u5e95\u9501\u6b7b\uff1b\u5982\u679c\u662f\u7ed1\u5b9a\u65b0\u8d26\u53f7\uff0c\u7ed9\u4e2a\u7a7a\u6846\uff0c\u5e76\u7528 readonly \u6280\u5de7\u9632\u81ea\u52a8\u586b\u5145\n    var accountAttr = isRebind ? 'value=\"' + account + '\" readonly' : 'placeholder=\"\u8bf7\u8f93\u5165\u7cfb\u7edf\u8d26\u53f7\" readonly onfocus=\"this.removeAttribute(\\'readonly\\');\"';\n    html += '  <input type=\"text\" id=\"modal_bind_account\" class=\"form-control m-b-sm\" style=\"width: 200px\" ' + accountAttr + '>';\n\n    // 3. \u5bc6\u7801\u6846\uff1a\u7edf\u4e00\u7528 readonly \u6280\u5de7\u9632\u6d4f\u89c8\u5668\u81ea\u52a8\u586b\u5145\u65e7\u5bc6\u7801\n    html += '  <input type=\"password\" id=\"modal_bind_password\" class=\"form-control m-b-sm\" style=\"width: 200px\" ' + 'placeholder=\"\u8bf7\u8f93\u5165\u767b\u5f55\u5bc6\u7801\" readonly onfocus=\"this.removeAttribute(\\'readonly\\');\">';\n\n    // 4. \u6309\u94ae\u6587\u5b57\u52a8\u6001\u5316\n    html += '  <button class=\"btn btn-primary btn-block btn-sm m-t-md js-submit-account-bind\" style=\"width: 200px\">' + btnText + '</button>';\n    html += '</div>';\n    wmf.util.dialog({\n      id: 'rebind-dialog',\n      dialogClass: 'qr-login-select-account-dialog',\n      title: title,\n      content: html,\n      width: 350,\n      height: 0,\n      modal: true\n    });\n  }\n\n  // \u3010\u6838\u5fc3\u6539\u9020\u3011\uff1a\u5c06\u4e24\u6b21\u63d0\u4ea4\u903b\u8f91\u5408\u5e76\u4e3a\u4e00\u6b21\n  function submitAccountBind($element) {\n    var account = $('#modal_bind_account').val();\n    var password = $('#modal_bind_password').val();\n    if (!account || !password) {\n      wmf.util.alert(\"\u8bf7\u8f93\u5165\u8d26\u53f7\u548c\u5bc6\u7801\");\n      return;\n    }\n    function qrBindAppend(tryCnt) {\n      wmf.ajax.doAjax({\n        url: \"/login_qr/bind_append\",\n        type: \"post\",\n        data: {\n          openId: openId,\n          openType: openType,\n          authCode: authCode,\n          account: account,\n          password: password\n        },\n        success: function success(result) {\n          if (result.success) {\n            closeDialog($element);\n            setTimeout(function () {\n              if ('bind-login' === options.action) {\n                qrLogin({\n                  action: 'login',\n                  loginAccount: account,\n                  loginPassword: password\n                });\n              } else {\n                qrLogin({\n                  action: 'select'\n                });\n              }\n            }, 400); // \u6210\u529f\u540e\u7edf\u4e00\u56de\u5230\u8d26\u53f7\u5217\u8868\u754c\u9762\n          } else {\n            if (!result.message && tryCnt > 0) {\n              qrBindAppend(tryCnt - 1);\n            } else {\n              wmf.util.alert(result.message || \"\u9a8c\u8bc1/\u7ed1\u5b9a\u5931\u8d25\uff0c\u8bf7\u68c0\u67e5\u8d26\u53f7\u5bc6\u7801\u6216\u624b\u673a\u53f7\");\n            }\n          }\n        }\n      });\n    }\n\n    // \u5931\u8d25\u540e\u91cd\u8bd5\u4e00\u6b21\uff0c\u517c\u5bb9\u53ef\u80fd\u767b\u5f55\u8fc7\u671f\u8fd4\u56de302\u7684\u60c5\u51b5\n    qrBindAppend(1);\n  }\n\n  // ==========================================\n  // \u4e3b\u903b\u8f91\uff1a\u62c9\u53d6\u5217\u8868\u3001\u6e32\u67d3DOM\u5e76\u7ed1\u5b9a\u4e8b\u4ef6\n  function renderAndShowAccounts(currentAccount, accounts) {\n    var html = '<div class=\"list-group\" style=\"margin-bottom: 0;\">';\n    for (var i = 0; i < accounts.length; i++) {\n      var acc = accounts[i];\n      var statusHtml = '<div class=\"pull-right\" style=\"margin-top: 5px;\">';\n      if (acc.invalid) {\n        statusHtml += '<span class=\"text-' + (acc.rebindable ? 'warning' : 'danger') + ' m-r-sm\"><i class=\"fa fa-exclamation-triangle\"></i> ' + acc.invalidReason + (acc.rebindable ? '\uff0c\u9700\u91cd\u65b0\u9a8c\u8bc1' : '') + '</span>';\n      }\n      var isCurrentAccount = currentAccount === acc.account;\n      statusHtml += isCurrentAccount ? '<span class=\"role current\">' + I18N.t(\"\u5f53\u524d\u767b\u5f55\u8d26\u53f7\") + '</span>' : '';\n      statusHtml += '<button class=\"btn btn-xs btn-outline btn-default js-unbind-account\" data-account=\"' + acc.account + '\">\u89e3\u7ed1</button>';\n      statusHtml += '</div>';\n      var itemClass = acc.invalid ? acc.rebindable ? 'js-rebind-account' : 'js-unuse-account' : 'js-switch-login';\n      if (isCurrentAccount) {\n        itemClass += ' active-account';\n      }\n      html += '<a href=\"javascript:void(0)\" class=\"list-group-item ' + itemClass + '\" ' + 'data-account=\"' + acc.account + '\" ' + 'data-password=\"' + (acc.password || '') + '\" ' + 'data-reason=\"' + (acc.invalidReason || '') + '\">';\n      html += statusHtml;\n      html += '<h4 class=\"list-group-item-heading\">' + acc.title + '</h4>';\n      html += '<p class=\"list-group-item-text text-muted\" style=\"margin-bottom: 0;margin-top: 10px\">\u8d26\u53f7: ' + acc.account + '</p>';\n      html += '</a>';\n    }\n    html += '</div>';\n\n    // \u3010\u7cbe\u7b80 UI\u3011\uff1a\u76f4\u63a5\u7528\u4e00\u4e2a\u6f02\u4eae\u7684\u53f3\u4fa7\u94fe\u63a5\u5373\u53ef\uff0c\u65e0\u9700\u5185\u5d4c\u8868\u5355\u4e86\n    html += '<div style=\"margin-top: 15px; border-top: 1px dashed #eee; padding-top: 15px; text-align: right;\">';\n    html += '  <a href=\"javascript:void(0)\" class=\"js-add-account\"><i class=\"fa fa-plus-circle\"></i> \u7ed1\u5b9a\u5176\u4ed6\u8d26\u53f7</a>';\n    html += '</div>';\n    wmf.util.dialog({\n      dialogClass: 'qr-login-select-account-dialog',\n      title: I18N.t('\u8bf7\u9009\u62e9\u8d26\u53f7'),\n      content: html,\n      width: 800,\n      height: 0,\n      modal: true\n    });\n  }\n  // ==========================================\n  // \u52a8\u6001\u7ed1\u5b9a\u4e8b\u4ef6 (Event Delegation)\n  // ==========================================\n  $(document).off('click.switchAccount');\n\n  // \u7ed1\u5b9a\uff1a\u6b63\u5e38\u767b\u5f55\n  $(document).on('click.switchAccount', '.js-switch-login', function (e) {\n    if ($(e.target).closest('.js-unbind-account').length > 0) return;\n    if ($(e.target).closest('.active-account').length > 0) return;\n    executeSwitchLogin($(this).data('account'), $(this).data('password'));\n  });\n\n  // \u7ed1\u5b9a\uff1a\u89e3\u7ed1\n  $(document).on('click.switchAccount', '.js-unbind-account', function (e) {\n    e.stopPropagation();\n    executeUnbindAccount($(this).data('account'), 1);\n  });\n\n  // \u7ed1\u5b9a\uff1a\u89e6\u53d1\u91cd\u65b0\u9a8c\u8bc1\u5f39\u7a97 (\u4f20\u8d26\u53f7\u548c\u539f\u56e0)\n  $(document).on('click.switchAccount', '.js-rebind-account', function (e) {\n    if ($(e.target).closest('.js-unbind-account').length > 0) return;\n    showAccountBindModal('\u91cd\u65b0\u9a8c\u8bc1\u7ed1\u5b9a', '\u9a8c\u8bc1\u5e76\u6062\u590d\u7ed1\u5b9a', $(this).data('account'), $(this).data('reason'));\n  });\n\n  // \u7ed1\u5b9a\uff1a\u89e6\u53d1\u7ed1\u5b9a\u65b0\u8d26\u53f7\u5f39\u7a97 (\u4f20\u7a7a)\n  $(document).on('click.switchAccount', '.js-add-account', function () {\n    showAccountBindModal('\u7ed1\u5b9a\u8d26\u53f7', '\u786e\u5b9a\u7ed1\u5b9a', '', '');\n  });\n\n  // \u7ed1\u5b9a\uff1a\u7edf\u4e00\u63d0\u4ea4\u8868\u5355 (\u65b0\u589e\u7ed1\u5b9a / \u91cd\u65b0\u9a8c\u8bc1 \u7684\u786e\u8ba4\u6309\u94ae)\n  $(document).on('click.switchAccount', '.js-submit-account-bind', function () {\n    submitAccountBind($(this));\n  });\n  if ('select' === options.action && options.initialAccounts && options.initialAccounts.length > 0) {\n    // \u5982\u679c\u662f\u4ece\u767b\u5f55\u9875\u4f20\u5165\u7684\uff0c\u76f4\u63a5\u663e\u793a\n    renderAndShowAccounts('', options.initialAccounts);\n    return;\n  }\n  if ('login' === options.action) {\n    executeSwitchLogin(options.loginAccount, options.loginPassword);\n    return;\n  }\n  if ('bind-login' === options.action) {\n    showAccountBindModal(options.bindDialogTitle, options.bindDialogBtnText, '', '');\n    return;\n  }\n\n  // ==========================================\n  wmf.ajax.doAjax({\n    url: \"/login_qr/account_list\",\n    type: \"post\",\n    data: {\n      openId: openId,\n      openType: openType,\n      authCode: authCode\n    },\n    success: function success(result) {\n      if (result.success && result.accounts) {\n        renderAndShowAccounts(result.currentAccount, result.accounts);\n        if (result.accounts.length === 0) {\n          sessionStorage.removeItem('qrOpenId');\n          sessionStorage.removeItem('qrOpenType');\n          sessionStorage.removeItem('qrAuthCode');\n          wmf.util.alert(\"\u8be5\u5fae\u4fe1\u4e0b\u5df2\u65e0\u7ed1\u5b9a\u8d26\u53f7\u3002\");\n        }\n      } else {\n        wmf.util.alert(result.message || \"\u83b7\u53d6\u8d26\u53f7\u5217\u8868\u5931\u8d25\");\n      }\n    }\n  });\n}\n$(function () {\n  // \u53ea\u6709 localStorage \u8bb0\u5f55\u4e86\u662f QRCODE \u767b\u5f55\u7684\uff0c\u624d\u663e\u793a\u5207\u6362\u8d26\u53f7\u6309\u94ae\n  if (null === window.localStorage || typeof window.localStorage === 'undefined') {\n    // \u5b89\u5353\u4e0d\u652f\u6301localStorage\uff0c\u4e5f\u4e0d\u9700\u8981\u663e\u793a\u5207\u6362\u8d26\u53f7\u6309\u94ae\uff0c\u76f4\u63a5\u8fd4\u56de\n    return;\n  }\n  if (localStorage.getItem('loginType') === 'QRCODE') {\n    $('.switch-account-menu').show();\n  } else {\n    $('.switch-account-menu').hide();\n  }\n});\n\n/**\n * \u6d77\u62a5\u6a21\u677f\u4e8c\u7ef4\u7801\u4f4d\u7f6e\u53ca\u5927\u5c0f\u8bbe\u7f6e\uff0cdepend on jquery ui\n * \u7528\u6cd5\uff1a\n * $('.wrapper').posterTemplate({\n data: {\n background: I18N.t('\u56fe\u7247\u5730\u5740'),\n sizeWidth: 0.3,\n sizeHeight: 0.3,\n positionTop: 0,\n positionLeft: 0\n },\n onChange: function(data) {\n // data \u7ed3\u6784\u53c2\u8003 $.fn.posterTemplate.defaults.data\n }\n })\n \u66f4\u591a\u53c2\u6570\uff1a$.fn.posterTemplate.defaults\n */\n(function ($) {\n  function PosterTemplate(el, options) {\n    this.$el = $(el);\n    this.options = $.extend(true, {}, $.fn.posterTemplate.defaults, options || {});\n    this.boundarySize = null;\n    var background = this.$el.find(':input[name=\"background\"]').val();\n    if (background) {\n      this.options.data.background = background;\n    }\n    if (!this.options.data.controlDataArray) {\n      var controlData = $.extend({}, this.options.controlData || {});\n      var size = this.$el.find(':input[name=\"size\"]').val();\n      if (size) {\n        controlData.sizeWidth = controlData.sizeHeight = parseFloat(size);\n      }\n      var top = this.$el.find(':input[name=\"top\"]').val();\n      if (top) {\n        controlData.positionTop = parseFloat(top);\n      }\n      var left = this.$el.find(':input[name=\"left\"]').val();\n      if (left) {\n        controlData.positionLeft = parseFloat(left);\n      }\n      this.options.data.controlDataArray = [controlData];\n    }\n    this.data = $.extend({}, $.fn.posterTemplate.defaults.data, this.options.data || {});\n    this.init();\n  }\n  $.extend(PosterTemplate.prototype, {\n    init: function init() {\n      if (!$('#poster-template-style').length) {\n        $(this.options.publicStyle).appendTo($('head'));\n      }\n      this.$el.addClass(this.options.wrapperClass);\n      this.$boundary = this.find(this.options.boundaryClass);\n      this.$control = this.find(this.options.controlClass);\n      this.$control.css(\"position\", \"absolute\");\n      this.$control.show();\n      if (this.data && this.data.background) {\n        this.initData(this.data);\n      }\n      var _this = this;\n      this.$control.find(\".control-color input[type='color']\").change(function () {\n        var val = $(this).val();\n        var $control = $(this).closest(\".\" + _this.options.controlClass);\n        $control.find(\".control-word\").css({\n          color: val\n        });\n        _this.setData($control, {\n          color: val\n        });\n      });\n    },\n    initData: function initData(data) {\n      if (!data.background) {\n        return;\n      }\n      if (data.disabledEdit) {\n        this.$el.addClass('disabled-edit');\n      } else {\n        this.$el.removeClass('disabled-edit');\n      }\n      this.$el.css({\n        backgroundImage: 'url(' + data.background + ')'\n      });\n      this.data = $.extend({}, this.data, data || {});\n      this.loadImageBoundary(data.background, function (boundary) {\n        this.initOperation();\n      }, this);\n      var self = this;\n      this.$control.each(function (idx, control) {\n        var itemData = $.extend({}, $.fn.posterTemplate.defaults.controlData, self.data.controlDataArray[idx] || {});\n        self.setData($(control), itemData);\n      });\n    },\n    initOperation: function initOperation() {\n      var self = this;\n      var boundarySize = self.boundarySize;\n      // \u521d\u59cb\u5316\u663e\u793a\u63a7\u5236\u5757\u5927\u5c0f\u53ca\u4f4d\u7f6e\n      this.$control.each(function (idx, control) {\n        var controlData = self.data.controlDataArray[idx];\n        var width = controlData.sizeWidth * boundarySize.width;\n        var height = controlData.sizeHeight * boundarySize.width;\n        var $control = $(control);\n        $control.css({\n          width: width,\n          height: height,\n          left: controlData.positionLeft * boundarySize.width,\n          top: controlData.positionTop * boundarySize.height\n        });\n        var $word = $control.find(\".control-word\");\n        $word.css({\n          color: controlData.color\n        });\n        $control.find(\".control-color input[type='color']\").val(controlData.color);\n        var wordCnt = $word.data(\"wordCnt\");\n        if (!wordCnt) {\n          wordCnt = $word.text().length;\n        }\n        var fontSize = width / wordCnt;\n        //\u6587\u5b57\u7684line-height\u4e3a130%, \u6240\u4ee5\u4e0a\u4e0b\u7a7a\u9699\u9ad8\u5ea6\u4e3a30%\u7684\u4e00\u534a\n        //\u4f46\u662f\u7531\u4e8ebox\u6709\u4e00\u5b9a\u7684\u95f4\u9699\uff0c \u6240\u4ee5\u6211\u4eec\u5c31\u53d6\u6587\u5b57\u5355\u8fb9\u95f4\u9699\u768445%\u5c31\u53ef\u4ee5\u4e86\n        //\u6240\u4ee5\u5c31\u662f\uff1a(fontSize * .3 * .4)\n        $word.css({\n          fontSize: fontSize,\n          marginTop: -(fontSize * .3 * .4)\n        });\n      });\n      if (this.options.resizable) {\n        this.$control.resizable({\n          containment: this.$boundary,\n          handles: this.options.resizeHandles,\n          aspectRatio: this.options.aspectRatio,\n          grid: this.options.grid || false,\n          stop: function stop(event, ui) {\n            self.onSizeChange($(ui.helper), ui.size);\n          },\n          resize: function resize(event, ui) {\n            var $control = $(ui.helper);\n            var $word = $control.find(\".control-word\");\n            var wordCnt = $word.data(\"wordCnt\");\n            if (!wordCnt) {\n              wordCnt = $word.text().length;\n            }\n            var fontSize = ui.size.width / wordCnt;\n            $word.css({\n              fontSize: fontSize,\n              marginTop: -(fontSize * .3 * .4)\n            });\n          }\n        });\n      }\n      if (this.options.draggable) {\n        this.$control.draggable({\n          containment: this.$boundary,\n          stop: function stop(event, ui) {\n            self.onPositionChange($(ui.helper), ui.position);\n          }\n        });\n      }\n      this.$el.show();\n    },\n    onSizeChange: function onSizeChange($control, size) {\n      var boundarySize = this.boundarySize;\n      this.setData($control, {\n        sizeWidth: size.width / boundarySize.width,\n        sizeHeight: size.height / boundarySize.height\n      });\n    },\n    onPositionChange: function onPositionChange($control, position) {\n      var boundarySize = this.boundarySize;\n      this.setData($control, {\n        positionLeft: position.left / boundarySize.width,\n        positionTop: position.top / boundarySize.height\n      });\n    },\n    setData: function setData($control, data) {\n      var cData = $.extend({}, $control.data('bindData'), data || {}, {\n        background: this.data.background\n      });\n      $control.data('bindData', cData);\n      if (typeof this.options.onChange === 'function') {\n        this.options.onChange.apply(this, [$control, cData, this]);\n      }\n    },\n    refresh: function refresh(data) {\n      this.initData(data);\n    },\n    hide: function hide() {\n      this.$el.hide();\n    },\n    loadImageBoundary: function loadImageBoundary(imageUrl, callback, context) {\n      var image = new Image(),\n        self = this;\n      image.onload = function () {\n        var wrapperSize = {\n          width: self.$el.width(),\n          height: self.$el.height()\n        };\n        var boundarySize = $.extend({}, wrapperSize);\n        var rate = image.width / image.height;\n        if (rate > 1) {\n          boundarySize.height = parseInt(boundarySize.height / rate);\n        } else {\n          boundarySize.width = parseInt(boundarySize.width * rate);\n        }\n        // \u8ba1\u7b97\u80cc\u666f\u8fb9\u754c\u4f4d\u7f6e\n        self.$boundary.css({\n          borderWidth: (wrapperSize.height - boundarySize.height) / 2 + 'px ' + (wrapperSize.width - boundarySize.width) / 2 + 'px'\n        });\n        self.boundarySize = boundarySize;\n        callback.call(context || this, boundarySize);\n      };\n      image.src = imageUrl;\n    },\n    find: function find(className) {\n      return this.$el.find('.' + className);\n    }\n  });\n  var old = $.fn.posterTemplate;\n  $.fn.posterTemplate = function (options) {\n    return this.each(function () {\n      var self = $(this),\n        data = self.data('posterTemplate');\n      if (!data) self.data('posterTemplate', data = new PosterTemplate(self, options));\n      return data;\n    });\n  };\n  $.fn.posterTemplate.Constructor = PosterTemplate;\n  $.fn.posterTemplate.noConflict = function () {\n    $.fn.posterTemplate = old;\n    return this;\n  };\n  $.fn.posterTemplate.defaults = {\n    publicStyle: '<style type=\"text/css\" id=\"poster-template-style\">' + '.background-wrapper {\\n' + '    display: none;\\n' + '    position: relative;\\n' + '    width: 500px;\\n' + '    height: 500px;\\n' + '    margin: 20px auto;\\n' + '    background-size: contain;\\n' + '    background-repeat: no-repeat;\\n' + '    background-position: center;\\n' + '}\\n' + '.background-wrapper.disabled-edit:after {\\n' + '    content: \" \";\\n' + '    position: absolute;\\n' + '    width: 100%;\\n' + '    height: 100%;\\n' + '    left: 0;\\n' + '    top: 0;\\n' + '    z-index: 9999;\\n' + '    cursor: not-allowed;\\n' + '}\\n' + '.control-area {\\n' + '    width: 150px;\\n' + '    height: 150px;\\n' + '}\\n' + '.control-area img {\\n' + '    display: block;\\n' + '    width: 100%;\\n' + '    height: 100%;\\n' + '    cursor: move;\\n' + '}\\n' + '.background-boundary {\\n' + '    position: absolute;\\n' + '    box-sizing: border-box;\\n' + '    background-color: transparent;\\n' + '    border-style: solid;\\n' + '    border-color: rgba(0,0,0,.1);\\n' + '    border-width: 0;\\n' + '    width: 100%;\\n' + '    height: 100%;\\n' + '}\\n' + '.control-area {\\n' + '    outline: 1px solid #50505000;\\n' + '}\\n' + '.control-area:hover {\\n' + '    outline: 1px solid #50505050;\\n' + '}\\n' + '.control-area .control-word {\\n' + '    cursor: move;\\n' + '    word-break: keep-all;\\n' + '    white-space: nowrap;\\n' + '    text-align: left;\\n' + '    line-height: 130%;\\n' + '}\\n' + '.control-area .control-color.in-color-active {\\n' + '    display: block;\\n' + '}\\n' + '.control-area .control-color {\\n' + '    display: none;\\n' + '    position: absolute;\\n' + '    cursor: pointer;\\n' + '}\\n' + '.control-area:hover .control-color {\\n' + '    display: block;\\n' + '}\\n' + '.control-area .ui-icon {\\n' + '    background-color: #50505050;\\n' + '    right: -1px !important;\\n' + '    bottom: -1px !important;\\n' + '    display: none !important;\\n' + '}\\n' + '.control-area:hover .ui-icon {\\n' + '    display: block !important;;\\n' + '}\\n' + '</style>',\n    wrapperClass: 'background-wrapper',\n    boundaryClass: 'background-boundary',\n    controlClass: 'control-area',\n    disabledEdit: false,\n    resizable: true,\n    draggable: true,\n    /**\n     * A comma delimited list of any of the following:\n     * n, e, s, w, ne, se, sw, nw, all\n     */\n    resizeHandles: 'all',\n    /**\n     * \u4fdd\u6301\u957f\u5bbd\u6bd4\n     */\n    aspectRatio: true,\n    data: {\n      background: ''\n    },\n    controlData: {\n      sizeWidth: 0.3,\n      sizeHeight: 0.3,\n      positionTop: 0,\n      positionLeft: 0\n    },\n    onChange: function onChange(data) {\n      console.log('onchange', data);\n    }\n  };\n})(jQuery);\n\n/**\n * \u5361\u6279\u91cf\u64cd\u4f5c\n */\n(function ($) {\n  function BatchCardProcessor(el, options) {\n    this.$el = $(el);\n    this.options = $.extend(true, {}, $.fn.batchCardProcessor.defaults, options || {});\n    this.init();\n  }\n  $.extend(BatchCardProcessor.prototype, {\n    init: function init() {\n      var progress = this.$el.data('progress');\n      if (typeof progress === 'boolean') {\n        this.options.progress = progress;\n      }\n      if (!this.options.label) {\n        this.options.label = this.$el.data('label') || this.$el.text();\n      }\n      if (!this.options.url) {\n        this.options.url = this.$el.data('url');\n      }\n      var self = this;\n      this.$el.bind('click', function () {\n        self.openBatchDialog();\n      });\n    },\n    openBatchDialog: function openBatchDialog() {\n      var self = this;\n      this.loadProgress(function (progress) {\n        if (progress) {\n          self.showProgressBar(true);\n          return;\n        }\n        var $dialog = wmf.util.dialog({\n          title: this.options.label,\n          url: this.options.url\n        });\n        $dialog.delegate('.batch-processor-btn-ok', 'click', function () {\n          var $form = $(this).closest('form');\n          var $checkedTarget = $form.find(':radio[name=\"target\"]:checked');\n          if ($checkedTarget.length === 0) {\n            wmf.util.tip('\u8bf7\u9009\u62e9\u76ee\u6807\u5ba2\u6237');\n            return;\n          }\n          var target = $checkedTarget.val();\n          if ('RESTAURANT' === target) {\n            var $restaurantId = $form.find(':input[name=\"restaurantId\"]');\n            if (isEmpty($restaurantId.val())) {\n              wmf.util.tip('\u8bf7\u9009\u62e9\u5f00\u5361\u95e8\u5e97');\n              return;\n            }\n          }\n          multipartFormSubmitAjax($form, function (result) {\n            if (result.success) {\n              closeDialog();\n              self.showProgressBar();\n            } else {\n              wmf.ajax.errorHandler(result);\n            }\n          });\n        });\n        $dialog.delegate(':input[name=\"restaurantId\"]', 'change', function () {\n          var type = $dialog.find(':input[name=\"type\"]').val();\n          if ('CARD_FIRST_RESTAURANT_MODIFY' === type) {\n            // \u907f\u514d\u4fee\u6539\u524d\u540e\u95e8\u5e97\u4e0d\u80fd\u9009\u6210\u4e00\u6837\n            var $restaurantId = $(this);\n            var restaurantId = $restaurantId.val();\n            var $firstRestaurantId = $dialog.find(':input[name=\"firstRestaurantId\"]');\n            $firstRestaurantId.find('option').removeAttr('disabled');\n            $firstRestaurantId.find('option[value=\"' + restaurantId + '\"]').attr('disabled', 'disabled');\n          }\n        });\n        $dialog.delegate('.batch-processor-btn-cancel', 'click', function () {\n          closeDialog();\n        });\n      });\n    },\n    showProgressBar: function showProgressBar(already) {\n      var self = this;\n      var $progress = $('<div class=\"loading-wrapper\">' + '<img class=\"loading-icon\" src=\"/images/loading.gif\"/>' + '<span class=\"progress-text\">' + I18N.t('\u6b63\u5728\u5904\u7406\uff0c\u8bf7\u7a0d\u540e...') + '</span>' + '</div>');\n      wmf.util.alert($progress, {\n        ok: function ok() {\n          reload();\n          return true;\n        },\n        cancel: function cancel() {\n          reload();\n          return true;\n        }\n      });\n      self.progressor = setInterval(function () {\n        self.loadProgress(function (progress) {\n          var $text = $progress.find('.progress-text');\n          if (progress) {\n            $text.html((already ? I18N.t('\u4e0a\u6b21\u4efb\u52a1') : '') + I18N.t('\u6b63\u5728\u5904\u7406\uff0c\u5f53\u524d\u8fdb\u5ea6') + ' ' + progress.current + '/' + progress.total);\n          } else {\n            $progress.find('.loading-icon').remove();\n            $text.html(self.options.label + I18N.t('\u6210\u529f\uff01'));\n            self.$progressDialog = null;\n            clearInterval(self.progressor);\n            self.progressor = null;\n            if (typeof self.options.onCompleted === 'function') {\n              self.options.onCompleted.apply(self);\n            }\n          }\n        });\n      }, 1000);\n    },\n    loadProgress: function loadProgress(callback) {\n      var self = this;\n      if (!this.options.progress) {\n        callback.apply(self);\n        return;\n      }\n      if (!this.options.progressUrl) {\n        var url = this.options.url,\n          queryString = '';\n        if (url.indexOf('?') > -1) {\n          var ary = url.split('?');\n          url = ary[0];\n          queryString = ary[1];\n        }\n        this.options.progressUrl = url + this.options.progressSuffix + '?' + queryString;\n      }\n      wmf.ajax.doAjax({\n        url: this.options.progressUrl,\n        success: function success(result) {\n          if (result.success) {\n            callback.apply(self, [result.progress]);\n          } else {\n            callback.apply(self);\n          }\n        }\n      });\n    }\n  });\n  var old = $.fn.batchCardProcessor;\n  $.fn.batchCardProcessor = function (options) {\n    return this.each(function () {\n      var self = $(this),\n        data = self.data('batchCardProcessor');\n      if (!data) self.data('batchCardProcessor', data = new BatchCardProcessor(self, options));\n      return data;\n    });\n  };\n  $.fn.batchCardProcessor.Constructor = BatchCardProcessor;\n  $.fn.batchCardProcessor.noConflict = function () {\n    $.fn.batchCardProcessor = old;\n    return this;\n  };\n  $.fn.batchCardProcessor.defaults = {\n    label: '',\n    url: '',\n    progress: true,\n    progressUrl: '',\n    progressSuffix: '_progress',\n    onCompleted: function onCompleted() {}\n  };\n})(jQuery);\n\n/**\n * \u5bcc\u6587\u672c\u7f16\u8f91\u5668\n */\n(function ($) {\n  function RichTextEditor(el, options) {\n    this.$el = $(el);\n    this.options = $.extend(true, {}, $.fn.richTextEditor.defaults, options || {});\n    this.init();\n  }\n  $.extend(RichTextEditor.prototype, {\n    init: function init() {\n      var self = this;\n      this.$el.summernote($.extend(this.options, {\n        callbacks: {\n          onImageUpload: function onImageUpload(files) {\n            for (var i = 0; i < files.length; i++) {\n              self.pictureUploader(files[i]);\n            }\n          },\n          onPaste: function onPaste(e) {\n            e.preventDefault();\n            // \u83b7\u53d6\u7c98\u8d34\u7684\u6587\u672c\n            var clipboardData = (e.originalEvent || e).clipboardData || window.clipboardData;\n            var textHtml = clipboardData.getData('text/html');\n            if (textHtml) {\n              var root = document.createElement('div');\n              root.innerHTML = textHtml;\n              var unsupportedTags = ['html', 'body', 'script', 'style', 'iframe'];\n              var keepStyleNames = ['color', 'fontSize', 'fontWeight', 'textAlign'];\n              var noStyleTags = ['br'];\n              var rootColor = root.style.color;\n              /**\n               * \u7b80\u5316\u6587\u6863\u6811\n               */\n              var simplifyNode = function simplifyNode(node) {\n                var children = Array.from(node.childNodes);\n                for (var i = 0; i < children.length; i++) {\n                  var child = children[i];\n                  if (child.nodeType !== Node.ELEMENT_NODE) {\n                    continue;\n                  }\n                  simplifyNode(child);\n                  // \u5982\u679c\u5f53\u524d\u8282\u70b9\u53ea\u6709\u4e00\u4e2a\u5b50\u5143\u7d20\uff0c\u5c1d\u8bd5\u7b80\u5316\n                  if (child.childNodes.length === 1 && child.childNodes[0].nodeType === Node.ELEMENT_NODE) {\n                    var grandChild = child.childNodes[0];\n                    // \u7b80\u5316\u89c4\u5219\uff1a\u5047\u8bbe\u6211\u4eec\u60f3\u79fb\u9664\u6ca1\u6709class, id, style\u7b49\u5c5e\u6027\u7684\u65e0\u7528\u5305\u88f9\u5143\u7d20\n                    if (!child.hasAttributes()) {\n                      // \u53ef\u6839\u636e\u9700\u8981\u8c03\u6574\u5224\u65ad\u6761\u4ef6\n                      // \u5c06grandChild\u66ff\u6362\u6389child\n                      node.insertBefore(grandChild, child);\n                      node.removeChild(child);\n                      i--; // \u8c03\u6574\u7d22\u5f15\u4ee5\u786e\u4fdd\u6b63\u786e\u904d\u5386\n                    }\n                  }\n                }\n              };\n\n              var removeCommentNodes = function removeCommentNodes(node) {\n                var children = Array.from(node.childNodes);\n                for (var _i = 0, _children = children; _i < _children.length; _i++) {\n                  var child = _children[_i];\n                  if (child.nodeType === Node.COMMENT_NODE) {\n                    child.parentNode.removeChild(child);\n                  } else if (child.nodeType === Node.ELEMENT_NODE) {\n                    removeCommentNodes(child);\n                  }\n                }\n              };\n              var removeEmptyNodes = function removeEmptyNodes(node) {\n                var children = Array.from(node.childNodes);\n                for (var _i2 = 0, _children2 = children; _i2 < _children2.length; _i2++) {\n                  var child = _children2[_i2];\n                  if (child.nodeType === Node.ELEMENT_NODE) {\n                    removeEmptyNodes(child);\n                    var textContent = child.textContent.trim();\n                    if (!textContent && !child.querySelector('*')) {\n                      child.parentNode.removeChild(child);\n                    }\n                  }\n                }\n              };\n              // \u7b80\u5316\u5143\u7d20\n              simplifyNode(root);\n              // \u79fb\u9664\u6ce8\u91ca\u8282\u70b9\n              removeCommentNodes(root);\n              // \u79fb\u9664\u7a7a\u5143\u7d20\n              removeEmptyNodes(root);\n              // \u7406\u4e0d\u652f\u6301\u7684\u6807\u7b7e\u548c\u5c5e\u6027\n              root.querySelectorAll('*').forEach(function (node) {\n                if (unsupportedTags.includes(node.tagName.toLowerCase())) {\n                  node.parentNode.removeChild(node);\n                } else {\n                  var keepStyles = {};\n                  keepStyleNames.forEach(function (styleName) {\n                    keepStyles[styleName] = node.style[styleName];\n                  });\n                  // remove All attr\n                  node.getAttributeNames().forEach(function (attr) {\n                    node.removeAttribute(attr);\n                  });\n                  if (!noStyleTags.includes(node.tagName.toLowerCase())) {\n                    for (var styleName in keepStyles) {\n                      if ('color' === styleName && rootColor === keepStyles[styleName]) {\n                        // \u5ffd\u7565\u6ca1\u6709\u7279\u6b8a\u8bbe\u7f6e\u7684\u6587\u672c\u989c\u8272\n                        continue;\n                      }\n                      node.style[styleName] = keepStyles[styleName];\n                    }\n                  }\n                }\n              });\n              var clearedHtml = root.innerHTML;\n              $(this).summernote('pasteHTML', clearedHtml);\n            } else {\n              var textPlain = clipboardData.getData('text/plain');\n              textPlain = textPlain.replace(/\\n/g, '<br/>');\n              $(this).summernote('pasteHTML', textPlain);\n            }\n          }\n        }\n      }));\n    },\n    pictureUploader: function pictureUploader(file) {\n      var self = this;\n      var img = document.createElement('img');\n      img.alt = '';\n      img.src = URL.createObjectURL(file);\n      this.$el.summernote('insertNode', img);\n      var $img = $(img);\n      var $parent = $img.parent();\n      $parent.attr('data-progress', 'uploading').addClass('file-upload');\n      var fieldName = String(+new Date());\n      var data = new FormData();\n      data.append(fieldName, file);\n      wmf.ajax.doAjaxPost({\n        data: data,\n        url: '/common/file/upload?mode=1&dataType=json&token=' + wmf.token + '&fieldName=' + fieldName,\n        cache: false,\n        contentType: false,\n        processData: false,\n        success: function success(result) {\n          if (result.success) {\n            img.src = result.url;\n            $parent.attr('data-progress', 'uploaded');\n            setTimeout(function () {\n              $parent.removeAttr('data-progress').removeClass('file-upload');\n              self.$el.data('summernote').triggerEvent('change');\n            }, 500);\n          } else {\n            $parent.attr('data-progress', 'upload-error');\n            $parent.attr('data-error', result.message);\n          }\n        }\n      });\n    }\n  });\n  var old = $.fn.richTextEditor;\n  $.fn.richTextEditor = function (options) {\n    return this.each(function () {\n      var self = $(this),\n        data = self.data('richTextEditor');\n      if (!data) self.data('richTextEditor', data = new RichTextEditor(self, options));\n      return data;\n    });\n  };\n  $.fn.richTextEditor.Constructor = RichTextEditor;\n  $.fn.richTextEditor.noConflict = function () {\n    $.fn.richTextEditor = old;\n    return this;\n  };\n  $.fn.richTextEditor.defaults = {\n    toolbar: [[\"style\", [\"style\"]], [\"font\", [\"bold\", \"underline\", \"clear\"]], ['fontsize', ['fontsize']], [\"color\", [\"color\"]], [\"para\", [\"ul\", \"ol\", \"paragraph\"]], [\"table\", [\"table\"]], [\"insert\", [\"link\", \"picture\"]], [\"view\", [\"codeview\"]]],\n    lang: 'zh-CN',\n    dialogsInBody: true\n  };\n})(jQuery);"],
"names":["_instanceof","left","right","Symbol","hasInstance","_typeof","obj","iterator","constructor","prototype","$","wmf","util","autoCompleteOff","listOperation","bindMenuToggleEvent","jQuery","cachedScript","jQuery.cachedScript","url","options","extend","dataType","cache","ajax","initMultipleSelect","opts","placeholder","I18N","t","selectAll","single","singleRadio","multiple","hideOptgroupCheckboxes","multipleWidth","minimumCountSelected","width","position","displayHtml","displayValues","displayTitle","isOpen","keepOpen","openOnHover","showClear","formatSelectAll","formatAllSelected","formatCountSelected","formatNoMatchesFound","el","multipleSelect","changeStatusReload","tips","status","name","selectedValues","getCheckedValue","length","alert","confirm","ok","doAjax","type","data","multi","ids","success","result","reload","errorHandler","deleteReload","formSubmit","form","submit","multipartFormSubmitAjax","$multipartForm","callback","formData","FormData","find","each","index","$field","fieldName","attr","is","files","file","append","prop","val","onComplete","closeDialog","xhr","XMLHttpRequest","onreadystatechange","xhr.onreadystatechange","readyState","JSON","parse","responseText","err","message","apply","Error","open","send","buildSubmitForm","action","method","target","params","$form","style","value","generateQRCode","title","setting","dialogId","height","label","desc","showCopyBtn","showDownloadBtn","showUrl","imageDownloadUrl","showClose","buildUrl","download","indexOf","location","origin","encodeURIComponent","baseUrl","downloadUrl","initDialog","initCopyTextElement","element","_text","clipboard","ClipboardJS","text","on","tip","e","copyText","id","copyToClipboard","click","openWindow","window","changeStatusDoSearch","select","forward","bindDatePicker","datepicker","changeMonth","changeYear","showButtonPanel","_bindDatePicker","bindDatetimePicker","datetimepicker","jquery","$el","arguments","undefined","_bindDatetimePicker","elem","format","minView","todayBtn","autoclose","language","minDate","startDate","moment","isValid","toDate","maxDate","endDate","bindDateOfBirthPicker","yearRange","Date","bindDateFromToPicker","from","to","dateLimit","$startDate","$endDate","_datepicker","onSelect","date","selected","log","isBefore","endMaxDate","momentAdd","clone","isAfter","startMinDate","subtract","momentObj","field","add","bindDateRange","fields","initFieldValue","inst","valueText","split","$dateFrom","$dateTo","html","fromBeforeDays","isEmpty","dateFrom","dateTo","lang","display","defaultValue","onClose","onCancel","event","onSet","onchange","mobiscroll","range","bindMonthPicker","dateFormat","currentText","closeText","monthOnly","dateText","selectedYear","selectedMonth","blur","beforeShow","options.beforeShow","$calendar","dpDiv","toggleClass","bindTimeFromToPicker","timepicker","timeRange","bindDateTimeFromToPicker","datetimeRange","showSecond","timeFormat","memberChangePassword","content","hide","bind","css","show","buildURI","path","pathname","replace","accountPrefixRegex","editMemberDialog","openAjaxDialog","modifyTelephoneDialog","changePasswordDialog","isV2","str","href","editMemberInfoAgency","openDialog","loadUrl","modal","_dialog","initDialogById","closeDialogById","modalSize","$dialog","removeBackdrop","$backdrop","one","transition","end","document","body","removeClass","remove","setTimeout","wmfTransitionEnd","onCloseDialog","closeDialogByDialog","$dom","$ele","$modalDialog","closest","children","parent","closeTargetDialog","targetId","renderDialogTo","renderDialogTo$el","dialogSubmitReload","ajaxSubmit","ajaxErrorHandler","dialogSubmit","fun","submitWithAjax","redirectUrl","tabSelector","tabs","dialogSubmitClose","dialogSubmitCloseReload","dialogSubmitRefreshTab","refreshCurrentTabs","ajaxSubmitForward","forwardUrl","searchByPageNumber","currentPage","targetIdOrCallback","renderOnly","searchByPageNumberOptions","prevPage","prevMinCursor","prevMaxCursor","nonBlockUiOnForward","thisForm","dataParam","serialize","searchUrl","urlConcat","prevPageParam","prevMinCursorParam","prevMaxCursorParam","$target","refreshCurrentTabDataUrl","requestType","$error","error","x","s","unblockUI","defaults","doNotShowLoading","forwardNonBlockUI","forwardToPage","page","setUrlParam","form2MapData","arrayData","serializeArray","mapData","searchByPageNumberV2","setUrlParams","search","tabsSearch","loadCurrentTabs","prefix","suffix","searchByInputPageNumber","goToPage","pageCount","pageNumber","reg","test","toggleMore","$toggleElem","currentValue","toggleValue","toggleSelector","hasClass","addClass","changeStatus","urlPrefix","tab","cancelBubble","preventDefault","dialog","tabsChangeStatus","options.callback","changeStatusCallback","deleteRecord","afterAjaxReload","ajaxRequest","pictureUploader","fieldItem","uploadScript","token","fileObjName","buttonText","fileType","fileSizeLimit","onInit","onUpload","imageShow","empty","onUploadComplete","response","handleUploadResult","afterUploadComplete","onError","errorType","onClean","onFallback","key","initPicture","oKey","showPicture","uploadifive","excelUploader","uploadResult","importV2","uploadVerParma","onUploadCompleteImportV2","titleRowItems","parseJSON","titleRow","errorCnt","rightCnt","importDataAllItems","importData","importDataErrorInfos","importDataError","rightItems","errorItems","idx","errorInfo","errorItem","push","handleImportData","resultElement","downloadCsvByData","fileName","stringify","errors","i","param","setImportProgress","count","setProgress","currentIndex","progressIndex","addOneMills","submitCount","lastStartTime","getTime","parseInt","setCookie","importType","importDataKey","rid","importDataInfo","continueImport","localStorage","getItem","importTypeName","successCount","failedCount","importDataJSON","operationDate","setItem","statusIndex","remarkIndex","cancel","uploadComplete","showCloseBtn","okBtnText","cancelBtnText","saveOrDeleteImportResultLog","canExecuteNext","importMember","setInterval","clearInterval","removeAttr","dataItems","actSubmitCount","dataIndex","dataItem","doAjaxPost","importDataUrl","rIndex","itemResults","process","downloadCsv","filename","blob","Blob","link","createElement","URL","createObjectURL","setAttribute","appendChild","removeChild","exportImportResult","item","importItem","j","callBack","failMessage","removeItem","templateDownload","excelUploadDialog","templateName","openExcelUploadDialog","templateDownloadAndUploadDialog","intros","buttons","className","onClick","init","template","$content","$intros","intro","appendTo","$buttons","btn","saveImportData","getCookieValueByKey","hasImportDataPlan","importDataInfoStr","serverRushing","multiPictureUploader","preFun","del","size","selectCount","Array","pic","background","$this","updatePictureFieldValue","keys","join","removePicture","minImgCount","mp3Uploader","initAudioPlayer","successTimeout","musicShow","appUploader","upload","fontFileUploader","base64Handler","base64","base64Download","Window","debug","downloadBase64File","inputItem","base64Data","post","$mediaIdDom","media_id","img","initPictureDelete","off","cleanPicture","cleanAudio","trigger","src","audio","preload","clearBtn","audiojs","events","ready","createAll","substring","lastIndexOf","nameShow","decodeURIComponent","openTemplateChooseDialog","categories","$panel","$tabs","li","category","otherLi","$table","delegate","$tr","console","loadTemplate","templates","$tbody","$name","$imagePreview","$operation","$btn","bindSystemWindowResizeEvent","resize","bodyHeight","pageHeight","headHeight","outerHeight","minHeight","fullHeight","login","memberReg","switchUser","account","toggleVersion","uri","startsWith","toggleShow","initCondition","initConditionByElement","$element","answerClick","answerClickByElement","$menu","$li","siblings","$search","formatFloat","f","digit","m","Math","pow","round","VerifyCode","timer","timeout","running","waitTime","buttonSelector","fieldSelector","button","bindClickEvent","self","getCode","telephone","disableButton","activeButton","fieldError","refreshWaitingTime","currentTime","timmer","disabled","unbind","focus","validateCode","operator","operation","managerAuthorization","tpl","phoneNumberForShow","needValidateCode","validateCodeDialog","cookie","validationCode","autoClose","cname","ca","decodedCookie","c","charAt","cvalue","seconds","d","setTime","expires","toGMTString","nonsupportTip","dom","flyhandApiHasCompany","slice","call","initUEditor","UM","delEditor","getEditor","chooseCardBackgroundTemplate","$uploader","choosePictureTemplate","cardBackgroundTemplates","onChoose","picture","uploader","resetPicture","initPictureChooseDialog","urlKey","$wrapper","$template","backgroundImageUrl","backgroundColor","color","$bd","currentTarget","qrLogin","executeSwitchLogin","password","toUpperCase","executeUnbindAccount","tryCnt","openId","openType","authCode","showAccountBindModal","btnText","invalidReason","isRebind","accountAttr","dialogClass","submitAccountBind","qrBindAppend","loginAccount","loginPassword","renderAndShowAccounts","currentAccount","accounts","acc","statusHtml","invalid","rebindable","isCurrentAccount","itemClass","sessionStorage","stopPropagation","initialAccounts","bindDialogTitle","bindDialogBtnText","PosterTemplate","fn","posterTemplate","boundarySize","controlDataArray","controlData","sizeWidth","sizeHeight","parseFloat","top","positionTop","positionLeft","publicStyle","wrapperClass","$boundary","boundaryClass","$control","controlClass","initData","_this","change","setData","disabledEdit","backgroundImage","loadImageBoundary","boundary","initOperation","control","itemData","$word","wordCnt","fontSize","marginTop","resizable","containment","handles","resizeHandles","aspectRatio","grid","stop","ui","onSizeChange","helper","draggable","onPositionChange","cData","onChange","refresh","imageUrl","context","image","Image","onload","image.onload","wrapperSize","rate","borderWidth","old","$.fn.posterTemplate","Constructor","noConflict","$.fn.posterTemplate.noConflict","BatchCardProcessor","batchCardProcessor","progress","openBatchDialog","loadProgress","showProgressBar","$checkedTarget","$restaurantId","restaurantId","$firstRestaurantId","already","$progress","progressor","$text","current","total","$progressDialog","onCompleted","progressUrl","queryString","ary","progressSuffix","$.fn.batchCardProcessor","$.fn.batchCardProcessor.noConflict","RichTextEditor","richTextEditor","summernote","callbacks","onImageUpload","onPaste","clipboardData","originalEvent","textHtml","getData","root","innerHTML","unsupportedTags","keepStyleNames","noStyleTags","rootColor","simplifyNode","node","childNodes","child","nodeType","Node","ELEMENT_NODE","grandChild","hasAttributes","insertBefore","removeCommentNodes","_i","_children","COMMENT_NODE","parentNode","removeEmptyNodes","_i2","_children2","textContent","trim","querySelector","querySelectorAll","forEach","includes","tagName","toLowerCase","keepStyles","styleName","getAttributeNames","removeAttribute","clearedHtml","textPlain","alt","$parent","$img","String","contentType","processData","triggerEvent","$.fn.richTextEditor","$.fn.richTextEditor.noConflict","toolbar","dialogsInBody"]
}
