Detail.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. exports.__esModule = true;
  4. exports["default"] = void 0;
  5. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  6. var _utils = require("../utils");
  7. var _cell = _interopRequireDefault(require("../cell"));
  8. var _field = _interopRequireDefault(require("../field"));
  9. var _use = (0, _utils.use)('address-edit-detail'),
  10. sfc = _use[0],
  11. bem = _use[1],
  12. t = _use[2];
  13. var android = (0, _utils.isAndroid)();
  14. var _default = sfc({
  15. props: {
  16. value: String,
  17. error: Boolean,
  18. focused: Boolean,
  19. detailRows: Number,
  20. searchResult: Array,
  21. showSearchResult: Boolean
  22. },
  23. methods: {
  24. onSelect: function onSelect(express) {
  25. this.$emit('select-search', express);
  26. this.$emit('input', ((express.address || '') + " " + (express.name || '')).trim());
  27. },
  28. onFinish: function onFinish() {
  29. this.$refs.field.blur();
  30. },
  31. renderFinish: function renderFinish() {
  32. var h = this.$createElement;
  33. var show = this.value && this.focused && android;
  34. if (show) {
  35. return h("div", {
  36. "class": bem('finish'),
  37. "on": {
  38. "click": this.onFinish
  39. }
  40. }, [t('complete')]);
  41. }
  42. },
  43. renderSearchResult: function renderSearchResult() {
  44. var _this = this;
  45. var h = this.$createElement;
  46. var searchResult = this.searchResult;
  47. var show = this.focused && searchResult && this.showSearchResult;
  48. if (show) {
  49. return searchResult.map(function (express) {
  50. return h(_cell["default"], {
  51. "key": express.name + express.address,
  52. "attrs": {
  53. "title": express.name,
  54. "label": express.address,
  55. "icon": "location-o",
  56. "clickable": true
  57. },
  58. "on": {
  59. "click": function click() {
  60. _this.onSelect(express);
  61. }
  62. }
  63. });
  64. });
  65. }
  66. }
  67. },
  68. render: function render(h) {
  69. return h(_cell["default"], {
  70. "class": bem()
  71. }, [h(_field["default"], {
  72. "attrs": {
  73. "autosize": true,
  74. "rows": this.detailRows,
  75. "clearable": !android,
  76. "type": "textarea",
  77. "maxlength": "200",
  78. "value": this.value,
  79. "error": this.error,
  80. "label": t('label'),
  81. "placeholder": t('placeholder')
  82. },
  83. "ref": "field",
  84. "scopedSlots": {
  85. icon: this.renderFinish
  86. },
  87. "on": (0, _extends2["default"])({}, this.$listeners)
  88. }), this.renderSearchResult()]);
  89. }
  90. });
  91. exports["default"] = _default;