UNPKG

various-ui

Version:

This is a test version of the Vue 3 component library

1 lines 8.89 kB
{"version":3,"file":"composable.mjs","sources":["../../../../../../packages/components/input/steps/src/composable.ts"],"sourcesContent":["import { SetupContext, computed, inject, reactive, ref } from \"vue\";\r\nimport { UiStepsInputProps, UiStepsInputEmits } from \"../index\";\r\nimport { UiFormEmitterKey } from \"@various/constants\";\r\nimport { utility } from \"@various/utils\";\r\n\r\nexport const useComposable = (define: UiStepsInputProps, emit: SetupContext<typeof UiStepsInputEmits>[\"emit\"]) => {\r\n //* 初始化mitt\r\n const emitter = inject(UiFormEmitterKey, undefined);\r\n\r\n //* 响应式属性\r\n const refs = {\r\n currentPage: ref<string>(\"\"),\r\n };\r\n\r\n //* 函数列表\r\n const methods = {\r\n //* Input失去焦点事件\r\n blur: (ev: FocusEvent | Event) => {\r\n //* 触发blur回调\r\n emit(\"blur\", ev);\r\n //* 触发表单blur相关校验\r\n emitter?.emit(define.name || \"\", \"blur\");\r\n //* 失焦重置当前模块\r\n refs.currentPage.value = \"\";\r\n },\r\n\r\n //* Input获取焦点事件\r\n focus: (ev: FocusEvent | Event) => {\r\n //* 触发focus回调\r\n emit(\"focus\", ev);\r\n },\r\n\r\n //* Input触发input事件\r\n input: (ev: InputEvent) => {\r\n //* 触发v-model变更和input回调\r\n emit(\"input\", ev);\r\n },\r\n\r\n //* Input触发change事件\r\n change: (ev: Event) => {\r\n //* 当输入完整时, 触发change回调\r\n if (!define.modelValue?.start?.toString() || !define.modelValue?.end?.toString()) return;\r\n else {\r\n //* 触发change回调\r\n emit(\"change\", ev);\r\n //* 触发表单change相关校验\r\n emitter?.emit(define.name || \"\", \"change\");\r\n }\r\n },\r\n };\r\n\r\n //* 计算属性\r\n const computeds = {\r\n //* 样式列表\r\n style: computed(() => {\r\n return {\r\n width: (define.width - (define.spacing * 2 + 12)) / 2 + \"px\",\r\n };\r\n }),\r\n\r\n //* 标签类名\r\n className: computed(() => {\r\n //* 初始化输出列表\r\n const result: string[] = [];\r\n //* 判断是否是禁用或只读状态\r\n if (define.disabled) result.push(\"ui-disabled-status\");\r\n else if (define.readonly) result.push(\"ui-readonly-status\");\r\n //* 判断是否需要添加size类名\r\n if (define.size != \"default\") result.push(`ui-${define.size}`);\r\n\r\n return result.join(\" \");\r\n }),\r\n };\r\n\r\n //* 动态属性\r\n const binds = reactive({\r\n //* 容器属性\r\n container: computed(() => {\r\n return {\r\n class: computeds.className.value,\r\n style: {\r\n width: `${define.width || 0}px`,\r\n },\r\n };\r\n }),\r\n\r\n //* 增量输入框属性\r\n number: computed(() => {\r\n return {\r\n type: \"number\",\r\n disabled: define.disabled,\r\n readonly: define.readonly,\r\n placeholder: \"0\",\r\n style: {\r\n width: `${define.widthNumber || 0}px`,\r\n },\r\n };\r\n }),\r\n\r\n //* 主输入框属性\r\n input: computed(() => {\r\n const data = { type: \"number\", disabled: define.disabled, readonly: define.readonly };\r\n return {\r\n end: Object.assign(utility.cloneDeep(data), { placeholder: define.placeholder?.end || \"\" }),\r\n start: Object.assign(utility.cloneDeep(data), { placeholder: define.placeholder?.start || \"\" }),\r\n };\r\n }),\r\n\r\n //* 分割线属性\r\n rect: computed(() => {\r\n return {\r\n style: {\r\n width: `${define.spacing * 2 + 12}px`,\r\n },\r\n };\r\n }),\r\n });\r\n\r\n //* 响应事件\r\n const ons = {\r\n start: {\r\n blur: methods.blur,\r\n input: methods.input,\r\n change: methods.change,\r\n focus: (ev: FocusEvent | Event) => {\r\n refs.currentPage.value = \"start\";\r\n methods.focus(ev);\r\n },\r\n },\r\n\r\n end: {\r\n blur: methods.blur,\r\n input: methods.input,\r\n change: methods.change,\r\n focus: (ev: FocusEvent | Event) => {\r\n refs.currentPage.value = \"end\";\r\n methods.focus(ev);\r\n },\r\n },\r\n };\r\n\r\n return { ons, refs, binds, methods, computeds };\r\n};\r\n"],"names":["utility.cloneDeep"],"mappings":"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"}