AddressListItem.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. var __defProp = Object.defineProperty;
  2. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  3. var __getOwnPropNames = Object.getOwnPropertyNames;
  4. var __hasOwnProp = Object.prototype.hasOwnProperty;
  5. var __export = (target, all) => {
  6. for (var name2 in all)
  7. __defProp(target, name2, { get: all[name2], enumerable: true });
  8. };
  9. var __copyProps = (to, from, except, desc) => {
  10. if (from && typeof from === "object" || typeof from === "function") {
  11. for (let key of __getOwnPropNames(from))
  12. if (!__hasOwnProp.call(to, key) && key !== except)
  13. __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  14. }
  15. return to;
  16. };
  17. var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
  18. var stdin_exports = {};
  19. __export(stdin_exports, {
  20. default: () => stdin_default
  21. });
  22. module.exports = __toCommonJS(stdin_exports);
  23. var import_vue = require("vue");
  24. var import_vue2 = require("vue");
  25. var import_utils = require("../utils");
  26. var import_tag = require("../tag");
  27. var import_icon = require("../icon");
  28. var import_cell = require("../cell");
  29. var import_radio = require("../radio");
  30. const [name, bem] = (0, import_utils.createNamespace)("address-item");
  31. var stdin_default = (0, import_vue2.defineComponent)({
  32. name,
  33. props: {
  34. address: (0, import_utils.makeRequiredProp)(Object),
  35. disabled: Boolean,
  36. switchable: Boolean,
  37. defaultTagText: String
  38. },
  39. emits: ["edit", "click", "select"],
  40. setup(props, {
  41. slots,
  42. emit
  43. }) {
  44. const onClick = () => {
  45. if (props.switchable) {
  46. emit("select");
  47. }
  48. emit("click");
  49. };
  50. const renderRightIcon = () => (0, import_vue.createVNode)(import_icon.Icon, {
  51. "name": "edit",
  52. "class": bem("edit"),
  53. "onClick": (event) => {
  54. event.stopPropagation();
  55. emit("edit");
  56. emit("click");
  57. }
  58. }, null);
  59. const renderTag = () => {
  60. if (slots.tag) {
  61. return slots.tag(props.address);
  62. }
  63. if (props.address.isDefault && props.defaultTagText) {
  64. return (0, import_vue.createVNode)(import_tag.Tag, {
  65. "type": "danger",
  66. "round": true,
  67. "class": bem("tag")
  68. }, {
  69. default: () => [props.defaultTagText]
  70. });
  71. }
  72. };
  73. const renderContent = () => {
  74. const {
  75. address,
  76. disabled,
  77. switchable
  78. } = props;
  79. const Info = [(0, import_vue.createVNode)("div", {
  80. "class": bem("name")
  81. }, [`${address.name} ${address.tel}`, renderTag()]), (0, import_vue.createVNode)("div", {
  82. "class": bem("address")
  83. }, [address.address])];
  84. if (switchable && !disabled) {
  85. return (0, import_vue.createVNode)(import_radio.Radio, {
  86. "name": address.id,
  87. "iconSize": 18
  88. }, {
  89. default: () => [Info]
  90. });
  91. }
  92. return Info;
  93. };
  94. return () => {
  95. var _a;
  96. const {
  97. disabled
  98. } = props;
  99. return (0, import_vue.createVNode)("div", {
  100. "class": bem({
  101. disabled
  102. }),
  103. "onClick": onClick
  104. }, [(0, import_vue.createVNode)(import_cell.Cell, {
  105. "border": false,
  106. "valueClass": bem("value")
  107. }, {
  108. value: renderContent,
  109. "right-icon": renderRightIcon
  110. }), (_a = slots.bottom) == null ? void 0 : _a.call(slots, (0, import_utils.extend)({}, props.address, {
  111. disabled
  112. }))]);
  113. };
  114. }
  115. });