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 | contactListProps: () => contactListProps,
|
21 | default: () => stdin_default
|
22 | });
|
23 | module.exports = __toCommonJS(stdin_exports);
|
24 | var import_vue = 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 | var import_button = require("../button");
|
31 | var import_radio_group = require("../radio-group");
|
32 | const [name, bem, t] = (0, import_utils.createNamespace)("contact-list");
|
33 | const contactListProps = {
|
34 | list: Array,
|
35 | addText: String,
|
36 | modelValue: import_utils.unknownProp,
|
37 | defaultTagText: String
|
38 | };
|
39 | var stdin_default = (0, import_vue.defineComponent)({
|
40 | name,
|
41 | props: contactListProps,
|
42 | emits: ["add", "edit", "select", "update:modelValue"],
|
43 | setup(props, {
|
44 | emit
|
45 | }) {
|
46 | const renderItem = (item, index) => {
|
47 | const onClick = () => {
|
48 | emit("update:modelValue", item.id);
|
49 | emit("select", item, index);
|
50 | };
|
51 | const renderRightIcon = () => (0, import_vue.createVNode)(import_radio.Radio, {
|
52 | "class": bem("radio"),
|
53 | "name": item.id,
|
54 | "iconSize": 18
|
55 | }, null);
|
56 | const renderEditIcon = () => (0, import_vue.createVNode)(import_icon.Icon, {
|
57 | "name": "edit",
|
58 | "class": bem("edit"),
|
59 | "onClick": (event) => {
|
60 | event.stopPropagation();
|
61 | emit("edit", item, index);
|
62 | }
|
63 | }, null);
|
64 | const renderContent = () => {
|
65 | const nodes = [`${item.name}\uFF0C${item.tel}`];
|
66 | if (item.isDefault && props.defaultTagText) {
|
67 | nodes.push((0, import_vue.createVNode)(import_tag.Tag, {
|
68 | "type": "primary",
|
69 | "round": true,
|
70 | "class": bem("item-tag")
|
71 | }, {
|
72 | default: () => [props.defaultTagText]
|
73 | }));
|
74 | }
|
75 | return nodes;
|
76 | };
|
77 | return (0, import_vue.createVNode)(import_cell.Cell, {
|
78 | "key": item.id,
|
79 | "isLink": true,
|
80 | "center": true,
|
81 | "class": bem("item"),
|
82 | "titleClass": bem("item-title"),
|
83 | "onClick": onClick
|
84 | }, {
|
85 | icon: renderEditIcon,
|
86 | title: renderContent,
|
87 | "right-icon": renderRightIcon
|
88 | });
|
89 | };
|
90 | return () => (0, import_vue.createVNode)("div", {
|
91 | "class": bem()
|
92 | }, [(0, import_vue.createVNode)(import_radio_group.RadioGroup, {
|
93 | "modelValue": props.modelValue,
|
94 | "class": bem("group")
|
95 | }, {
|
96 | default: () => [props.list && props.list.map(renderItem)]
|
97 | }), (0, import_vue.createVNode)("div", {
|
98 | "class": [bem("bottom"), "van-safe-area-bottom"]
|
99 | }, [(0, import_vue.createVNode)(import_button.Button, {
|
100 | "round": true,
|
101 | "block": true,
|
102 | "type": "primary",
|
103 | "class": bem("add"),
|
104 | "text": props.addText || t("addContact"),
|
105 | "onClick": () => emit("add")
|
106 | }, null)])]);
|
107 | }
|
108 | });
|