vant-vtk 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/vant-vtk.es.js +125 -49
- package/dist/vant-vtk.es.js.map +1 -1
- package/dist/vant-vtk.umd.js +2 -1
- package/dist/vant-vtk.umd.js.map +1 -1
- package/package.json +12 -10
- package/types/index.d.ts +16 -4
- package/dist/style.css +0 -1
package/dist/vant-vtk.es.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode("[data-v-54417869] .van-checkbox{margin-bottom:8px;margin-right:12px}")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
|
|
2
|
+
import { computed as v, resolveComponent as d, openBlock as g, createBlock as k, normalizeProps as h, guardReactiveProps as C, withCtx as V, createVNode as _, createElementBlock as x, Fragment as b, renderList as F, createTextVNode as P, toDisplayString as j, ref as N, mergeProps as B } from "vue";
|
|
3
|
+
const T = (a, i) => {
|
|
4
|
+
const e = a.__vccOpts || a;
|
|
5
|
+
for (const [p, u] of i)
|
|
6
|
+
e[p] = u;
|
|
6
7
|
return e;
|
|
7
|
-
},
|
|
8
|
+
}, O = /* @__PURE__ */ Object.assign({
|
|
8
9
|
name: "VtkCheckboxField"
|
|
9
10
|
}, {
|
|
10
11
|
__name: "index",
|
|
@@ -23,7 +24,7 @@ const j = (o, n) => {
|
|
|
23
24
|
valueType: {
|
|
24
25
|
type: String,
|
|
25
26
|
default: "array",
|
|
26
|
-
validator: (
|
|
27
|
+
validator: (a) => ["string", "array", "object"].includes(a)
|
|
27
28
|
},
|
|
28
29
|
// 当 valueType 为 string 时的分隔符
|
|
29
30
|
separator: {
|
|
@@ -32,42 +33,42 @@ const j = (o, n) => {
|
|
|
32
33
|
}
|
|
33
34
|
},
|
|
34
35
|
emits: ["update:modelValue", "change"],
|
|
35
|
-
setup(
|
|
36
|
-
const e =
|
|
37
|
-
const [
|
|
36
|
+
setup(a, { emit: i }) {
|
|
37
|
+
const e = a, p = i, u = v(() => Array.isArray(e.options) ? e.options : typeof e.options == "string" && e.options ? e.options.split("/").filter(Boolean).map((t) => {
|
|
38
|
+
const [n, l] = t.split(":");
|
|
38
39
|
return {
|
|
39
|
-
text:
|
|
40
|
-
value:
|
|
40
|
+
text: l || n,
|
|
41
|
+
value: n
|
|
41
42
|
};
|
|
42
|
-
}) : []),
|
|
43
|
+
}) : []), c = v({
|
|
43
44
|
get: () => {
|
|
44
|
-
const
|
|
45
|
-
if (!
|
|
46
|
-
let
|
|
47
|
-
return e.valueType === "string" ?
|
|
45
|
+
const t = e.modelValue;
|
|
46
|
+
if (!t) return [];
|
|
47
|
+
let n = [];
|
|
48
|
+
return e.valueType === "string" ? n = typeof t == "string" ? t.split(e.separator).filter(Boolean) : [] : e.valueType === "object" ? n = Array.isArray(t) ? t.map((l) => (l == null ? void 0 : l.value) ?? l) : [] : n = Array.isArray(t) ? t : [], n.map(String);
|
|
48
49
|
},
|
|
49
|
-
set: (
|
|
50
|
-
let
|
|
51
|
-
e.valueType === "string" ?
|
|
50
|
+
set: (t) => {
|
|
51
|
+
let n;
|
|
52
|
+
e.valueType === "string" ? n = t.join(e.separator) : e.valueType === "object" ? n = u.value.filter((l) => t.includes(String(l.value))) : n = t.map((l) => isNaN(Number(l)) ? l : Array.isArray(e.modelValue) && typeof e.modelValue[0] == "number" ? Number(l) : l), p("update:modelValue", n), p("change", n);
|
|
52
53
|
}
|
|
53
54
|
});
|
|
54
|
-
return (
|
|
55
|
-
const
|
|
56
|
-
return
|
|
57
|
-
input:
|
|
58
|
-
|
|
59
|
-
modelValue:
|
|
60
|
-
"onUpdate:modelValue":
|
|
55
|
+
return (t, n) => {
|
|
56
|
+
const l = d("van-checkbox"), s = d("van-checkbox-group"), o = d("van-field");
|
|
57
|
+
return g(), k(o, h(C(t.$attrs)), {
|
|
58
|
+
input: V(() => [
|
|
59
|
+
_(s, {
|
|
60
|
+
modelValue: c.value,
|
|
61
|
+
"onUpdate:modelValue": n[0] || (n[0] = (r) => c.value = r),
|
|
61
62
|
direction: "horizontal"
|
|
62
63
|
}, {
|
|
63
|
-
default:
|
|
64
|
-
(
|
|
65
|
-
key: String(
|
|
66
|
-
name: String(
|
|
64
|
+
default: V(() => [
|
|
65
|
+
(g(!0), x(b, null, F(u.value, (r) => (g(), k(l, {
|
|
66
|
+
key: String(r.value),
|
|
67
|
+
name: String(r.value),
|
|
67
68
|
shape: "square"
|
|
68
69
|
}, {
|
|
69
|
-
default:
|
|
70
|
-
|
|
70
|
+
default: V(() => [
|
|
71
|
+
P(j(r.text), 1)
|
|
71
72
|
]),
|
|
72
73
|
_: 2
|
|
73
74
|
}, 1032, ["name"]))), 128))
|
|
@@ -79,25 +80,100 @@ const j = (o, n) => {
|
|
|
79
80
|
}, 16);
|
|
80
81
|
};
|
|
81
82
|
}
|
|
82
|
-
}),
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
}), f = /* @__PURE__ */ T(O, [["__scopeId", "data-v-54417869"]]);
|
|
84
|
+
f.install = (a) => {
|
|
85
|
+
a.component(f.name || "VtkCheckboxField", f);
|
|
85
86
|
};
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
87
|
+
const y = /* @__PURE__ */ Object.assign({
|
|
88
|
+
name: "VtkPickerField"
|
|
89
|
+
}, {
|
|
90
|
+
__name: "index",
|
|
91
|
+
props: {
|
|
92
|
+
// 绑定值 (value)
|
|
93
|
+
modelValue: {
|
|
94
|
+
type: [String, Number],
|
|
95
|
+
default: ""
|
|
96
|
+
},
|
|
97
|
+
// 选项数据:支持数组 [{value, text}] 或 字符串 '1:选项1/2:选项2'
|
|
98
|
+
options: {
|
|
99
|
+
type: [Array, String],
|
|
100
|
+
default: () => []
|
|
101
|
+
},
|
|
102
|
+
// 弹窗标题
|
|
103
|
+
title: {
|
|
104
|
+
type: String,
|
|
105
|
+
default: "请选择"
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
emits: ["update:modelValue", "change"],
|
|
109
|
+
setup(a, { emit: i }) {
|
|
110
|
+
const e = a, p = i, u = N(!1), c = v(() => Array.isArray(e.options) ? e.options : typeof e.options == "string" && e.options ? e.options.split("/").filter(Boolean).map((s) => {
|
|
111
|
+
const [o, r] = s.split(":");
|
|
112
|
+
return {
|
|
113
|
+
text: r || o,
|
|
114
|
+
// 如果没有冒号,则 text 和 value 相同
|
|
115
|
+
value: o
|
|
116
|
+
};
|
|
117
|
+
}) : []), t = v(() => {
|
|
118
|
+
const s = c.value.find((o) => String(o.value) === String(e.modelValue));
|
|
119
|
+
return s ? s.text : e.modelValue;
|
|
120
|
+
}), n = v(() => e.modelValue !== void 0 && e.modelValue !== null && e.modelValue !== "" ? [e.modelValue] : []), l = ({ selectedOptions: s }) => {
|
|
121
|
+
var r;
|
|
122
|
+
const o = (r = s[0]) == null ? void 0 : r.value;
|
|
123
|
+
p("update:modelValue", o), p("change", o, s[0]), u.value = !1;
|
|
124
|
+
};
|
|
125
|
+
return (s, o) => {
|
|
126
|
+
const r = d("van-field"), S = d("van-picker"), A = d("van-popup");
|
|
127
|
+
return g(), x(b, null, [
|
|
128
|
+
_(r, B({
|
|
129
|
+
modelValue: t.value,
|
|
130
|
+
"onUpdate:modelValue": o[0] || (o[0] = (m) => t.value = m),
|
|
131
|
+
"is-link": "",
|
|
132
|
+
readonly: "",
|
|
133
|
+
onClick: o[1] || (o[1] = (m) => u.value = !0)
|
|
134
|
+
}, s.$attrs), null, 16, ["modelValue"]),
|
|
135
|
+
_(A, {
|
|
136
|
+
show: u.value,
|
|
137
|
+
"onUpdate:show": o[3] || (o[3] = (m) => u.value = m),
|
|
138
|
+
position: "bottom",
|
|
139
|
+
round: ""
|
|
140
|
+
}, {
|
|
141
|
+
default: V(() => [
|
|
142
|
+
_(S, {
|
|
143
|
+
title: a.title,
|
|
144
|
+
columns: c.value,
|
|
145
|
+
"model-value": n.value,
|
|
146
|
+
onConfirm: l,
|
|
147
|
+
onCancel: o[2] || (o[2] = (m) => u.value = !1)
|
|
148
|
+
}, null, 8, ["title", "columns", "model-value"])
|
|
149
|
+
]),
|
|
150
|
+
_: 1
|
|
151
|
+
}, 8, ["show"])
|
|
152
|
+
], 64);
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
y.install = (a) => {
|
|
157
|
+
a.component(y.name || "VtkPickerField", y);
|
|
158
|
+
};
|
|
159
|
+
const $ = [
|
|
160
|
+
f,
|
|
161
|
+
y
|
|
162
|
+
], w = (a) => {
|
|
163
|
+
$.forEach((i) => {
|
|
164
|
+
i.install ? a.use(i) : i.name && a.component(i.name, i);
|
|
91
165
|
});
|
|
92
|
-
},
|
|
93
|
-
install:
|
|
166
|
+
}, z = {
|
|
167
|
+
install: w,
|
|
94
168
|
// 也导出所有组件,方便直接访问
|
|
95
|
-
CheckboxField:
|
|
96
|
-
|
|
169
|
+
CheckboxField: f,
|
|
170
|
+
PickerField: y
|
|
171
|
+
}, E = "1.0.0";
|
|
97
172
|
export {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
173
|
+
f as CheckboxField,
|
|
174
|
+
y as PickerField,
|
|
175
|
+
z as default,
|
|
176
|
+
w as install,
|
|
177
|
+
E as version
|
|
102
178
|
};
|
|
103
179
|
//# sourceMappingURL=vant-vtk.es.js.map
|
package/dist/vant-vtk.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vant-vtk.es.js","sources":["../packages/checkbox-field/index.vue","../packages/checkbox-field/index.js","../src/index.js"],"sourcesContent":["<template>\r\n <van-field v-bind=\"$attrs\">\r\n <template #input>\r\n <van-checkbox-group v-model=\"internalValue\" direction=\"horizontal\">\r\n <van-checkbox v-for=\"item in parsedOptions\" :key=\"String(item.value)\" :name=\"String(item.value)\" shape=\"square\">\r\n {{ item.text }}\r\n </van-checkbox>\r\n </van-checkbox-group>\r\n </template>\r\n </van-field>\r\n</template>\r\n\r\n<script setup>\r\n import { computed } from 'vue'\r\n\r\n defineOptions({\r\n name: 'VtkCheckboxField'\r\n })\r\n\r\n const props = defineProps({\r\n // 绑定值\r\n modelValue: {\r\n type: [String, Array, Object],\r\n default: () => [],\r\n },\r\n // 选项数据:支持数组 [{value, text}] 或 字符串 '1:选项1/2:选项2'\r\n options: {\r\n type: [Array, String],\r\n default: () => [],\r\n },\r\n // 返回值类型: 'string' (逗号分隔), 'array' (值数组), 'object' (对象数组)\r\n valueType: {\r\n type: String,\r\n default: 'array',\r\n validator: (val) => ['string', 'array', 'object'].includes(val),\r\n },\r\n // 当 valueType 为 string 时的分隔符\r\n separator: {\r\n type: String,\r\n default: ',',\r\n },\r\n })\r\n\r\n const emit = defineEmits(['update:modelValue', 'change'])\r\n\r\n // 解析选项\r\n const parsedOptions = computed(() => {\r\n if (Array.isArray(props.options)) {\r\n return props.options\r\n }\r\n if (typeof props.options === 'string' && props.options) {\r\n return props.options\r\n .split('/')\r\n .filter(Boolean)\r\n .map((item) => {\r\n const [value, text] = item.split(':')\r\n return {\r\n text: text || value,\r\n value: value,\r\n }\r\n })\r\n }\r\n return []\r\n })\r\n\r\n // 使用可写计算属性处理 v-model 绑定\r\n const internalValue = computed({\r\n get: () => {\r\n const val = props.modelValue\r\n if (!val) return []\r\n\r\n let arr = []\r\n if (props.valueType === 'string') {\r\n arr = typeof val === 'string' ? val.split(props.separator).filter(Boolean) : []\r\n } else if (props.valueType === 'object') {\r\n arr = Array.isArray(val) ? val.map((item) => item?.value ?? item) : []\r\n } else {\r\n arr = Array.isArray(val) ? val : []\r\n }\r\n // 统一转为字符串,确保与 van-checkbox 的 name 匹配\r\n return arr.map(String)\r\n },\r\n set: (newValues) => {\r\n let emitValue\r\n if (props.valueType === 'string') {\r\n emitValue = newValues.join(props.separator)\r\n } else if (props.valueType === 'object') {\r\n // 从解析后的选项中过滤出完整的对象\r\n emitValue = parsedOptions.value.filter((opt) => newValues.includes(String(opt.value)))\r\n } else {\r\n // 如果原始数据是数字,则尝试转回数字,否则保持字符串\r\n emitValue = newValues.map((val) => {\r\n return isNaN(Number(val)) ? val : Array.isArray(props.modelValue) && typeof props.modelValue[0] === 'number' ? Number(val) : val\r\n })\r\n }\r\n\r\n emit('update:modelValue', emitValue)\r\n emit('change', emitValue)\r\n },\r\n })\r\n</script>\r\n\r\n<style scoped>\r\n :deep(.van-checkbox) {\r\n margin-bottom: 8px;\r\n margin-right: 12px;\r\n }\r\n</style>\r\n","/**\r\n * CheckboxField 组件单独导出入口\r\n * 支持按需引入\r\n */\r\nimport CheckboxField from './index.vue'\r\n\r\n// 为组件添加 install 方法,支持 app.use() 方式注册\r\nCheckboxField.install = (app) => {\r\n app.component(CheckboxField.name || 'VtkCheckboxField', CheckboxField)\r\n}\r\n\r\nexport default CheckboxField\r\nexport { CheckboxField }\r\n","/**\r\n * Vant-VTK 组件库全量导出入口\r\n * 支持全量引入和按需引入\r\n */\r\nimport CheckboxField from '../packages/checkbox-field/index.js'\r\n\r\n// 所有组件列表\r\nconst components = [\r\n CheckboxField\r\n]\r\n\r\n// 全量注册方法\r\nconst install = (app) => {\r\n components.forEach(component => {\r\n if (component.install) {\r\n app.use(component)\r\n } else if (component.name) {\r\n app.component(component.name, component)\r\n }\r\n })\r\n}\r\n\r\n// 默认导出 - 支持 app.use(VantVtk) 全量注册\r\nexport default {\r\n install,\r\n // 也导出所有组件,方便直接访问\r\n CheckboxField\r\n}\r\n\r\n// 具名导出 - 支持按需引入\r\nexport {\r\n install,\r\n CheckboxField\r\n}\r\n\r\n// 导出版本号\r\nexport const version = '1.0.0'\r\n"],"names":["props","__props","emit","__emit","parsedOptions","computed","item","value","text","internalValue","val","arr","newValues","emitValue","opt","_openBlock","_createBlock","_component_van_field","$attrs","_createVNode","_component_van_checkbox_group","$event","_createElementBlock","_Fragment","_renderList","_component_van_checkbox","_createTextVNode","_toDisplayString","CheckboxField","app","components","install","component","index","version"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBE,UAAMA,IAAQC,GAwBRC,IAAOC,GAGPC,IAAgBC,EAAS,MACzB,MAAM,QAAQL,EAAM,OAAO,IACtBA,EAAM,UAEX,OAAOA,EAAM,WAAY,YAAYA,EAAM,UACtCA,EAAM,QACV,MAAM,GAAG,EACT,OAAO,OAAO,EACd,IAAI,CAACM,MAAS;AACb,YAAM,CAACC,GAAOC,CAAI,IAAIF,EAAK,MAAM,GAAG;AACpC,aAAO;AAAA,QACL,MAAME,KAAQD;AAAA,QACd,OAAOA;AAAA,MACnB;AAAA,IACQ,CAAC,IAEE,CAAA,CACR,GAGKE,IAAgBJ,EAAS;AAAA,MAC7B,KAAK,MAAM;AACT,cAAMK,IAAMV,EAAM;AAClB,YAAI,CAACU,EAAK,QAAO,CAAA;AAEjB,YAAIC,IAAM,CAAA;AACV,eAAIX,EAAM,cAAc,WACtBW,IAAM,OAAOD,KAAQ,WAAWA,EAAI,MAAMV,EAAM,SAAS,EAAE,OAAO,OAAO,IAAI,CAAA,IACpEA,EAAM,cAAc,WAC7BW,IAAM,MAAM,QAAQD,CAAG,IAAIA,EAAI,IAAI,CAACJ,OAASA,KAAA,gBAAAA,EAAM,UAASA,CAAI,IAAI,CAAA,IAEpEK,IAAM,MAAM,QAAQD,CAAG,IAAIA,IAAM,CAAA,GAG5BC,EAAI,IAAI,MAAM;AAAA,MACvB;AAAA,MACA,KAAK,CAACC,MAAc;AAClB,YAAIC;AACJ,QAAIb,EAAM,cAAc,WACtBa,IAAYD,EAAU,KAAKZ,EAAM,SAAS,IACjCA,EAAM,cAAc,WAE7Ba,IAAYT,EAAc,MAAM,OAAO,CAACU,MAAQF,EAAU,SAAS,OAAOE,EAAI,KAAK,CAAC,CAAC,IAGrFD,IAAYD,EAAU,IAAI,CAACF,MAClB,MAAM,OAAOA,CAAG,CAAC,IAAIA,IAAM,MAAM,QAAQV,EAAM,UAAU,KAAK,OAAOA,EAAM,WAAW,CAAC,KAAM,WAAW,OAAOU,CAAG,IAAIA,CAC9H,GAGHR,EAAK,qBAAqBW,CAAS,GACnCX,EAAK,UAAUW,CAAS;AAAA,MAC1B;AAAA,IACJ,CAAG;;;AAlGD,aAAAE,EAAA,GAAAC,EAQYC,OAROC,EAAAA,MAAM,CAAA,GAAA;AAAA,QACZ,SACT,MAIqB;AAAA,UAJrBC,EAIqBC,GAAA;AAAA,wBAJQX,EAAA;AAAA,0DAAAA,EAAa,QAAAY;AAAA,YAAE,WAAU;AAAA;uBACtC,MAA6B;AAAA,sBAA3CC,EAEeC,GAAA,MAAAC,EAFcpB,EAAA,OAAa,CAArBE,YAArBU,EAEeS,GAAA;AAAA,gBAF8B,KAAK,OAAOnB,EAAK,KAAK;AAAA,gBAAI,MAAM,OAAOA,EAAK,KAAK;AAAA,gBAAG,OAAM;AAAA;2BACrG,MAAe;AAAA,kBAAZoB,EAAAC,EAAArB,EAAK,IAAI,GAAA,CAAA;AAAA;;;;;;;;;;;;ACEtBsB,EAAc,UAAU,CAACC,MAAQ;AAC/B,EAAAA,EAAI,UAAUD,EAAc,QAAQ,oBAAoBA,CAAa;AACvE;ACFA,MAAME,IAAa;AAAA,EACjBF;AACF,GAGMG,IAAU,CAACF,MAAQ;AACvB,EAAAC,EAAW,QAAQ,CAAAE,MAAa;AAC9B,IAAIA,EAAU,UACZH,EAAI,IAAIG,CAAS,IACRA,EAAU,QACnBH,EAAI,UAAUG,EAAU,MAAMA,CAAS;AAAA,EAE3C,CAAC;AACH,GAGAC,IAAe;AAAA,EACb,SAAAF;AAAA;AAAA,EAEA,eAAAH;AACF,GASaM,IAAU;"}
|
|
1
|
+
{"version":3,"file":"vant-vtk.es.js","sources":["../packages/checkbox-field/index.vue","../packages/checkbox-field/index.js","../packages/picker-field/index.vue","../packages/picker-field/index.js","../src/index.js"],"sourcesContent":["<template>\r\n <van-field v-bind=\"$attrs\">\r\n <template #input>\r\n <van-checkbox-group v-model=\"internalValue\" direction=\"horizontal\">\r\n <van-checkbox v-for=\"item in parsedOptions\" :key=\"String(item.value)\" :name=\"String(item.value)\" shape=\"square\">\r\n {{ item.text }}\r\n </van-checkbox>\r\n </van-checkbox-group>\r\n </template>\r\n </van-field>\r\n</template>\r\n\r\n<script setup>\r\n import { computed } from 'vue'\r\n\r\n defineOptions({\r\n name: 'VtkCheckboxField'\r\n })\r\n\r\n const props = defineProps({\r\n // 绑定值\r\n modelValue: {\r\n type: [String, Array, Object],\r\n default: () => [],\r\n },\r\n // 选项数据:支持数组 [{value, text}] 或 字符串 '1:选项1/2:选项2'\r\n options: {\r\n type: [Array, String],\r\n default: () => [],\r\n },\r\n // 返回值类型: 'string' (逗号分隔), 'array' (值数组), 'object' (对象数组)\r\n valueType: {\r\n type: String,\r\n default: 'array',\r\n validator: (val) => ['string', 'array', 'object'].includes(val),\r\n },\r\n // 当 valueType 为 string 时的分隔符\r\n separator: {\r\n type: String,\r\n default: ',',\r\n },\r\n })\r\n\r\n const emit = defineEmits(['update:modelValue', 'change'])\r\n\r\n // 解析选项\r\n const parsedOptions = computed(() => {\r\n if (Array.isArray(props.options)) {\r\n return props.options\r\n }\r\n if (typeof props.options === 'string' && props.options) {\r\n return props.options\r\n .split('/')\r\n .filter(Boolean)\r\n .map((item) => {\r\n const [value, text] = item.split(':')\r\n return {\r\n text: text || value,\r\n value: value,\r\n }\r\n })\r\n }\r\n return []\r\n })\r\n\r\n // 使用可写计算属性处理 v-model 绑定\r\n const internalValue = computed({\r\n get: () => {\r\n const val = props.modelValue\r\n if (!val) return []\r\n\r\n let arr = []\r\n if (props.valueType === 'string') {\r\n arr = typeof val === 'string' ? val.split(props.separator).filter(Boolean) : []\r\n } else if (props.valueType === 'object') {\r\n arr = Array.isArray(val) ? val.map((item) => item?.value ?? item) : []\r\n } else {\r\n arr = Array.isArray(val) ? val : []\r\n }\r\n // 统一转为字符串,确保与 van-checkbox 的 name 匹配\r\n return arr.map(String)\r\n },\r\n set: (newValues) => {\r\n let emitValue\r\n if (props.valueType === 'string') {\r\n emitValue = newValues.join(props.separator)\r\n } else if (props.valueType === 'object') {\r\n // 从解析后的选项中过滤出完整的对象\r\n emitValue = parsedOptions.value.filter((opt) => newValues.includes(String(opt.value)))\r\n } else {\r\n // 如果原始数据是数字,则尝试转回数字,否则保持字符串\r\n emitValue = newValues.map((val) => {\r\n return isNaN(Number(val)) ? val : Array.isArray(props.modelValue) && typeof props.modelValue[0] === 'number' ? Number(val) : val\r\n })\r\n }\r\n\r\n emit('update:modelValue', emitValue)\r\n emit('change', emitValue)\r\n },\r\n })\r\n</script>\r\n\r\n<style scoped>\r\n :deep(.van-checkbox) {\r\n margin-bottom: 8px;\r\n margin-right: 12px;\r\n }\r\n</style>\r\n","/**\r\n * CheckboxField 组件单独导出入口\r\n * 支持按需引入\r\n */\r\nimport CheckboxField from './index.vue'\r\n\r\n// 为组件添加 install 方法,支持 app.use() 方式注册\r\nCheckboxField.install = (app) => {\r\n app.component(CheckboxField.name || 'VtkCheckboxField', CheckboxField)\r\n}\r\n\r\nexport default CheckboxField\r\nexport { CheckboxField }\r\n","<template>\r\n <van-field v-model=\"displayValue\" is-link readonly @click=\"showPicker = true\" v-bind=\"$attrs\" />\r\n\r\n <van-popup v-model:show=\"showPicker\" position=\"bottom\" round>\r\n <van-picker :title=\"title\" :columns=\"parsedOptions\" :model-value=\"pickerValue\" @confirm=\"onConfirm\" @cancel=\"showPicker = false\" />\r\n </van-popup>\r\n</template>\r\n\r\n<script setup>\r\n import { ref, computed } from 'vue'\r\n\r\n defineOptions({\r\n name: 'VtkPickerField'\r\n })\r\n\r\n const props = defineProps({\r\n // 绑定值 (value)\r\n modelValue: {\r\n type: [String, Number],\r\n default: '',\r\n },\r\n // 选项数据:支持数组 [{value, text}] 或 字符串 '1:选项1/2:选项2'\r\n options: {\r\n type: [Array, String],\r\n default: () => [],\r\n },\r\n // 弹窗标题\r\n title: {\r\n type: String,\r\n default: '请选择',\r\n },\r\n })\r\n\r\n const emit = defineEmits(['update:modelValue', 'change'])\r\n\r\n const showPicker = ref(false)\r\n\r\n // 解析选项:将字符串或数组统一转化为 [{text, value}] 格式\r\n const parsedOptions = computed(() => {\r\n if (Array.isArray(props.options)) {\r\n return props.options\r\n }\r\n if (typeof props.options === 'string' && props.options) {\r\n // 解析格式 '1:选项1/2:选项2'\r\n return props.options\r\n .split('/')\r\n .filter(Boolean)\r\n .map((item) => {\r\n const [value, text] = item.split(':')\r\n return {\r\n text: text || value, // 如果没有冒号,则 text 和 value 相同\r\n value: value,\r\n }\r\n })\r\n }\r\n return []\r\n })\r\n\r\n // 计算显示文本\r\n const displayValue = computed(() => {\r\n const selected = parsedOptions.value.find((opt) => String(opt.value) === String(props.modelValue))\r\n return selected ? selected.text : props.modelValue\r\n })\r\n\r\n // Picker 组件当前选中的值(Vant 4 的 model-value 是数组)\r\n const pickerValue = computed(() => {\r\n return props.modelValue !== undefined && props.modelValue !== null && props.modelValue !== '' ? [props.modelValue] : []\r\n })\r\n\r\n // 确认选择\r\n const onConfirm = ({ selectedOptions }) => {\r\n const value = selectedOptions[0]?.value\r\n emit('update:modelValue', value)\r\n emit('change', value, selectedOptions[0])\r\n showPicker.value = false\r\n }\r\n</script>\r\n\r\n<style scoped></style>\r\n","/**\r\n * PickerField 组件单独导出入口\r\n * 支持按需引入\r\n */\r\nimport PickerField from './index.vue'\r\n\r\n// 为组件添加 install 方法,支持 app.use() 方式注册\r\nPickerField.install = (app) => {\r\n app.component(PickerField.name || 'VtkPickerField', PickerField)\r\n}\r\n\r\nexport default PickerField\r\nexport { PickerField }\r\n","/**\r\n * Vant-VTK 组件库全量导出入口\r\n * 支持全量引入和按需引入\r\n */\r\nimport CheckboxField from '../packages/checkbox-field/index.js'\r\nimport PickerField from '../packages/picker-field/index.js'\r\n\r\n// 所有组件列表\r\nconst components = [\r\n CheckboxField,\r\n PickerField\r\n]\r\n\r\n// 全量注册方法\r\nconst install = (app) => {\r\n components.forEach(component => {\r\n if (component.install) {\r\n app.use(component)\r\n } else if (component.name) {\r\n app.component(component.name, component)\r\n }\r\n })\r\n}\r\n\r\n// 默认导出 - 支持 app.use(VantVtk) 全量注册\r\nexport default {\r\n install,\r\n // 也导出所有组件,方便直接访问\r\n CheckboxField,\r\n PickerField\r\n}\r\n\r\n// 具名导出 - 支持按需引入\r\nexport {\r\n install,\r\n CheckboxField,\r\n PickerField\r\n}\r\n\r\n// 导出版本号\r\nexport const version = '1.0.0'\r\n"],"names":["props","__props","emit","__emit","parsedOptions","computed","item","value","text","internalValue","val","arr","newValues","emitValue","opt","_openBlock","_createBlock","_component_van_field","$attrs","_createVNode","_component_van_checkbox_group","$event","_createElementBlock","_Fragment","_renderList","_component_van_checkbox","_createTextVNode","_toDisplayString","CheckboxField","app","showPicker","ref","displayValue","selected","pickerValue","onConfirm","selectedOptions","_a","_mergeProps","_component_van_popup","_component_van_picker","PickerField","components","install","component","index","version"],"mappings":"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"}
|
package/dist/vant-vtk.umd.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode("[data-v-54417869] .van-checkbox{margin-bottom:8px;margin-right:12px}")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
|
|
2
|
+
(function(s,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(s=typeof globalThis<"u"?globalThis:s||self,e(s.VantVtk={},s.Vue))})(this,function(s,e){"use strict";const m=((r,p)=>{const t=r.__vccOpts||r;for(const[d,c]of p)t[d]=c;return t})(Object.assign({name:"VtkCheckboxField"},{__name:"index",props:{modelValue:{type:[String,Array,Object],default:()=>[]},options:{type:[Array,String],default:()=>[]},valueType:{type:String,default:"array",validator:r=>["string","array","object"].includes(r)},separator:{type:String,default:","}},emits:["update:modelValue","change"],setup(r,{emit:p}){const t=r,d=p,c=e.computed(()=>Array.isArray(t.options)?t.options:typeof t.options=="string"&&t.options?t.options.split("/").filter(Boolean).map(n=>{const[o,a]=n.split(":");return{text:a||o,value:o}}):[]),y=e.computed({get:()=>{const n=t.modelValue;if(!n)return[];let o=[];return t.valueType==="string"?o=typeof n=="string"?n.split(t.separator).filter(Boolean):[]:t.valueType==="object"?o=Array.isArray(n)?n.map(a=>(a==null?void 0:a.value)??a):[]:o=Array.isArray(n)?n:[],o.map(String)},set:n=>{let o;t.valueType==="string"?o=n.join(t.separator):t.valueType==="object"?o=c.value.filter(a=>n.includes(String(a.value))):o=n.map(a=>isNaN(Number(a))?a:Array.isArray(t.modelValue)&&typeof t.modelValue[0]=="number"?Number(a):a),d("update:modelValue",o),d("change",o)}});return(n,o)=>{const a=e.resolveComponent("van-checkbox"),u=e.resolveComponent("van-checkbox-group"),l=e.resolveComponent("van-field");return e.openBlock(),e.createBlock(l,e.normalizeProps(e.guardReactiveProps(n.$attrs)),{input:e.withCtx(()=>[e.createVNode(u,{modelValue:y.value,"onUpdate:modelValue":o[0]||(o[0]=i=>y.value=i),direction:"horizontal"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,i=>(e.openBlock(),e.createBlock(a,{key:String(i.value),name:String(i.value),shape:"square"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.text),1)]),_:2},1032,["name"]))),128))]),_:1},8,["modelValue"])]),_:1},16)}}}),[["__scopeId","data-v-54417869"]]);m.install=r=>{r.component(m.name||"VtkCheckboxField",m)};const f=Object.assign({name:"VtkPickerField"},{__name:"index",props:{modelValue:{type:[String,Number],default:""},options:{type:[Array,String],default:()=>[]},title:{type:String,default:"请选择"}},emits:["update:modelValue","change"],setup(r,{emit:p}){const t=r,d=p,c=e.ref(!1),y=e.computed(()=>Array.isArray(t.options)?t.options:typeof t.options=="string"&&t.options?t.options.split("/").filter(Boolean).map(u=>{const[l,i]=u.split(":");return{text:i||l,value:l}}):[]),n=e.computed(()=>{const u=y.value.find(l=>String(l.value)===String(t.modelValue));return u?u.text:t.modelValue}),o=e.computed(()=>t.modelValue!==void 0&&t.modelValue!==null&&t.modelValue!==""?[t.modelValue]:[]),a=({selectedOptions:u})=>{var i;const l=(i=u[0])==null?void 0:i.value;d("update:modelValue",l),d("change",l,u[0]),c.value=!1};return(u,l)=>{const i=e.resolveComponent("van-field"),x=e.resolveComponent("van-picker"),b=e.resolveComponent("van-popup");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(i,e.mergeProps({modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=g=>n.value=g),"is-link":"",readonly:"",onClick:l[1]||(l[1]=g=>c.value=!0)},u.$attrs),null,16,["modelValue"]),e.createVNode(b,{show:c.value,"onUpdate:show":l[3]||(l[3]=g=>c.value=g),position:"bottom",round:""},{default:e.withCtx(()=>[e.createVNode(x,{title:r.title,columns:y.value,"model-value":o.value,onConfirm:a,onCancel:l[2]||(l[2]=g=>c.value=!1)},null,8,["title","columns","model-value"])]),_:1},8,["show"])],64)}}});f.install=r=>{r.component(f.name||"VtkPickerField",f)};const k=[m,f],V=r=>{k.forEach(p=>{p.install?r.use(p):p.name&&r.component(p.name,p)})},_={install:V,CheckboxField:m,PickerField:f},v="1.0.0";s.CheckboxField=m,s.PickerField=f,s.default=_,s.install=V,s.version=v,Object.defineProperties(s,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
2
3
|
//# sourceMappingURL=vant-vtk.umd.js.map
|
package/dist/vant-vtk.umd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vant-vtk.umd.js","sources":["../packages/checkbox-field/index.vue","../packages/checkbox-field/index.js","../src/index.js"],"sourcesContent":["<template>\r\n <van-field v-bind=\"$attrs\">\r\n <template #input>\r\n <van-checkbox-group v-model=\"internalValue\" direction=\"horizontal\">\r\n <van-checkbox v-for=\"item in parsedOptions\" :key=\"String(item.value)\" :name=\"String(item.value)\" shape=\"square\">\r\n {{ item.text }}\r\n </van-checkbox>\r\n </van-checkbox-group>\r\n </template>\r\n </van-field>\r\n</template>\r\n\r\n<script setup>\r\n import { computed } from 'vue'\r\n\r\n defineOptions({\r\n name: 'VtkCheckboxField'\r\n })\r\n\r\n const props = defineProps({\r\n // 绑定值\r\n modelValue: {\r\n type: [String, Array, Object],\r\n default: () => [],\r\n },\r\n // 选项数据:支持数组 [{value, text}] 或 字符串 '1:选项1/2:选项2'\r\n options: {\r\n type: [Array, String],\r\n default: () => [],\r\n },\r\n // 返回值类型: 'string' (逗号分隔), 'array' (值数组), 'object' (对象数组)\r\n valueType: {\r\n type: String,\r\n default: 'array',\r\n validator: (val) => ['string', 'array', 'object'].includes(val),\r\n },\r\n // 当 valueType 为 string 时的分隔符\r\n separator: {\r\n type: String,\r\n default: ',',\r\n },\r\n })\r\n\r\n const emit = defineEmits(['update:modelValue', 'change'])\r\n\r\n // 解析选项\r\n const parsedOptions = computed(() => {\r\n if (Array.isArray(props.options)) {\r\n return props.options\r\n }\r\n if (typeof props.options === 'string' && props.options) {\r\n return props.options\r\n .split('/')\r\n .filter(Boolean)\r\n .map((item) => {\r\n const [value, text] = item.split(':')\r\n return {\r\n text: text || value,\r\n value: value,\r\n }\r\n })\r\n }\r\n return []\r\n })\r\n\r\n // 使用可写计算属性处理 v-model 绑定\r\n const internalValue = computed({\r\n get: () => {\r\n const val = props.modelValue\r\n if (!val) return []\r\n\r\n let arr = []\r\n if (props.valueType === 'string') {\r\n arr = typeof val === 'string' ? val.split(props.separator).filter(Boolean) : []\r\n } else if (props.valueType === 'object') {\r\n arr = Array.isArray(val) ? val.map((item) => item?.value ?? item) : []\r\n } else {\r\n arr = Array.isArray(val) ? val : []\r\n }\r\n // 统一转为字符串,确保与 van-checkbox 的 name 匹配\r\n return arr.map(String)\r\n },\r\n set: (newValues) => {\r\n let emitValue\r\n if (props.valueType === 'string') {\r\n emitValue = newValues.join(props.separator)\r\n } else if (props.valueType === 'object') {\r\n // 从解析后的选项中过滤出完整的对象\r\n emitValue = parsedOptions.value.filter((opt) => newValues.includes(String(opt.value)))\r\n } else {\r\n // 如果原始数据是数字,则尝试转回数字,否则保持字符串\r\n emitValue = newValues.map((val) => {\r\n return isNaN(Number(val)) ? val : Array.isArray(props.modelValue) && typeof props.modelValue[0] === 'number' ? Number(val) : val\r\n })\r\n }\r\n\r\n emit('update:modelValue', emitValue)\r\n emit('change', emitValue)\r\n },\r\n })\r\n</script>\r\n\r\n<style scoped>\r\n :deep(.van-checkbox) {\r\n margin-bottom: 8px;\r\n margin-right: 12px;\r\n }\r\n</style>\r\n","/**\r\n * CheckboxField 组件单独导出入口\r\n * 支持按需引入\r\n */\r\nimport CheckboxField from './index.vue'\r\n\r\n// 为组件添加 install 方法,支持 app.use() 方式注册\r\nCheckboxField.install = (app) => {\r\n app.component(CheckboxField.name || 'VtkCheckboxField', CheckboxField)\r\n}\r\n\r\nexport default CheckboxField\r\nexport { CheckboxField }\r\n","/**\r\n * Vant-VTK 组件库全量导出入口\r\n * 支持全量引入和按需引入\r\n */\r\nimport CheckboxField from '../packages/checkbox-field/index.js'\r\n\r\n// 所有组件列表\r\nconst components = [\r\n CheckboxField\r\n]\r\n\r\n// 全量注册方法\r\nconst install = (app) => {\r\n components.forEach(component => {\r\n if (component.install) {\r\n app.use(component)\r\n } else if (component.name) {\r\n app.component(component.name, component)\r\n }\r\n })\r\n}\r\n\r\n// 默认导出 - 支持 app.use(VantVtk) 全量注册\r\nexport default {\r\n install,\r\n // 也导出所有组件,方便直接访问\r\n CheckboxField\r\n}\r\n\r\n// 具名导出 - 支持按需引入\r\nexport {\r\n install,\r\n CheckboxField\r\n}\r\n\r\n// 导出版本号\r\nexport const version = '1.0.0'\r\n"],"names":["props","__props","emit","__emit","parsedOptions","computed","item","value","text","internalValue","val","arr","newValues","emitValue","opt","_openBlock","_createBlock","_component_van_field","$attrs","_createVNode","_component_van_checkbox_group","$event","_createElementBlock","_Fragment","_renderList","_component_van_checkbox","_createTextVNode","_toDisplayString","CheckboxField","app","components","install","component","index","version"],"mappings":"qqBAmBE,MAAMA,EAAQC,EAwBRC,EAAOC,EAGPC,EAAgBC,EAAAA,SAAS,IACzB,MAAM,QAAQL,EAAM,OAAO,EACtBA,EAAM,QAEX,OAAOA,EAAM,SAAY,UAAYA,EAAM,QACtCA,EAAM,QACV,MAAM,GAAG,EACT,OAAO,OAAO,EACd,IAAKM,GAAS,CACb,KAAM,CAACC,EAAOC,CAAI,EAAIF,EAAK,MAAM,GAAG,EACpC,MAAO,CACL,KAAME,GAAQD,EACd,MAAOA,CACnB,CACQ,CAAC,EAEE,CAAA,CACR,EAGKE,EAAgBJ,EAAAA,SAAS,CAC7B,IAAK,IAAM,CACT,MAAMK,EAAMV,EAAM,WAClB,GAAI,CAACU,EAAK,MAAO,CAAA,EAEjB,IAAIC,EAAM,CAAA,EACV,OAAIX,EAAM,YAAc,SACtBW,EAAM,OAAOD,GAAQ,SAAWA,EAAI,MAAMV,EAAM,SAAS,EAAE,OAAO,OAAO,EAAI,CAAA,EACpEA,EAAM,YAAc,SAC7BW,EAAM,MAAM,QAAQD,CAAG,EAAIA,EAAI,IAAKJ,IAASA,GAAA,YAAAA,EAAM,QAASA,CAAI,EAAI,CAAA,EAEpEK,EAAM,MAAM,QAAQD,CAAG,EAAIA,EAAM,CAAA,EAG5BC,EAAI,IAAI,MAAM,CACvB,EACA,IAAMC,GAAc,CAClB,IAAIC,EACAb,EAAM,YAAc,SACtBa,EAAYD,EAAU,KAAKZ,EAAM,SAAS,EACjCA,EAAM,YAAc,SAE7Ba,EAAYT,EAAc,MAAM,OAAQU,GAAQF,EAAU,SAAS,OAAOE,EAAI,KAAK,CAAC,CAAC,EAGrFD,EAAYD,EAAU,IAAKF,GAClB,MAAM,OAAOA,CAAG,CAAC,EAAIA,EAAM,MAAM,QAAQV,EAAM,UAAU,GAAK,OAAOA,EAAM,WAAW,CAAC,GAAM,SAAW,OAAOU,CAAG,EAAIA,CAC9H,EAGHR,EAAK,oBAAqBW,CAAS,EACnCX,EAAK,SAAUW,CAAS,CAC1B,CACJ,CAAG,wIAlGD,OAAAE,EAAAA,UAAA,EAAAC,EAAAA,YAQYC,wCAROC,EAAAA,MAAM,CAAA,EAAA,CACZ,gBACT,IAIqB,CAJrBC,EAAAA,YAIqBC,EAAA,YAJQX,EAAA,2CAAAA,EAAa,MAAAY,GAAE,UAAU,iCACtC,IAA6B,kBAA3CC,EAAAA,mBAEeC,EAAAA,SAAA,KAAAC,EAAAA,WAFcpB,EAAA,MAARE,kBAArBU,EAAAA,YAEeS,EAAA,CAF8B,IAAK,OAAOnB,EAAK,KAAK,EAAI,KAAM,OAAOA,EAAK,KAAK,EAAG,MAAM,6BACrG,IAAe,CAAZoB,EAAAA,gBAAAC,EAAAA,gBAAArB,EAAK,IAAI,EAAA,CAAA,2GCEtBsB,EAAc,QAAWC,GAAQ,CAC/BA,EAAI,UAAUD,EAAc,MAAQ,mBAAoBA,CAAa,CACvE,ECFA,MAAME,EAAa,CACjBF,CACF,EAGMG,EAAWF,GAAQ,CACvBC,EAAW,QAAQE,GAAa,CAC1BA,EAAU,QACZH,EAAI,IAAIG,CAAS,EACRA,EAAU,MACnBH,EAAI,UAAUG,EAAU,KAAMA,CAAS,CAE3C,CAAC,CACH,EAGAC,EAAe,CACb,QAAAF,EAEA,cAAAH,CACF,EASaM,EAAU"}
|
|
1
|
+
{"version":3,"file":"vant-vtk.umd.js","sources":["../packages/checkbox-field/index.vue","../packages/checkbox-field/index.js","../packages/picker-field/index.vue","../packages/picker-field/index.js","../src/index.js"],"sourcesContent":["<template>\r\n <van-field v-bind=\"$attrs\">\r\n <template #input>\r\n <van-checkbox-group v-model=\"internalValue\" direction=\"horizontal\">\r\n <van-checkbox v-for=\"item in parsedOptions\" :key=\"String(item.value)\" :name=\"String(item.value)\" shape=\"square\">\r\n {{ item.text }}\r\n </van-checkbox>\r\n </van-checkbox-group>\r\n </template>\r\n </van-field>\r\n</template>\r\n\r\n<script setup>\r\n import { computed } from 'vue'\r\n\r\n defineOptions({\r\n name: 'VtkCheckboxField'\r\n })\r\n\r\n const props = defineProps({\r\n // 绑定值\r\n modelValue: {\r\n type: [String, Array, Object],\r\n default: () => [],\r\n },\r\n // 选项数据:支持数组 [{value, text}] 或 字符串 '1:选项1/2:选项2'\r\n options: {\r\n type: [Array, String],\r\n default: () => [],\r\n },\r\n // 返回值类型: 'string' (逗号分隔), 'array' (值数组), 'object' (对象数组)\r\n valueType: {\r\n type: String,\r\n default: 'array',\r\n validator: (val) => ['string', 'array', 'object'].includes(val),\r\n },\r\n // 当 valueType 为 string 时的分隔符\r\n separator: {\r\n type: String,\r\n default: ',',\r\n },\r\n })\r\n\r\n const emit = defineEmits(['update:modelValue', 'change'])\r\n\r\n // 解析选项\r\n const parsedOptions = computed(() => {\r\n if (Array.isArray(props.options)) {\r\n return props.options\r\n }\r\n if (typeof props.options === 'string' && props.options) {\r\n return props.options\r\n .split('/')\r\n .filter(Boolean)\r\n .map((item) => {\r\n const [value, text] = item.split(':')\r\n return {\r\n text: text || value,\r\n value: value,\r\n }\r\n })\r\n }\r\n return []\r\n })\r\n\r\n // 使用可写计算属性处理 v-model 绑定\r\n const internalValue = computed({\r\n get: () => {\r\n const val = props.modelValue\r\n if (!val) return []\r\n\r\n let arr = []\r\n if (props.valueType === 'string') {\r\n arr = typeof val === 'string' ? val.split(props.separator).filter(Boolean) : []\r\n } else if (props.valueType === 'object') {\r\n arr = Array.isArray(val) ? val.map((item) => item?.value ?? item) : []\r\n } else {\r\n arr = Array.isArray(val) ? val : []\r\n }\r\n // 统一转为字符串,确保与 van-checkbox 的 name 匹配\r\n return arr.map(String)\r\n },\r\n set: (newValues) => {\r\n let emitValue\r\n if (props.valueType === 'string') {\r\n emitValue = newValues.join(props.separator)\r\n } else if (props.valueType === 'object') {\r\n // 从解析后的选项中过滤出完整的对象\r\n emitValue = parsedOptions.value.filter((opt) => newValues.includes(String(opt.value)))\r\n } else {\r\n // 如果原始数据是数字,则尝试转回数字,否则保持字符串\r\n emitValue = newValues.map((val) => {\r\n return isNaN(Number(val)) ? val : Array.isArray(props.modelValue) && typeof props.modelValue[0] === 'number' ? Number(val) : val\r\n })\r\n }\r\n\r\n emit('update:modelValue', emitValue)\r\n emit('change', emitValue)\r\n },\r\n })\r\n</script>\r\n\r\n<style scoped>\r\n :deep(.van-checkbox) {\r\n margin-bottom: 8px;\r\n margin-right: 12px;\r\n }\r\n</style>\r\n","/**\r\n * CheckboxField 组件单独导出入口\r\n * 支持按需引入\r\n */\r\nimport CheckboxField from './index.vue'\r\n\r\n// 为组件添加 install 方法,支持 app.use() 方式注册\r\nCheckboxField.install = (app) => {\r\n app.component(CheckboxField.name || 'VtkCheckboxField', CheckboxField)\r\n}\r\n\r\nexport default CheckboxField\r\nexport { CheckboxField }\r\n","<template>\r\n <van-field v-model=\"displayValue\" is-link readonly @click=\"showPicker = true\" v-bind=\"$attrs\" />\r\n\r\n <van-popup v-model:show=\"showPicker\" position=\"bottom\" round>\r\n <van-picker :title=\"title\" :columns=\"parsedOptions\" :model-value=\"pickerValue\" @confirm=\"onConfirm\" @cancel=\"showPicker = false\" />\r\n </van-popup>\r\n</template>\r\n\r\n<script setup>\r\n import { ref, computed } from 'vue'\r\n\r\n defineOptions({\r\n name: 'VtkPickerField'\r\n })\r\n\r\n const props = defineProps({\r\n // 绑定值 (value)\r\n modelValue: {\r\n type: [String, Number],\r\n default: '',\r\n },\r\n // 选项数据:支持数组 [{value, text}] 或 字符串 '1:选项1/2:选项2'\r\n options: {\r\n type: [Array, String],\r\n default: () => [],\r\n },\r\n // 弹窗标题\r\n title: {\r\n type: String,\r\n default: '请选择',\r\n },\r\n })\r\n\r\n const emit = defineEmits(['update:modelValue', 'change'])\r\n\r\n const showPicker = ref(false)\r\n\r\n // 解析选项:将字符串或数组统一转化为 [{text, value}] 格式\r\n const parsedOptions = computed(() => {\r\n if (Array.isArray(props.options)) {\r\n return props.options\r\n }\r\n if (typeof props.options === 'string' && props.options) {\r\n // 解析格式 '1:选项1/2:选项2'\r\n return props.options\r\n .split('/')\r\n .filter(Boolean)\r\n .map((item) => {\r\n const [value, text] = item.split(':')\r\n return {\r\n text: text || value, // 如果没有冒号,则 text 和 value 相同\r\n value: value,\r\n }\r\n })\r\n }\r\n return []\r\n })\r\n\r\n // 计算显示文本\r\n const displayValue = computed(() => {\r\n const selected = parsedOptions.value.find((opt) => String(opt.value) === String(props.modelValue))\r\n return selected ? selected.text : props.modelValue\r\n })\r\n\r\n // Picker 组件当前选中的值(Vant 4 的 model-value 是数组)\r\n const pickerValue = computed(() => {\r\n return props.modelValue !== undefined && props.modelValue !== null && props.modelValue !== '' ? [props.modelValue] : []\r\n })\r\n\r\n // 确认选择\r\n const onConfirm = ({ selectedOptions }) => {\r\n const value = selectedOptions[0]?.value\r\n emit('update:modelValue', value)\r\n emit('change', value, selectedOptions[0])\r\n showPicker.value = false\r\n }\r\n</script>\r\n\r\n<style scoped></style>\r\n","/**\r\n * PickerField 组件单独导出入口\r\n * 支持按需引入\r\n */\r\nimport PickerField from './index.vue'\r\n\r\n// 为组件添加 install 方法,支持 app.use() 方式注册\r\nPickerField.install = (app) => {\r\n app.component(PickerField.name || 'VtkPickerField', PickerField)\r\n}\r\n\r\nexport default PickerField\r\nexport { PickerField }\r\n","/**\r\n * Vant-VTK 组件库全量导出入口\r\n * 支持全量引入和按需引入\r\n */\r\nimport CheckboxField from '../packages/checkbox-field/index.js'\r\nimport PickerField from '../packages/picker-field/index.js'\r\n\r\n// 所有组件列表\r\nconst components = [\r\n CheckboxField,\r\n PickerField\r\n]\r\n\r\n// 全量注册方法\r\nconst install = (app) => {\r\n components.forEach(component => {\r\n if (component.install) {\r\n app.use(component)\r\n } else if (component.name) {\r\n app.component(component.name, component)\r\n }\r\n })\r\n}\r\n\r\n// 默认导出 - 支持 app.use(VantVtk) 全量注册\r\nexport default {\r\n install,\r\n // 也导出所有组件,方便直接访问\r\n CheckboxField,\r\n PickerField\r\n}\r\n\r\n// 具名导出 - 支持按需引入\r\nexport {\r\n install,\r\n CheckboxField,\r\n PickerField\r\n}\r\n\r\n// 导出版本号\r\nexport const version = '1.0.0'\r\n"],"names":["props","__props","emit","__emit","parsedOptions","computed","item","value","text","internalValue","val","arr","newValues","emitValue","opt","_openBlock","_createBlock","_component_van_field","$attrs","_createVNode","_component_van_checkbox_group","$event","_createElementBlock","_Fragment","_renderList","_component_van_checkbox","_createTextVNode","_toDisplayString","CheckboxField","app","showPicker","ref","displayValue","selected","pickerValue","onConfirm","selectedOptions","_a","_mergeProps","_component_van_popup","_component_van_picker","PickerField","components","install","component","index","version"],"mappings":"qqBAmBE,MAAMA,EAAQC,EAwBRC,EAAOC,EAGPC,EAAgBC,EAAAA,SAAS,IACzB,MAAM,QAAQL,EAAM,OAAO,EACtBA,EAAM,QAEX,OAAOA,EAAM,SAAY,UAAYA,EAAM,QACtCA,EAAM,QACV,MAAM,GAAG,EACT,OAAO,OAAO,EACd,IAAKM,GAAS,CACb,KAAM,CAACC,EAAOC,CAAI,EAAIF,EAAK,MAAM,GAAG,EACpC,MAAO,CACL,KAAME,GAAQD,EACd,MAAOA,CACnB,CACQ,CAAC,EAEE,CAAA,CACR,EAGKE,EAAgBJ,EAAAA,SAAS,CAC7B,IAAK,IAAM,CACT,MAAMK,EAAMV,EAAM,WAClB,GAAI,CAACU,EAAK,MAAO,CAAA,EAEjB,IAAIC,EAAM,CAAA,EACV,OAAIX,EAAM,YAAc,SACtBW,EAAM,OAAOD,GAAQ,SAAWA,EAAI,MAAMV,EAAM,SAAS,EAAE,OAAO,OAAO,EAAI,CAAA,EACpEA,EAAM,YAAc,SAC7BW,EAAM,MAAM,QAAQD,CAAG,EAAIA,EAAI,IAAKJ,IAASA,GAAA,YAAAA,EAAM,QAASA,CAAI,EAAI,CAAA,EAEpEK,EAAM,MAAM,QAAQD,CAAG,EAAIA,EAAM,CAAA,EAG5BC,EAAI,IAAI,MAAM,CACvB,EACA,IAAMC,GAAc,CAClB,IAAIC,EACAb,EAAM,YAAc,SACtBa,EAAYD,EAAU,KAAKZ,EAAM,SAAS,EACjCA,EAAM,YAAc,SAE7Ba,EAAYT,EAAc,MAAM,OAAQU,GAAQF,EAAU,SAAS,OAAOE,EAAI,KAAK,CAAC,CAAC,EAGrFD,EAAYD,EAAU,IAAKF,GAClB,MAAM,OAAOA,CAAG,CAAC,EAAIA,EAAM,MAAM,QAAQV,EAAM,UAAU,GAAK,OAAOA,EAAM,WAAW,CAAC,GAAM,SAAW,OAAOU,CAAG,EAAIA,CAC9H,EAGHR,EAAK,oBAAqBW,CAAS,EACnCX,EAAK,SAAUW,CAAS,CAC1B,CACJ,CAAG,wIAlGD,OAAAE,EAAAA,UAAA,EAAAC,EAAAA,YAQYC,wCAROC,EAAAA,MAAM,CAAA,EAAA,CACZ,gBACT,IAIqB,CAJrBC,EAAAA,YAIqBC,EAAA,YAJQX,EAAA,2CAAAA,EAAa,MAAAY,GAAE,UAAU,iCACtC,IAA6B,kBAA3CC,EAAAA,mBAEeC,EAAAA,SAAA,KAAAC,EAAAA,WAFcpB,EAAA,MAARE,kBAArBU,EAAAA,YAEeS,EAAA,CAF8B,IAAK,OAAOnB,EAAK,KAAK,EAAI,KAAM,OAAOA,EAAK,KAAK,EAAG,MAAM,6BACrG,IAAe,CAAZoB,EAAAA,gBAAAC,EAAAA,gBAAArB,EAAK,IAAI,EAAA,CAAA,2GCEtBsB,EAAc,QAAWC,GAAQ,CAC/BA,EAAI,UAAUD,EAAc,MAAQ,mBAAoBA,CAAa,CACvE,2PCME,MAAM5B,EAAQC,EAkBRC,EAAOC,EAEP2B,EAAaC,EAAAA,IAAI,EAAK,EAGtB3B,EAAgBC,EAAAA,SAAS,IACzB,MAAM,QAAQL,EAAM,OAAO,EACtBA,EAAM,QAEX,OAAOA,EAAM,SAAY,UAAYA,EAAM,QAEtCA,EAAM,QACV,MAAM,GAAG,EACT,OAAO,OAAO,EACd,IAAKM,GAAS,CACb,KAAM,CAACC,EAAOC,CAAI,EAAIF,EAAK,MAAM,GAAG,EACpC,MAAO,CACL,KAAME,GAAQD,EACd,MAAOA,CACnB,CACQ,CAAC,EAEE,CAAA,CACR,EAGKyB,EAAe3B,EAAAA,SAAS,IAAM,CAClC,MAAM4B,EAAW7B,EAAc,MAAM,KAAMU,GAAQ,OAAOA,EAAI,KAAK,IAAM,OAAOd,EAAM,UAAU,CAAC,EACjG,OAAOiC,EAAWA,EAAS,KAAOjC,EAAM,UAC1C,CAAC,EAGKkC,EAAc7B,EAAAA,SAAS,IACpBL,EAAM,aAAe,QAAaA,EAAM,aAAe,MAAQA,EAAM,aAAe,GAAK,CAACA,EAAM,UAAU,EAAI,CAAA,CACtH,EAGKmC,EAAY,CAAC,CAAE,gBAAAC,KAAsB,OACzC,MAAM7B,GAAQ8B,EAAAD,EAAgB,CAAC,IAAjB,YAAAC,EAAoB,MAClCnC,EAAK,oBAAqBK,CAAK,EAC/BL,EAAK,SAAUK,EAAO6B,EAAgB,CAAC,CAAC,EACxCN,EAAW,MAAQ,EACrB,wLA1EAX,EAAAA,YAAgGF,EAAhGqB,aAAgG,YAA5EN,EAAA,2CAAAA,EAAY,MAAAX,GAAE,UAAA,GAAQ,SAAA,GAAU,uBAAOS,EAAA,MAAU,KAAiBZ,EAAAA,MAAM,EAAA,KAAA,GAAA,CAAA,YAAA,CAAA,EAE5FC,EAAAA,YAEYoB,EAAA,CAFO,KAAMT,EAAA,qCAAAA,EAAU,MAAAT,GAAE,SAAS,SAAS,MAAA,uBACrD,IAAmI,CAAnIF,EAAAA,YAAmIqB,EAAA,CAAtH,MAAOvC,EAAA,MAAQ,QAASG,EAAA,MAAgB,cAAa8B,EAAA,MAAc,UAASC,EAAY,wBAAQL,EAAA,MAAU,2ECG3HW,EAAY,QAAWZ,GAAQ,CAC7BA,EAAI,UAAUY,EAAY,MAAQ,iBAAkBA,CAAW,CACjE,ECDA,MAAMC,EAAa,CACjBd,EACAa,CACF,EAGME,EAAWd,GAAQ,CACvBa,EAAW,QAAQE,GAAa,CAC1BA,EAAU,QACZf,EAAI,IAAIe,CAAS,EACRA,EAAU,MACnBf,EAAI,UAAUe,EAAU,KAAMA,CAAS,CAE3C,CAAC,CACH,EAGAC,EAAe,CACb,QAAAF,EAEA,cAAAf,EACF,YAAEa,CACF,EAUaK,EAAU"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vant-vtk",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Vue3 + Vant4 扩展组件库",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/vant-vtk.umd.js",
|
|
@@ -12,10 +12,7 @@
|
|
|
12
12
|
"require": "./dist/vant-vtk.umd.js"
|
|
13
13
|
},
|
|
14
14
|
"./es": "./dist/vant-vtk.es.js",
|
|
15
|
-
"./lib": "./dist/vant-vtk.umd.js"
|
|
16
|
-
"./es/*": "./dist/es/*",
|
|
17
|
-
"./lib/*": "./dist/lib/*",
|
|
18
|
-
"./dist/style.css": "./dist/style.css"
|
|
15
|
+
"./lib": "./dist/vant-vtk.umd.js"
|
|
19
16
|
},
|
|
20
17
|
"files": [
|
|
21
18
|
"dist",
|
|
@@ -41,18 +38,23 @@
|
|
|
41
38
|
"author": "",
|
|
42
39
|
"license": "MIT",
|
|
43
40
|
"peerDependencies": {
|
|
44
|
-
"
|
|
45
|
-
"
|
|
41
|
+
"vant": "^4.0.0",
|
|
42
|
+
"vue": "^3.2.0"
|
|
46
43
|
},
|
|
47
44
|
"devDependencies": {
|
|
48
45
|
"@vitejs/plugin-vue": "^5.0.0",
|
|
46
|
+
"sass-embedded": "^1.97.3",
|
|
47
|
+
"vant": "^4.8.0",
|
|
49
48
|
"vite": "^5.0.0",
|
|
50
|
-
"
|
|
51
|
-
"
|
|
49
|
+
"vite-plugin-css-injected-by-js": "^3.5.2",
|
|
50
|
+
"vue": "^3.4.0"
|
|
52
51
|
},
|
|
53
52
|
"repository": {
|
|
54
53
|
"type": "git",
|
|
55
54
|
"url": ""
|
|
56
55
|
},
|
|
57
|
-
"homepage": ""
|
|
56
|
+
"homepage": "",
|
|
57
|
+
"dependencies": {
|
|
58
|
+
"vue-pdf-embed": "^2.1.4"
|
|
59
|
+
}
|
|
58
60
|
}
|
package/types/index.d.ts
CHANGED
|
@@ -5,22 +5,34 @@ export interface OptionItem {
|
|
|
5
5
|
text: string
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
export interface
|
|
8
|
+
export interface CheckboxProps {
|
|
9
9
|
modelValue?: string | any[] | object
|
|
10
10
|
options?: OptionItem[] | string
|
|
11
11
|
valueType?: 'string' | 'array' | 'object'
|
|
12
12
|
separator?: string
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
export
|
|
15
|
+
export interface PickerProps {
|
|
16
|
+
modelValue?: string | number
|
|
17
|
+
options?: OptionItem[] | string
|
|
18
|
+
title?: string
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export type CheckboxInstance = DefineComponent<CheckboxProps>
|
|
22
|
+
export type PickerInstance = DefineComponent<PickerProps>
|
|
23
|
+
|
|
24
|
+
export declare const Checkbox: CheckboxInstance & {
|
|
25
|
+
install: (app: App) => void
|
|
26
|
+
}
|
|
16
27
|
|
|
17
|
-
export declare const
|
|
28
|
+
export declare const Picker: PickerInstance & {
|
|
18
29
|
install: (app: App) => void
|
|
19
30
|
}
|
|
20
31
|
|
|
21
32
|
declare const VantVtk: {
|
|
22
33
|
install: (app: App) => void
|
|
23
|
-
|
|
34
|
+
Checkbox: typeof Checkbox
|
|
35
|
+
Picker: typeof Picker
|
|
24
36
|
}
|
|
25
37
|
|
|
26
38
|
export default VantVtk
|
package/dist/style.css
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[data-v-54417869] .van-checkbox{margin-bottom:8px;margin-right:12px}
|