vant-vtk 1.0.0 → 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 +179 -0
- package/dist/vant-vtk.es.js.map +1 -0
- package/dist/vant-vtk.umd.js +3 -0
- package/dist/vant-vtk.umd.js.map +1 -0
- package/package.json +12 -10
- package/types/index.d.ts +16 -4
|
@@ -0,0 +1,179 @@
|
|
|
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;
|
|
7
|
+
return e;
|
|
8
|
+
}, O = /* @__PURE__ */ Object.assign({
|
|
9
|
+
name: "VtkCheckboxField"
|
|
10
|
+
}, {
|
|
11
|
+
__name: "index",
|
|
12
|
+
props: {
|
|
13
|
+
// 绑定值
|
|
14
|
+
modelValue: {
|
|
15
|
+
type: [String, Array, Object],
|
|
16
|
+
default: () => []
|
|
17
|
+
},
|
|
18
|
+
// 选项数据:支持数组 [{value, text}] 或 字符串 '1:选项1/2:选项2'
|
|
19
|
+
options: {
|
|
20
|
+
type: [Array, String],
|
|
21
|
+
default: () => []
|
|
22
|
+
},
|
|
23
|
+
// 返回值类型: 'string' (逗号分隔), 'array' (值数组), 'object' (对象数组)
|
|
24
|
+
valueType: {
|
|
25
|
+
type: String,
|
|
26
|
+
default: "array",
|
|
27
|
+
validator: (a) => ["string", "array", "object"].includes(a)
|
|
28
|
+
},
|
|
29
|
+
// 当 valueType 为 string 时的分隔符
|
|
30
|
+
separator: {
|
|
31
|
+
type: String,
|
|
32
|
+
default: ","
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
emits: ["update:modelValue", "change"],
|
|
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(":");
|
|
39
|
+
return {
|
|
40
|
+
text: l || n,
|
|
41
|
+
value: n
|
|
42
|
+
};
|
|
43
|
+
}) : []), c = v({
|
|
44
|
+
get: () => {
|
|
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);
|
|
49
|
+
},
|
|
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);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
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),
|
|
62
|
+
direction: "horizontal"
|
|
63
|
+
}, {
|
|
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),
|
|
68
|
+
shape: "square"
|
|
69
|
+
}, {
|
|
70
|
+
default: V(() => [
|
|
71
|
+
P(j(r.text), 1)
|
|
72
|
+
]),
|
|
73
|
+
_: 2
|
|
74
|
+
}, 1032, ["name"]))), 128))
|
|
75
|
+
]),
|
|
76
|
+
_: 1
|
|
77
|
+
}, 8, ["modelValue"])
|
|
78
|
+
]),
|
|
79
|
+
_: 1
|
|
80
|
+
}, 16);
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
}), f = /* @__PURE__ */ T(O, [["__scopeId", "data-v-54417869"]]);
|
|
84
|
+
f.install = (a) => {
|
|
85
|
+
a.component(f.name || "VtkCheckboxField", f);
|
|
86
|
+
};
|
|
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);
|
|
165
|
+
});
|
|
166
|
+
}, z = {
|
|
167
|
+
install: w,
|
|
168
|
+
// 也导出所有组件,方便直接访问
|
|
169
|
+
CheckboxField: f,
|
|
170
|
+
PickerField: y
|
|
171
|
+
}, E = "1.0.0";
|
|
172
|
+
export {
|
|
173
|
+
f as CheckboxField,
|
|
174
|
+
y as PickerField,
|
|
175
|
+
z as default,
|
|
176
|
+
w as install,
|
|
177
|
+
E as version
|
|
178
|
+
};
|
|
179
|
+
//# sourceMappingURL=vant-vtk.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
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"}})});
|
|
3
|
+
//# sourceMappingURL=vant-vtk.umd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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
|