orion-design 0.1.44 → 0.1.46
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/README.md +5 -5
- package/dist/Throne/hooks/use-throne-context.js.map +1 -1
- package/dist/components/Form/index.js +33 -33
- package/dist/components/Form/index.js.map +1 -1
- package/dist/components/LovTable/LovPagetable.vue.d.ts +112 -0
- package/dist/components/LovTable/index.d.ts +56 -0
- package/dist/components/Pagetable/Pagetable.d.ts +52 -0
- package/dist/components/Pagetable/index.d.ts +36 -0
- package/dist/components/Pagetable/index.js +174 -165
- package/dist/components/Pagetable/index.js.map +1 -1
- package/dist/components/TableSelectPagetable/TableSelectPagetable.vue.d.ts +112 -0
- package/dist/components/TableSelectPagetable/index.d.ts +56 -0
- package/dist/components-G3_R2B-U.js.map +1 -1
- package/dist/version/version.d.ts +1 -1
- package/dist/version/version.js +1 -1
- package/dist/version/version.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
# Vue 3 + TypeScript + Vite
|
2
|
-
|
3
|
-
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
|
4
|
-
|
5
|
-
Learn more about the recommended Project Setup and IDE Support in the [Vue Docs TypeScript Guide](https://vuejs.org/guide/typescript/overview.html#project-setup).
|
1
|
+
# Vue 3 + TypeScript + Vite
|
2
|
+
|
3
|
+
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
|
4
|
+
|
5
|
+
Learn more about the recommended Project Setup and IDE Support in the [Vue Docs TypeScript Guide](https://vuejs.org/guide/typescript/overview.html#project-setup).
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-throne-context.js","sources":["../../../src/Throne/hooks/use-throne-context.ts"],"sourcesContent":["import { computed, getCurrentInstance, inject, provide, ref, unref } from 'vue'\
|
1
|
+
{"version":3,"file":"use-throne-context.js","sources":["../../../src/Throne/hooks/use-throne-context.ts"],"sourcesContent":["import { computed, getCurrentInstance, inject, provide, ref, unref } from 'vue'\n\nimport type { InjectionKey } from 'vue'\n\nexport const throneContextKey: InjectionKey<Ref<Record<string, any> | undefined>> = Symbol('throneContext')\n\nimport type { App, Ref } from 'vue'\nimport type { ThroneContextProviderContext } from '../../components/Throne/ThroneContextProvider'\n\n\nexport function useThroneContext(): Ref<Record<string, any> | undefined> | undefined {\n const context = inject(throneContextKey, undefined)\n return context\n}\n\nexport const provideThroneContext = (props: ThroneContextProviderContext) => {\n const context = computed(() => {\n return props.context || undefined\n })\n\n provide(throneContextKey, context)\n\n return context\n}\n"],"names":["throneContextKey","useThroneContext","inject","provideThroneContext","props","context","computed","provide"],"mappings":";AAIa,MAAAA,IAAuE,OAAO,eAAe;AAMnG,SAASC,IAAqE;AAE5E,SADSC,EAAOF,GAAkB,MAAS;AAEpD;AAEa,MAAAG,IAAuB,CAACC,MAAwC;AACrE,QAAAC,IAAUC,EAAS,MAChBF,EAAM,WAAW,MACzB;AAED,SAAAG,EAAQP,GAAkBK,CAAO,GAE1BA;AACT;"}
|
@@ -863,7 +863,7 @@ const Ke = /* @__PURE__ */ v({
|
|
863
863
|
"label-width": l.labelWidth,
|
864
864
|
required: l.required,
|
865
865
|
rules: e(r)
|
866
|
-
},
|
866
|
+
}, {
|
867
867
|
default: d(() => [
|
868
868
|
b(e(Ee), {
|
869
869
|
modelValue: t.value,
|
@@ -879,39 +879,39 @@ const Ke = /* @__PURE__ */ v({
|
|
879
879
|
controls: l.controls,
|
880
880
|
"controls-position": l.controlsPosition,
|
881
881
|
style: { width: "100%" }
|
882
|
-
},
|
882
|
+
}, ae({ _: 2 }, [
|
883
|
+
e(i)["decrease-icon"] ? {
|
884
|
+
name: "decrease-icon",
|
885
|
+
fn: d(() => [
|
886
|
+
B(l.$slots, "decrease-icon")
|
887
|
+
]),
|
888
|
+
key: "0"
|
889
|
+
} : void 0,
|
890
|
+
e(i)["increase-icon"] ? {
|
891
|
+
name: "increase-icon",
|
892
|
+
fn: d(() => [
|
893
|
+
B(l.$slots, "increase-icon")
|
894
|
+
]),
|
895
|
+
key: "1"
|
896
|
+
} : void 0,
|
897
|
+
e(i).prefix ? {
|
898
|
+
name: "prefix",
|
899
|
+
fn: d(() => [
|
900
|
+
B(l.$slots, "prefix")
|
901
|
+
]),
|
902
|
+
key: "2"
|
903
|
+
} : void 0,
|
904
|
+
e(i).suffix ? {
|
905
|
+
name: "suffix",
|
906
|
+
fn: d(() => [
|
907
|
+
B(l.$slots, "suffix")
|
908
|
+
]),
|
909
|
+
key: "3"
|
910
|
+
} : void 0
|
911
|
+
]), 1032, ["modelValue", "placeholder", "disabled", "readonly", "min", "max", "step", "step-strictly", "precision", "controls", "controls-position"])
|
883
912
|
]),
|
884
|
-
_:
|
885
|
-
}, [
|
886
|
-
e(i)["decrease-icon"] ? {
|
887
|
-
name: "decrease-icon",
|
888
|
-
fn: d(() => [
|
889
|
-
B(l.$slots, "decrease-icon")
|
890
|
-
]),
|
891
|
-
key: "0"
|
892
|
-
} : void 0,
|
893
|
-
e(i)["increase-icon"] ? {
|
894
|
-
name: "increase-icon",
|
895
|
-
fn: d(() => [
|
896
|
-
B(l.$slots, "increase-icon")
|
897
|
-
]),
|
898
|
-
key: "1"
|
899
|
-
} : void 0,
|
900
|
-
e(i).prefix ? {
|
901
|
-
name: "prefix",
|
902
|
-
fn: d(() => [
|
903
|
-
B(l.$slots, "prefix")
|
904
|
-
]),
|
905
|
-
key: "2"
|
906
|
-
} : void 0,
|
907
|
-
e(i).suffix ? {
|
908
|
-
name: "suffix",
|
909
|
-
fn: d(() => [
|
910
|
-
B(l.$slots, "suffix")
|
911
|
-
]),
|
912
|
-
key: "3"
|
913
|
-
} : void 0
|
914
|
-
]), 1032, ["prop", "label", "label-width", "required", "rules"])
|
913
|
+
_: 3
|
914
|
+
}, 8, ["prop", "label", "label-width", "required", "rules"])
|
915
915
|
]),
|
916
916
|
_: 3
|
917
917
|
}, 8, ["span"]));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/Form/Form.vue","../../../src/components/Form/StringInput/StringInput.vue","../../../src/components/Form/PasswordInput/PasswordInput.vue","../../../src/components/Form/Textarea/Textarea.vue","../../../src/components/Form/SingleSelect/SingleSelect.vue","../../../src/components/Form/MultiSelect/MultiSelect.vue","../../../src/components/Form/RadioGroup/RadioGroup.vue","../../../src/components/Form/CheckboxGroup/CheckboxGroup.vue","../../../src/components/Form/Checkbox/Checkbox.vue","../../../src/components/Form/Switch/Switch.vue","../../../src/components/Form/DateInput/DateInput.vue","../../../src/components/Form/FileInput/FileInput.vue","../../../src/components/Form/ButtonGroup/ButtonGroup.vue","../../../src/components/Form/DiyItem/DiyItem.vue","../../../src/components/Form/LovInput/LovInput.vue","../../../src/components/Form/NumberInput/NumberInput.vue","../../../src/components/Form/TableSelect/TableSelect.vue","../../../src/components/Form/index.ts"],"sourcesContent":["<template>\r\n <el-form ref=\"form\" :model=\"modelValue\" :rules=\"rules\" :label-width=\"itemLabelWidth\" :disabled=\"disabled\" class=\"orion-form\">\r\n <el-row :gutter=\"16\">\r\n <slot></slot>\r\n </el-row>\r\n </el-form>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { provide, reactive, toRef, useTemplateRef } from 'vue'\r\nimport { ElForm, ElRow } from 'element-plus'\r\nimport { type FormProps, type FormExpose, formContextKey } from './Form'\r\nimport OrionError from '../../error/OrionError'\r\nimport { difference, isEmpty } from 'lodash-es'\r\n\r\ndefineOptions({ name: 'OForm', inheritAttrs: false })\r\n\r\nconst { rules, itemSpan = 6, itemLabelWidth = 'auto', disabled = false, modelValue } = defineProps<FormProps>()\r\n\r\nconst emit = defineEmits(['update:modelValue'])\r\n\r\nconst updateModelValue = (name: string, value: any) => {\r\n if (!Object.keys(modelValue).includes(name)) {\r\n throw new OrionError(`modelValue中不存在[${name}]`)\r\n }\r\n emit('update:modelValue', { ...modelValue, [name]: value })\r\n}\r\n\r\nconst updateModelValueMulti = (data: Record<string, any>) => {\r\n const modelKeys = Object.keys(modelValue)\r\n const dataKeys = Object.keys(data)\r\n const diff = difference(dataKeys, modelKeys)\r\n if (!isEmpty(diff)) {\r\n throw new OrionError(`modelValue中不存在[${diff.join(',')}]`)\r\n }\r\n emit('update:modelValue', { ...modelValue, ...data })\r\n}\r\n\r\nconst formRef = useTemplateRef('form')\r\n\r\nconst validate: FormExpose['validate'] = async () => {\r\n return await formRef.value!.validate()\r\n}\r\n\r\ndefineExpose({\r\n validate,\r\n})\r\n\r\nprovide(\r\n formContextKey,\r\n reactive({\r\n modelValue: toRef(() => modelValue),\r\n updateModelValue,\r\n updateModelValueMulti,\r\n rules: toRef(() => rules),\r\n itemSpan: toRef(() => itemSpan),\r\n disabled: toRef(() => disabled),\r\n })\r\n)\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input v-model=\"elModel\" :maxlength=\"maxlength\" :placeholder=\"placeholder\" :disabled=\"disabled\"\r\n :readonly=\"readonly\">\r\n <template v-if=\"slots.prefix\" #prefix>\r\n <slot name=\"prefix\"></slot>\r\n </template>\r\n <template v-if=\"slots.suffix\" #suffix>\r\n <slot name=\"suffix\"></slot>\r\n </template>\r\n <template v-if=\"slots.prepend\" #prepend>\r\n <slot name=\"prepend\"></slot>\r\n </template>\r\n <template v-if=\"slots.append\" #append>\r\n <slot name=\"append\"></slot>\r\n </template>\r\n </el-input>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInput } from 'element-plus'\r\nimport type { StringInputProps } from './StringInput'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemStringModel } from '../hooks'\r\nimport { useSlots } from 'vue';\r\n\r\ndefineOptions({ name: 'OFormString', inheritAttrs: false })\r\nconst slots = useSlots()\r\n\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly } = defineProps<StringInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst elModel = useFormItemStringModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input v-model=\"elModel\" :maxlength=\"maxlength\" :placeholder=\"placeholder\" :disabled=\"disabled\" :readonly=\"readonly\" type=\"password\" />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInput } from 'element-plus'\r\nimport type { PasswordInputProps } from './PasswordInput'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemStringModel } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormPassword', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly } = defineProps<PasswordInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst elModel = useFormItemStringModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input\r\n v-model=\"elModel\"\r\n :maxlength=\"maxlength\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n type=\"textarea\"\r\n :rows=\"rows\"\r\n :resize=\"'none'\"\r\n />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInput } from 'element-plus'\r\nimport type { TextareaProps } from './Textarea'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemStringModel } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormTextarea', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly, rows } = defineProps<TextareaProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst elModel = useFormItemStringModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input v-if=\"normalizedDisabled\" :model-value=\"content\" :placeholder=\"placeholder\" :disabled=\"true\" :readonly=\"true\" />\r\n <el-select v-else v-model=\"elModel\" :placeholder=\"placeholder\" :clearable=\"clearable\" :filterable=\"filterable\" @change=\"attrs.onChange as any\">\r\n <el-option v-for=\"codeItem in normalizedCode\" :key=\"codeItem.value\" :label=\"codeItem.content\" :value=\"codeItem.value\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, useAttrs } from 'vue'\r\nimport { ElCol, ElFormItem, ElInput, ElSelect, ElOption } from 'element-plus'\r\nimport type { SingleSelectProps } from './SingleSelect'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemDisabled, useFormItemCode, useFormItemStringModel } from '../hooks'\r\nimport { getSingleCodeContent } from '../utils'\r\n\r\ndefineOptions({ name: 'OFormSingleselect', inheritAttrs: false })\r\nconst attrs = useAttrs()\r\n\r\nconst { name, label, labelWidth, required, placeholder, clearable, filterable } = defineProps<SingleSelectProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst normalizedDisabled = useFormItemDisabled()\r\nconst normalizedCode = useFormItemCode()\r\nconst elModel = useFormItemStringModel()\r\nconst content = computed(() => getSingleCodeContent(normalizedCode.value, elModel.value))\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input v-if=\"normalizedDisabled\" :model-value=\"content\" :placeholder=\"placeholder\" :disabled=\"true\" :readonly=\"true\" />\r\n <el-select\r\n v-else\r\n v-model=\"elModel\"\r\n :placeholder=\"placeholder\"\r\n multiple\r\n :collapse-tags=\"collapseTags\"\r\n :collapse-tags-tooltip=\"collapseTagsTooltip\"\r\n @change=\"attrs.onChange as any\"\r\n >\r\n <el-option v-for=\"codeItem in normalizedCode\" :key=\"codeItem.value\" :label=\"codeItem.content\" :value=\"codeItem.value\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, useAttrs } from 'vue'\r\nimport { ElCol, ElFormItem, ElInput, ElSelect, ElOption } from 'element-plus'\r\nimport type { MultiSelectProps } from './MultiSelect'\r\nimport { useFormContext, useFormItemSpan, useFormItemRules, useFormItemDisabled, useFormItemCode, useFormItemMultiModel } from '../hooks'\r\nimport { getMultiCodeContent } from '../utils'\r\n\r\ndefineOptions({ name: 'OFormMultiselect', inheritAttrs: false })\r\nconst attrs = useAttrs()\r\n\r\nconst { name, label, labelWidth, required, placeholder, collapseTags, collapseTagsTooltip } = defineProps<MultiSelectProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst normalizedDisabled = useFormItemDisabled()\r\nconst normalizedCode = useFormItemCode()\r\nconst elModel = useFormItemMultiModel()\r\nconst formContext = useFormContext()!\r\nconst content = computed(() => getMultiCodeContent(normalizedCode.value, formContext.modelValue[name]))\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-radio-group v-model=\"elModel\" :disabled=\"disabled\">\r\n <el-radio v-for=\"codeItem in normalizedCode\" :key=\"codeItem.value\" :value=\"codeItem.value\">\r\n {{ codeItem.content }}\r\n </el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElRadioGroup, ElRadio } from 'element-plus'\r\nimport type { RadioGroupProps } from './RadioGroup'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemCode, useFormItemStringModel } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormRadiogroup', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, disabled } = defineProps<RadioGroupProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst normalizedCode = useFormItemCode()\r\nconst elModel = useFormItemStringModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-checkbox-group v-model=\"elModel\" :disabled=\"disabled\">\r\n <el-checkbox v-for=\"codeItem in normalizedCode\" :key=\"codeItem.value\" :label=\"codeItem.content\" :value=\"codeItem.value\" />\r\n </el-checkbox-group>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElCheckboxGroup, ElCheckbox } from 'element-plus'\r\nimport type { CheckboxGroupProps } from './CheckboxGroup'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemCode, useFormItemMultiModel } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormCheckboxgroup', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, disabled } = defineProps<CheckboxGroupProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst normalizedCode = useFormItemCode()\r\nconst elModel = useFormItemMultiModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :rules=\"rules\">\r\n <el-checkbox v-model=\"elModel\" :disabled=\"disabled\"></el-checkbox>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElCheckbox } from 'element-plus'\r\nimport type { CheckboxProps } from './Checkbox'\r\nimport { useFormItemBooleanModel, useFormItemSpan } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormCheckbox', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, rules, disabled } = defineProps<CheckboxProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst elModel = useFormItemBooleanModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :rules=\"rules\">\r\n <el-switch v-model=\"elModel\" :disabled=\"disabled\" />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElSwitch } from 'element-plus'\r\nimport type { SwitchProps } from './Switch'\r\nimport { useFormItemBooleanModel, useFormItemSpan } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormSwitch', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, rules, disabled } = defineProps<SwitchProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst elModel = useFormItemBooleanModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-time-picker\r\n v-if=\"isTimePicker\"\r\n v-model=\"elModel\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n :editable=\"editable\"\r\n :clearable=\"clearable\"\r\n :format=\"normalizedSourceFormat\"\r\n arrow-control\r\n style=\"width: 100%\"\r\n />\r\n <el-date-picker\r\n v-else\r\n v-model=\"elModel\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n :editable=\"editable\"\r\n :clearable=\"clearable\"\r\n :type=\"dateType\"\r\n :format=\"normalizedSourceFormat\"\r\n style=\"width: 100%\"\r\n />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed } from 'vue'\r\nimport { ElCol, ElFormItem, ElDatePicker, ElTimePicker, dayjs } from 'element-plus'\r\nimport type { DateInputProps } from './DateInput'\r\nimport { useFormContext, useFormItemSpan, useFormItemRules } from '../hooks'\r\nimport { isDate, isString } from 'lodash-es'\r\nimport OrionError from '../../../error/OrionError'\r\n\r\ndefineOptions({ name: 'OFormDate', inheritAttrs: false })\r\n\r\nconst {\r\n name,\r\n label,\r\n labelWidth,\r\n required,\r\n placeholder,\r\n disabled,\r\n readonly,\r\n editable = true,\r\n clearable = true,\r\n format = 'YYYY-MM-DD',\r\n sourceFormat,\r\n} = defineProps<DateInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\n\r\nconst isTimePicker = computed(() => format.startsWith('H') || format.startsWith('h') || format.startsWith('m') || format.startsWith('s'))\r\n\r\nconst normalizedSourceFormat = computed(() => {\r\n if (sourceFormat) {\r\n return sourceFormat\r\n }\r\n if (isTimePicker.value) {\r\n return 'HH:mm:ss'\r\n } else {\r\n return 'YYYY-MM-DD'\r\n }\r\n})\r\n\r\nconst dateType = computed(() => {\r\n let picker: 'date' | 'year' | 'month' | 'datetime' = 'date'\r\n\r\n // 配置年 yyyy指年 YYYY指周年,年末年初的值可能有所变化\r\n if (format.indexOf('y') > -1 || format.indexOf('Y') > -1) {\r\n picker = 'year'\r\n }\r\n\r\n // 配置月,M指月份,m指分钟\r\n if (format.indexOf('M') > -1) {\r\n picker = 'month'\r\n }\r\n\r\n // 配置日,d指星期,D指月的天,DDD指年的天\r\n if (format.indexOf('d') > -1 || format.indexOf('D') > -1) {\r\n picker = 'date'\r\n }\r\n\r\n // 配置小时,H指24小时制(0~23),k指24小时制(1~24),h指12小时制,m指分钟,s指秒,S指小数秒\r\n if (\r\n format.indexOf('H') > -1 ||\r\n format.indexOf('h') > -1 ||\r\n format.indexOf('k') > -1 ||\r\n format.indexOf('m') > -1 ||\r\n format.indexOf('s') > -1 ||\r\n format.indexOf('S') > -1\r\n ) {\r\n picker = 'datetime'\r\n }\r\n\r\n return picker\r\n})\r\n\r\nconst formContext = useFormContext()!\r\nconst elModel = computed<Date | undefined>({\r\n get: () => {\r\n const value = formContext.modelValue[name]\r\n if (!value) {\r\n return undefined\r\n }\r\n if (isDate(value)) {\r\n return value as Date\r\n } else if (isString(value)) {\r\n const dayjsObj = dayjs(value, normalizedSourceFormat.value, true)\r\n if (!dayjsObj.isValid()) {\r\n throw new OrionError(`日期输入框的值无效,不符合${normalizedSourceFormat.value}格式`)\r\n }\r\n return dayjsObj.toDate()\r\n } else {\r\n throw new OrionError('日期输入框的值只能为字符串或日期类型')\r\n }\r\n },\r\n set: (newValue) => {\r\n if (sourceFormat) {\r\n if (!newValue) {\r\n formContext.updateModelValue(name, '')\r\n } else {\r\n formContext.updateModelValue(name, dayjs(newValue).format(normalizedSourceFormat.value))\r\n }\r\n } else {\r\n if (!newValue) {\r\n formContext.updateModelValue(name, undefined)\r\n } else {\r\n formContext.updateModelValue(name, newValue)\r\n }\r\n }\r\n },\r\n})\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input ref=\"inputRef\" v-model=\"file\" :disabled=\"disabled\" type=\"file\" :validate-event=\"false\" />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { onMounted, ref, useTemplateRef, watch } from 'vue'\r\nimport { ElCol, ElFormItem, ElInput } from 'element-plus'\r\nimport type { FileInputProps } from './FileInput'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemStringModel } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormFile', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, disabled } = defineProps<FileInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst elModel = useFormItemStringModel()\r\nwatch(elModel, () => {\r\n if (!elModel.value) {\r\n file.value = ''\r\n }\r\n})\r\n\r\nconst file = ref('')\r\nconst fileRef = useTemplateRef('inputRef')\r\nonMounted(() => {\r\n fileRef.value!.input!.onchange = (event) => {\r\n //@ts-ignore\r\n elModel.value = event?.target?.files[0]\r\n }\r\n file.value = ''\r\n})\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\" :style=\"style\">\r\n <space :gutter=\"gutter\" style=\"margin-bottom: var(--orion-form-validation-message-height)\"> <slot></slot> </space>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol } from 'element-plus'\r\nimport type { ButtonGroupProps } from './ButtonGroup'\r\nimport Space from '../../Space'\r\nimport { useFormItemSpan } from '../hooks'\r\nimport { computed, CSSProperties } from 'vue'\r\n\r\ndefineOptions({ name: 'OFormButtongroup', inheritAttrs: false })\r\n\r\nconst { gutter, align = 'right' } = defineProps<ButtonGroupProps>()\r\nconst style = computed<CSSProperties>(() => {\r\n return {\r\n textAlign: align,\r\n }\r\n})\r\n\r\nconst normalizedSpan = useFormItemSpan()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <slot></slot>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem } from 'element-plus'\r\nimport type { DiyItemProps } from './DiyItem'\r\nimport { useFormItemSpan, useFormItemRules } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormDiy', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required } = defineProps<DiyItemProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-dropdown ref=\"dropdown\" :trigger=\"'click'\" @visible-change=\"onVisibleChange\" style=\"width: 100%\">\r\n <el-input ref=\"input\" v-model=\"elModel\" :maxlength=\"maxlength\" :placeholder=\"placeholder\" :disabled=\"disabled\"\r\n :readonly=\"readonly\" @input=\"onInput\" @keydown=\"onKeydown\" @change=\"onChange\" @blur=\"onBlur\"\r\n :suffix-icon=\"Search\" />\r\n <template #dropdown>\r\n <slot></slot>\r\n </template>\r\n </el-dropdown>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInput, ElDropdown } from 'element-plus'\r\nimport { Search } from '@element-plus/icons-vue'\r\nimport { KeydownHandler, LovContext, lovContextKey, type LovInputProps } from './LovInput'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemStringModel, useFormContext } from '../hooks'\r\nimport { provide, reactive, ref, useTemplateRef } from 'vue'\r\nimport { isString } from 'lodash-es'\r\n\r\ndefineOptions({ name: 'OFormLov', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly, fillMapping } = defineProps<LovInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst elModel = useFormItemStringModel()\r\nconst formContext = useFormContext()!\r\n\r\nconst visible = ref(false)\r\nconst onVisibleChange = (val: boolean) => {\r\n visible.value = val\r\n}\r\n\r\nconst changed = ref(false)\r\nconst onInput = () => {\r\n if (!changed.value) {\r\n changed.value = true\r\n }\r\n\r\n if (!visible.value) {\r\n dropdownRef.value!.handleOpen()\r\n }\r\n}\r\n\r\nlet keydownHandler: KeydownHandler | undefined\r\nconst registerKeydownHandler: LovContext['registerKeydownHandler'] = (handler) => {\r\n keydownHandler = handler\r\n}\r\n\r\nconst onKeydown = (e: any) => {\r\n const fallthroughCodes = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Enter', 'Space']\r\n\r\n if (fallthroughCodes.indexOf(e.code) > -1) {\r\n if (visible.value) {\r\n keydownHandler && keydownHandler(e.code)\r\n }\r\n e.stopPropagation()\r\n }\r\n\r\n const triggerCodes = ['ArrowUp', 'ArrowDown']\r\n if (triggerCodes.indexOf(e.code) > -1 && !visible.value) {\r\n dropdownRef.value!.handleOpen()\r\n }\r\n}\r\n\r\nconst inputRef = useTemplateRef('input')\r\nconst onBlur = async (e: any) => {\r\n if (visible.value) {\r\n inputRef.value!.focus()\r\n }\r\n}\r\n\r\nconst onChange = () => {\r\n if (!changed.value) {\r\n return\r\n }\r\n\r\n if (isString(fillMapping)) {\r\n const data: Record<string, any> = {}\r\n\r\n const pairs = fillMapping.split(',')\r\n for (let i = 0; i < pairs.length; i++) {\r\n const dstName = pairs[i].split(':')[0].trim()\r\n data[dstName] = undefined\r\n }\r\n\r\n formContext.updateModelValueMulti(data)\r\n }\r\n}\r\n\r\nconst dropdownRef = useTemplateRef('dropdown')\r\nconst backfill: LovContext['backfill'] = (params) => {\r\n dropdownRef.value!.handleClose()\r\n\r\n if (isString(fillMapping)) {\r\n const data: Record<string, any> = {}\r\n\r\n const pairs = fillMapping.split(',')\r\n for (let i = 0; i < pairs.length; i++) {\r\n const dstName = pairs[i].split(':')[0].trim()\r\n const srcName = pairs[i].split(':')[1].trim()\r\n const srcValue = params[srcName]\r\n data[dstName] = srcValue\r\n }\r\n\r\n formContext.updateModelValueMulti(data)\r\n } else {\r\n fillMapping && fillMapping(params)\r\n }\r\n\r\n if (changed.value) {\r\n changed.value = false\r\n }\r\n}\r\n\r\nprovide(\r\n lovContextKey,\r\n reactive({\r\n lovValue: elModel,\r\n backfill,\r\n registerKeydownHandler,\r\n })\r\n)\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input-number\r\n v-model=\"elModel\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n :min=\"min\"\r\n :max=\"max\"\r\n :step=\"step\"\r\n :step-strictly=\"stepStrictly\"\r\n :precision=\"precision\"\r\n :controls=\"controls\"\r\n :controls-position=\"controlsPosition\"\r\n style=\"width: 100%\"\r\n />\r\n <template v-if=\"slots['decrease-icon']\" #decrease-icon>\r\n <slot name=\"decrease-icon\"></slot>\r\n </template>\r\n <template v-if=\"slots['increase-icon']\" #increase-icon>\r\n <slot name=\"increase-icon\"></slot>\r\n </template>\r\n <template v-if=\"slots['prefix']\" #prefix>\r\n <slot name=\"prefix\"></slot>\r\n </template>\r\n <template v-if=\"slots['suffix']\" #suffix>\r\n <slot name=\"suffix\"></slot>\r\n </template>\r\n\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInputNumber } from 'element-plus'\r\nimport type { NumberInputProps } from './NumberInput'\r\nimport { useFormItemSpan, useFormItemRules, useFormContext } from '../hooks'\r\nimport { computed, useSlots } from 'vue'\r\nimport { isNumber, isString, toNumber } from 'lodash-es'\r\nimport OrionError from '../../../error/OrionError'\r\n\r\ndefineOptions({ name: 'OFormNumber', inheritAttrs: false })\r\nconst slots = useSlots()\r\n\r\nconst {\r\n name,\r\n label,\r\n labelWidth,\r\n required,\r\n placeholder,\r\n disabled,\r\n readonly,\r\n min,\r\n max,\r\n step,\r\n stepStrictly,\r\n precision,\r\n controls = true,\r\n controlsPosition,\r\n} = defineProps<NumberInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\n\r\nconst formContext = useFormContext()!\r\nconst elModel = computed<number | undefined>({\r\n get: () => {\r\n const value = formContext.modelValue[name]\r\n if (!value) {\r\n return undefined\r\n }\r\n if (isNumber(value)) {\r\n return value\r\n } else if (isString(value)) {\r\n return toNumber(value)\r\n } else {\r\n throw new OrionError('数字输入框的值只能为字符串或数字类型')\r\n }\r\n },\r\n set: (newValue) => {\r\n if (!newValue) {\r\n formContext.updateModelValue(name, undefined)\r\n } else {\r\n formContext.updateModelValue(name, newValue)\r\n }\r\n },\r\n})\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-dropdown ref=\"dropdown\" :trigger=\"'click'\" @visible-change=\"onVisibleChange\" style=\"width: 100%;\">\r\n <div @focus=\"onFocus\" :style=\"{ position: 'relative', width: '100%', height: '100%' }\">\r\n <el-input ref=\"input\" v-model=\"inputValue\" :maxlength=\"maxlength\" :placeholder=\"placeholder\"\r\n :disabled=\"disabled\" :readonly=\"readonly\" @input=\"onInput\" @keydown=\"onKeydown\" @blur=\"onBlur\"\r\n :suffix-icon=\"visible ? ArrowUp : ArrowDown\" />\r\n <div v-if=\"!visible\"\r\n :style=\"{ position: 'absolute', inset: '4px 30px 4px 4px', overflow: 'hidden', pointerEvents: 'none' }\">\r\n <o-space>\r\n <el-tag v-for=\"tag in tags\" type=\"info\">{{ tag }}</el-tag>\r\n </o-space>\r\n </div>\r\n </div>\r\n <template #dropdown>\r\n <slot></slot>\r\n </template>\r\n </el-dropdown>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInput, ElDropdown, ElTag } from 'element-plus'\r\nimport { ArrowDown, ArrowUp } from '@element-plus/icons-vue'\r\nimport { RowCompletionProvider, TableSelectContext, tableSelectContext, type TableSelectProps } from './TableSelect'\r\nimport { useFormItemSpan, useFormItemRules, useFormContext } from '../hooks'\r\nimport { computed, onMounted, provide, reactive, ref, useTemplateRef, watch } from 'vue'\r\nimport { isArray, pick } from 'lodash-es'\r\nimport OrionError from '../../../error/OrionError'\r\n\r\ndefineOptions({ name: 'OFormTableselect', inheritAttrs: false })\r\n\r\nconst emit = defineEmits(['change'])\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly, pick: pickup, tag } = defineProps<TableSelectProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\n\r\nconst inputValue = ref('')\r\nconst modifyByForm = ref(false)\r\nconst formContext = useFormContext()!\r\nconst elModel = computed<any[] | undefined>({\r\n get: () => {\r\n const value = formContext.modelValue[name]\r\n if (!value) {\r\n return undefined\r\n }\r\n if (!isArray(value)) {\r\n throw new OrionError('表格下拉框的值只能为数组类型')\r\n }\r\n return value\r\n },\r\n set: (newValue) => {\r\n modifyByForm.value = false\r\n if (!newValue) {\r\n formContext.updateModelValue(name, undefined)\r\n } else {\r\n formContext.updateModelValue(name, newValue)\r\n }\r\n },\r\n})\r\n\r\nconst selection = ref<any[] | undefined>([])\r\nonMounted(async () => {\r\n if (completionItemProvider) {\r\n selection.value = await completionItemProvider(elModel.value)\r\n if (selection.value) {\r\n tags.value = selection.value.map((item) => tag(item))\r\n }\r\n }\r\n})\r\nwatch(elModel, async () => {\r\n if (modifyByForm.value) {\r\n if (completionItemProvider) {\r\n selection.value = await completionItemProvider(elModel.value)\r\n if (selection.value) {\r\n tags.value = selection.value.map((item) => tag(item))\r\n }\r\n }\r\n } else {\r\n modifyByForm.value = true\r\n }\r\n})\r\n\r\nconst visible = ref(false)\r\nconst onVisibleChange = (val: boolean) => {\r\n visible.value = val\r\n}\r\nconst onInput = () => {\r\n if (!visible.value) {\r\n dropdownRef.value!.handleOpen()\r\n }\r\n}\r\n\r\nconst inputRef = useTemplateRef('input')\r\nconst onFocus = () => {\r\n inputRef.value!.focus()\r\n}\r\n\r\nconst onKeydown = (e: any) => {\r\n if (visible.value) {\r\n if (['Enter', 'Escape'].indexOf(e.code) > -1) {\r\n dropdownRef.value!.handleClose()\r\n } else if ('ArrowDown' == e.code) {\r\n e.stopPropagation()\r\n } else if ('Tab' == e.code) {\r\n visible.value = false\r\n dropdownRef.value!.handleClose()\r\n }\r\n } else {\r\n if (['ArrowUp', 'ArrowDown'].indexOf(e.code) > -1) {\r\n dropdownRef.value!.handleOpen()\r\n e.stopPropagation()\r\n }\r\n }\r\n}\r\n\r\nconst onBlur = async (e: any) => {\r\n if (visible.value) {\r\n inputRef.value!.focus()\r\n } else {\r\n inputValue.value = ''\r\n }\r\n}\r\n\r\nconst tags = ref<string[]>([])\r\nconst dropdownRef = useTemplateRef('dropdown')\r\nconst onSelect: TableSelectContext['onSelect'] = (selection, clear) => {\r\n elModel.value = selection.map((item) => pick(item, pickup))\r\n tags.value = selection.map((item) => tag(item))\r\n if (clear) {\r\n inputValue.value = ''\r\n }\r\n emit('change', selection)\r\n}\r\nconst selectDone: TableSelectContext['selectDone'] = () => {\r\n dropdownRef.value!.handleClose()\r\n}\r\n\r\nlet completionItemProvider: RowCompletionProvider | undefined\r\nconst registerRowCompletionProvider: TableSelectContext['registerRowCompletionProvider'] = (provider) => {\r\n completionItemProvider = provider\r\n}\r\n\r\nprovide(\r\n tableSelectContext,\r\n reactive({\r\n inputValue,\r\n selection,\r\n onSelect,\r\n selectDone,\r\n tag,\r\n registerRowCompletionProvider\r\n })\r\n)\r\n</script>","import { withInstall } from '../_util'\r\n\r\nimport Form from './Form.vue'\r\nimport StringInput from './StringInput/StringInput.vue'\r\nimport PasswordInput from './PasswordInput/PasswordInput.vue'\r\nimport Textarea from './Textarea/Textarea.vue'\r\nimport SingleSelect from './SingleSelect/SingleSelect.vue'\r\nimport MultiSelect from './MultiSelect/MultiSelect.vue'\r\nimport RadioGroup from './RadioGroup/RadioGroup.vue'\r\nimport CheckboxGroup from './CheckboxGroup/CheckboxGroup.vue'\r\nimport Checkbox from './Checkbox/Checkbox.vue'\r\nimport Switch from './Switch/Switch.vue'\r\nimport DateInput from './DateInput/DateInput.vue'\r\nimport FileInput from './FileInput/FileInput.vue'\r\nimport ButtonGroup from './ButtonGroup/ButtonGroup.vue'\r\nimport DiyItem from './DiyItem/DiyItem.vue'\r\nimport LovInput from './LovInput/LovInput.vue'\r\nimport NumberInput from './NumberInput/NumberInput.vue'\r\nimport TableSelect from './TableSelect/TableSelect.vue'\r\n\r\nexport default withInstall<\r\n typeof Form,\r\n {\r\n StringInput: typeof StringInput\r\n PasswordInput: typeof PasswordInput\r\n Textarea: typeof Textarea\r\n SingleSelect: typeof SingleSelect\r\n MultiSelect: typeof MultiSelect\r\n RadioGroup: typeof RadioGroup\r\n CheckboxGroup: typeof CheckboxGroup\r\n Checkbox: typeof Checkbox\r\n Switch: typeof Switch\r\n DateInput: typeof DateInput\r\n FileInput: typeof FileInput\r\n ButtonGroup: typeof ButtonGroup\r\n DiyItem: typeof DiyItem\r\n LovInput: typeof LovInput\r\n NumberInput: typeof NumberInput\r\n TableSelect: typeof TableSelect\r\n }\r\n>(Form, {\r\n StringInput,\r\n PasswordInput,\r\n Textarea,\r\n SingleSelect,\r\n MultiSelect,\r\n RadioGroup,\r\n CheckboxGroup,\r\n Checkbox,\r\n Switch,\r\n DateInput,\r\n FileInput,\r\n ButtonGroup,\r\n DiyItem,\r\n LovInput,\r\n NumberInput,\r\n TableSelect,\r\n})\r\n\r\nexport * from './Form'\r\nexport * from './StringInput'\r\nexport * from './PasswordInput'\r\nexport * from './Textarea'\r\nexport * from './SingleSelect'\r\nexport * from './MultiSelect'\r\nexport * from './RadioGroup'\r\nexport * from './CheckboxGroup'\r\nexport * from './Checkbox'\r\nexport * from './Switch'\r\nexport * from './DateInput'\r\nexport * from './FileInput'\r\nexport * from './ButtonGroup'\r\nexport * from './DiyItem'\r\nexport * from './LovInput'\r\nexport * from './NumberInput'\r\nexport * from './TableSelect'\r\n"],"names":["emit","__emit","updateModelValue","name","value","__props","OrionError","updateModelValueMulti","data","modelKeys","dataKeys","diff","difference","isEmpty","formRef","useTemplateRef","__expose","provide","formContextKey","reactive","toRef","slots","useSlots","normalizedSpan","useFormItemSpan","normalizedRules","useFormItemRules","elModel","useFormItemStringModel","attrs","useAttrs","normalizedDisabled","useFormItemDisabled","normalizedCode","useFormItemCode","content","computed","getSingleCodeContent","useFormItemMultiModel","formContext","useFormContext","getMultiCodeContent","useFormItemBooleanModel","isTimePicker","normalizedSourceFormat","dateType","picker","isDate","isString","dayjsObj","dayjs","newValue","watch","file","ref","fileRef","onMounted","event","_a","style","visible","onVisibleChange","val","changed","onInput","dropdownRef","keydownHandler","registerKeydownHandler","handler","onKeydown","e","inputRef","onBlur","onChange","pairs","i","dstName","lovContextKey","params","srcName","srcValue","isNumber","toNumber","inputValue","modifyByForm","isArray","selection","completionItemProvider","tags","item","onFocus","onSelect","clear","pick","selectDone","registerRowCompletionProvider","provider","tableSelectContext","index","withInstall","Form","StringInput","PasswordInput","Textarea","SingleSelect","MultiSelect","RadioGroup","CheckboxGroup","Checkbox","Switch","DateInput","FileInput","ButtonGroup","DiyItem","LovInput","NumberInput","TableSelect"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Form/Form.vue","../../../src/components/Form/StringInput/StringInput.vue","../../../src/components/Form/PasswordInput/PasswordInput.vue","../../../src/components/Form/Textarea/Textarea.vue","../../../src/components/Form/SingleSelect/SingleSelect.vue","../../../src/components/Form/MultiSelect/MultiSelect.vue","../../../src/components/Form/RadioGroup/RadioGroup.vue","../../../src/components/Form/CheckboxGroup/CheckboxGroup.vue","../../../src/components/Form/Checkbox/Checkbox.vue","../../../src/components/Form/Switch/Switch.vue","../../../src/components/Form/DateInput/DateInput.vue","../../../src/components/Form/FileInput/FileInput.vue","../../../src/components/Form/ButtonGroup/ButtonGroup.vue","../../../src/components/Form/DiyItem/DiyItem.vue","../../../src/components/Form/LovInput/LovInput.vue","../../../src/components/Form/NumberInput/NumberInput.vue","../../../src/components/Form/TableSelect/TableSelect.vue","../../../src/components/Form/index.ts"],"sourcesContent":["<template>\r\n <el-form ref=\"form\" :model=\"modelValue\" :rules=\"rules\" :label-width=\"itemLabelWidth\" :disabled=\"disabled\" class=\"orion-form\">\r\n <el-row :gutter=\"16\">\r\n <slot></slot>\r\n </el-row>\r\n </el-form>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { provide, reactive, toRef, useTemplateRef } from 'vue'\r\nimport { ElForm, ElRow } from 'element-plus'\r\nimport { type FormProps, type FormExpose, formContextKey } from './Form'\r\nimport OrionError from '../../error/OrionError'\r\nimport { difference, isEmpty } from 'lodash-es'\r\n\r\ndefineOptions({ name: 'OForm', inheritAttrs: false })\r\n\r\nconst { rules, itemSpan = 6, itemLabelWidth = 'auto', disabled = false, modelValue } = defineProps<FormProps>()\r\n\r\nconst emit = defineEmits(['update:modelValue'])\r\n\r\nconst updateModelValue = (name: string, value: any) => {\r\n if (!Object.keys(modelValue).includes(name)) {\r\n throw new OrionError(`modelValue中不存在[${name}]`)\r\n }\r\n emit('update:modelValue', { ...modelValue, [name]: value })\r\n}\r\n\r\nconst updateModelValueMulti = (data: Record<string, any>) => {\r\n const modelKeys = Object.keys(modelValue)\r\n const dataKeys = Object.keys(data)\r\n const diff = difference(dataKeys, modelKeys)\r\n if (!isEmpty(diff)) {\r\n throw new OrionError(`modelValue中不存在[${diff.join(',')}]`)\r\n }\r\n emit('update:modelValue', { ...modelValue, ...data })\r\n}\r\n\r\nconst formRef = useTemplateRef('form')\r\n\r\nconst validate: FormExpose['validate'] = async () => {\r\n return await formRef.value!.validate()\r\n}\r\n\r\ndefineExpose({\r\n validate,\r\n})\r\n\r\nprovide(\r\n formContextKey,\r\n reactive({\r\n modelValue: toRef(() => modelValue),\r\n updateModelValue,\r\n updateModelValueMulti,\r\n rules: toRef(() => rules),\r\n itemSpan: toRef(() => itemSpan),\r\n disabled: toRef(() => disabled),\r\n })\r\n)\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input v-model=\"elModel\" :maxlength=\"maxlength\" :placeholder=\"placeholder\" :disabled=\"disabled\"\r\n :readonly=\"readonly\">\r\n <template v-if=\"slots.prefix\" #prefix>\r\n <slot name=\"prefix\"></slot>\r\n </template>\r\n <template v-if=\"slots.suffix\" #suffix>\r\n <slot name=\"suffix\"></slot>\r\n </template>\r\n <template v-if=\"slots.prepend\" #prepend>\r\n <slot name=\"prepend\"></slot>\r\n </template>\r\n <template v-if=\"slots.append\" #append>\r\n <slot name=\"append\"></slot>\r\n </template>\r\n </el-input>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInput } from 'element-plus'\r\nimport type { StringInputProps } from './StringInput'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemStringModel } from '../hooks'\r\nimport { useSlots } from 'vue';\r\n\r\ndefineOptions({ name: 'OFormString', inheritAttrs: false })\r\nconst slots = useSlots()\r\n\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly } = defineProps<StringInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst elModel = useFormItemStringModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input v-model=\"elModel\" :maxlength=\"maxlength\" :placeholder=\"placeholder\" :disabled=\"disabled\" :readonly=\"readonly\" type=\"password\" />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInput } from 'element-plus'\r\nimport type { PasswordInputProps } from './PasswordInput'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemStringModel } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormPassword', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly } = defineProps<PasswordInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst elModel = useFormItemStringModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input\r\n v-model=\"elModel\"\r\n :maxlength=\"maxlength\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n type=\"textarea\"\r\n :rows=\"rows\"\r\n :resize=\"'none'\"\r\n />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInput } from 'element-plus'\r\nimport type { TextareaProps } from './Textarea'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemStringModel } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormTextarea', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly, rows } = defineProps<TextareaProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst elModel = useFormItemStringModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input v-if=\"normalizedDisabled\" :model-value=\"content\" :placeholder=\"placeholder\" :disabled=\"true\" :readonly=\"true\" />\r\n <el-select v-else v-model=\"elModel\" :placeholder=\"placeholder\" :clearable=\"clearable\" :filterable=\"filterable\" @change=\"attrs.onChange as any\">\r\n <el-option v-for=\"codeItem in normalizedCode\" :key=\"codeItem.value\" :label=\"codeItem.content\" :value=\"codeItem.value\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, useAttrs } from 'vue'\r\nimport { ElCol, ElFormItem, ElInput, ElSelect, ElOption } from 'element-plus'\r\nimport type { SingleSelectProps } from './SingleSelect'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemDisabled, useFormItemCode, useFormItemStringModel } from '../hooks'\r\nimport { getSingleCodeContent } from '../utils'\r\n\r\ndefineOptions({ name: 'OFormSingleselect', inheritAttrs: false })\r\nconst attrs = useAttrs()\r\n\r\nconst { name, label, labelWidth, required, placeholder, clearable, filterable } = defineProps<SingleSelectProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst normalizedDisabled = useFormItemDisabled()\r\nconst normalizedCode = useFormItemCode()\r\nconst elModel = useFormItemStringModel()\r\nconst content = computed(() => getSingleCodeContent(normalizedCode.value, elModel.value))\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input v-if=\"normalizedDisabled\" :model-value=\"content\" :placeholder=\"placeholder\" :disabled=\"true\" :readonly=\"true\" />\r\n <el-select\r\n v-else\r\n v-model=\"elModel\"\r\n :placeholder=\"placeholder\"\r\n multiple\r\n :collapse-tags=\"collapseTags\"\r\n :collapse-tags-tooltip=\"collapseTagsTooltip\"\r\n @change=\"attrs.onChange as any\"\r\n >\r\n <el-option v-for=\"codeItem in normalizedCode\" :key=\"codeItem.value\" :label=\"codeItem.content\" :value=\"codeItem.value\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, useAttrs } from 'vue'\r\nimport { ElCol, ElFormItem, ElInput, ElSelect, ElOption } from 'element-plus'\r\nimport type { MultiSelectProps } from './MultiSelect'\r\nimport { useFormContext, useFormItemSpan, useFormItemRules, useFormItemDisabled, useFormItemCode, useFormItemMultiModel } from '../hooks'\r\nimport { getMultiCodeContent } from '../utils'\r\n\r\ndefineOptions({ name: 'OFormMultiselect', inheritAttrs: false })\r\nconst attrs = useAttrs()\r\n\r\nconst { name, label, labelWidth, required, placeholder, collapseTags, collapseTagsTooltip } = defineProps<MultiSelectProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst normalizedDisabled = useFormItemDisabled()\r\nconst normalizedCode = useFormItemCode()\r\nconst elModel = useFormItemMultiModel()\r\nconst formContext = useFormContext()!\r\nconst content = computed(() => getMultiCodeContent(normalizedCode.value, formContext.modelValue[name]))\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-radio-group v-model=\"elModel\" :disabled=\"disabled\">\r\n <el-radio v-for=\"codeItem in normalizedCode\" :key=\"codeItem.value\" :value=\"codeItem.value\">\r\n {{ codeItem.content }}\r\n </el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElRadioGroup, ElRadio } from 'element-plus'\r\nimport type { RadioGroupProps } from './RadioGroup'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemCode, useFormItemStringModel } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormRadiogroup', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, disabled } = defineProps<RadioGroupProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst normalizedCode = useFormItemCode()\r\nconst elModel = useFormItemStringModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-checkbox-group v-model=\"elModel\" :disabled=\"disabled\">\r\n <el-checkbox v-for=\"codeItem in normalizedCode\" :key=\"codeItem.value\" :label=\"codeItem.content\" :value=\"codeItem.value\" />\r\n </el-checkbox-group>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElCheckboxGroup, ElCheckbox } from 'element-plus'\r\nimport type { CheckboxGroupProps } from './CheckboxGroup'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemCode, useFormItemMultiModel } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormCheckboxgroup', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, disabled } = defineProps<CheckboxGroupProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst normalizedCode = useFormItemCode()\r\nconst elModel = useFormItemMultiModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :rules=\"rules\">\r\n <el-checkbox v-model=\"elModel\" :disabled=\"disabled\"></el-checkbox>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElCheckbox } from 'element-plus'\r\nimport type { CheckboxProps } from './Checkbox'\r\nimport { useFormItemBooleanModel, useFormItemSpan } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormCheckbox', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, rules, disabled } = defineProps<CheckboxProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst elModel = useFormItemBooleanModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :rules=\"rules\">\r\n <el-switch v-model=\"elModel\" :disabled=\"disabled\" />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElSwitch } from 'element-plus'\r\nimport type { SwitchProps } from './Switch'\r\nimport { useFormItemBooleanModel, useFormItemSpan } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormSwitch', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, rules, disabled } = defineProps<SwitchProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst elModel = useFormItemBooleanModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-time-picker\r\n v-if=\"isTimePicker\"\r\n v-model=\"elModel\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n :editable=\"editable\"\r\n :clearable=\"clearable\"\r\n :format=\"normalizedSourceFormat\"\r\n arrow-control\r\n style=\"width: 100%\"\r\n />\r\n <el-date-picker\r\n v-else\r\n v-model=\"elModel\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n :editable=\"editable\"\r\n :clearable=\"clearable\"\r\n :type=\"dateType\"\r\n :format=\"normalizedSourceFormat\"\r\n style=\"width: 100%\"\r\n />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed } from 'vue'\r\nimport { ElCol, ElFormItem, ElDatePicker, ElTimePicker, dayjs } from 'element-plus'\r\nimport type { DateInputProps } from './DateInput'\r\nimport { useFormContext, useFormItemSpan, useFormItemRules } from '../hooks'\r\nimport { isDate, isString } from 'lodash-es'\r\nimport OrionError from '../../../error/OrionError'\r\n\r\ndefineOptions({ name: 'OFormDate', inheritAttrs: false })\r\n\r\nconst {\r\n name,\r\n label,\r\n labelWidth,\r\n required,\r\n placeholder,\r\n disabled,\r\n readonly,\r\n editable = true,\r\n clearable = true,\r\n format = 'YYYY-MM-DD',\r\n sourceFormat,\r\n} = defineProps<DateInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\n\r\nconst isTimePicker = computed(() => format.startsWith('H') || format.startsWith('h') || format.startsWith('m') || format.startsWith('s'))\r\n\r\nconst normalizedSourceFormat = computed(() => {\r\n if (sourceFormat) {\r\n return sourceFormat\r\n }\r\n if (isTimePicker.value) {\r\n return 'HH:mm:ss'\r\n } else {\r\n return 'YYYY-MM-DD'\r\n }\r\n})\r\n\r\nconst dateType = computed(() => {\r\n let picker: 'date' | 'year' | 'month' | 'datetime' = 'date'\r\n\r\n // 配置年 yyyy指年 YYYY指周年,年末年初的值可能有所变化\r\n if (format.indexOf('y') > -1 || format.indexOf('Y') > -1) {\r\n picker = 'year'\r\n }\r\n\r\n // 配置月,M指月份,m指分钟\r\n if (format.indexOf('M') > -1) {\r\n picker = 'month'\r\n }\r\n\r\n // 配置日,d指星期,D指月的天,DDD指年的天\r\n if (format.indexOf('d') > -1 || format.indexOf('D') > -1) {\r\n picker = 'date'\r\n }\r\n\r\n // 配置小时,H指24小时制(0~23),k指24小时制(1~24),h指12小时制,m指分钟,s指秒,S指小数秒\r\n if (\r\n format.indexOf('H') > -1 ||\r\n format.indexOf('h') > -1 ||\r\n format.indexOf('k') > -1 ||\r\n format.indexOf('m') > -1 ||\r\n format.indexOf('s') > -1 ||\r\n format.indexOf('S') > -1\r\n ) {\r\n picker = 'datetime'\r\n }\r\n\r\n return picker\r\n})\r\n\r\nconst formContext = useFormContext()!\r\nconst elModel = computed<Date | undefined>({\r\n get: () => {\r\n const value = formContext.modelValue[name]\r\n if (!value) {\r\n return undefined\r\n }\r\n if (isDate(value)) {\r\n return value as Date\r\n } else if (isString(value)) {\r\n const dayjsObj = dayjs(value, normalizedSourceFormat.value, true)\r\n if (!dayjsObj.isValid()) {\r\n throw new OrionError(`日期输入框的值无效,不符合${normalizedSourceFormat.value}格式`)\r\n }\r\n return dayjsObj.toDate()\r\n } else {\r\n throw new OrionError('日期输入框的值只能为字符串或日期类型')\r\n }\r\n },\r\n set: (newValue) => {\r\n if (sourceFormat) {\r\n if (!newValue) {\r\n formContext.updateModelValue(name, '')\r\n } else {\r\n formContext.updateModelValue(name, dayjs(newValue).format(normalizedSourceFormat.value))\r\n }\r\n } else {\r\n if (!newValue) {\r\n formContext.updateModelValue(name, undefined)\r\n } else {\r\n formContext.updateModelValue(name, newValue)\r\n }\r\n }\r\n },\r\n})\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input ref=\"inputRef\" v-model=\"file\" :disabled=\"disabled\" type=\"file\" :validate-event=\"false\" />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { onMounted, ref, useTemplateRef, watch } from 'vue'\r\nimport { ElCol, ElFormItem, ElInput } from 'element-plus'\r\nimport type { FileInputProps } from './FileInput'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemStringModel } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormFile', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, disabled } = defineProps<FileInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst elModel = useFormItemStringModel()\r\nwatch(elModel, () => {\r\n if (!elModel.value) {\r\n file.value = ''\r\n }\r\n})\r\n\r\nconst file = ref('')\r\nconst fileRef = useTemplateRef('inputRef')\r\nonMounted(() => {\r\n fileRef.value!.input!.onchange = (event) => {\r\n //@ts-ignore\r\n elModel.value = event?.target?.files[0]\r\n }\r\n file.value = ''\r\n})\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\" :style=\"style\">\r\n <space :gutter=\"gutter\" style=\"margin-bottom: var(--orion-form-validation-message-height)\"> <slot></slot> </space>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol } from 'element-plus'\r\nimport type { ButtonGroupProps } from './ButtonGroup'\r\nimport Space from '../../Space'\r\nimport { useFormItemSpan } from '../hooks'\r\nimport { computed, CSSProperties } from 'vue'\r\n\r\ndefineOptions({ name: 'OFormButtongroup', inheritAttrs: false })\r\n\r\nconst { gutter, align = 'right' } = defineProps<ButtonGroupProps>()\r\nconst style = computed<CSSProperties>(() => {\r\n return {\r\n textAlign: align,\r\n }\r\n})\r\n\r\nconst normalizedSpan = useFormItemSpan()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <slot></slot>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem } from 'element-plus'\r\nimport type { DiyItemProps } from './DiyItem'\r\nimport { useFormItemSpan, useFormItemRules } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormDiy', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required } = defineProps<DiyItemProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-dropdown ref=\"dropdown\" :trigger=\"'click'\" @visible-change=\"onVisibleChange\" style=\"width: 100%\">\r\n <el-input ref=\"input\" v-model=\"elModel\" :maxlength=\"maxlength\" :placeholder=\"placeholder\" :disabled=\"disabled\"\r\n :readonly=\"readonly\" @input=\"onInput\" @keydown=\"onKeydown\" @change=\"onChange\" @blur=\"onBlur\"\r\n :suffix-icon=\"Search\" />\r\n <template #dropdown>\r\n <slot></slot>\r\n </template>\r\n </el-dropdown>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInput, ElDropdown } from 'element-plus'\r\nimport { Search } from '@element-plus/icons-vue'\r\nimport { KeydownHandler, LovContext, lovContextKey, type LovInputProps } from './LovInput'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemStringModel, useFormContext } from '../hooks'\r\nimport { provide, reactive, ref, useTemplateRef } from 'vue'\r\nimport { isString } from 'lodash-es'\r\n\r\ndefineOptions({ name: 'OFormLov', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly, fillMapping } = defineProps<LovInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst elModel = useFormItemStringModel()\r\nconst formContext = useFormContext()!\r\n\r\nconst visible = ref(false)\r\nconst onVisibleChange = (val: boolean) => {\r\n visible.value = val\r\n}\r\n\r\nconst changed = ref(false)\r\nconst onInput = () => {\r\n if (!changed.value) {\r\n changed.value = true\r\n }\r\n\r\n if (!visible.value) {\r\n dropdownRef.value!.handleOpen()\r\n }\r\n}\r\n\r\nlet keydownHandler: KeydownHandler | undefined\r\nconst registerKeydownHandler: LovContext['registerKeydownHandler'] = (handler) => {\r\n keydownHandler = handler\r\n}\r\n\r\nconst onKeydown = (e: any) => {\r\n const fallthroughCodes = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Enter', 'Space']\r\n\r\n if (fallthroughCodes.indexOf(e.code) > -1) {\r\n if (visible.value) {\r\n keydownHandler && keydownHandler(e.code)\r\n }\r\n e.stopPropagation()\r\n }\r\n\r\n const triggerCodes = ['ArrowUp', 'ArrowDown']\r\n if (triggerCodes.indexOf(e.code) > -1 && !visible.value) {\r\n dropdownRef.value!.handleOpen()\r\n }\r\n}\r\n\r\nconst inputRef = useTemplateRef('input')\r\nconst onBlur = async (e: any) => {\r\n if (visible.value) {\r\n inputRef.value!.focus()\r\n }\r\n}\r\n\r\nconst onChange = () => {\r\n if (!changed.value) {\r\n return\r\n }\r\n\r\n if (isString(fillMapping)) {\r\n const data: Record<string, any> = {}\r\n\r\n const pairs = fillMapping.split(',')\r\n for (let i = 0; i < pairs.length; i++) {\r\n const dstName = pairs[i].split(':')[0].trim()\r\n data[dstName] = undefined\r\n }\r\n\r\n formContext.updateModelValueMulti(data)\r\n }\r\n}\r\n\r\nconst dropdownRef = useTemplateRef('dropdown')\r\nconst backfill: LovContext['backfill'] = (params) => {\r\n dropdownRef.value!.handleClose()\r\n\r\n if (isString(fillMapping)) {\r\n const data: Record<string, any> = {}\r\n\r\n const pairs = fillMapping.split(',')\r\n for (let i = 0; i < pairs.length; i++) {\r\n const dstName = pairs[i].split(':')[0].trim()\r\n const srcName = pairs[i].split(':')[1].trim()\r\n const srcValue = params[srcName]\r\n data[dstName] = srcValue\r\n }\r\n\r\n formContext.updateModelValueMulti(data)\r\n } else {\r\n fillMapping && fillMapping(params)\r\n }\r\n\r\n if (changed.value) {\r\n changed.value = false\r\n }\r\n}\r\n\r\nprovide(\r\n lovContextKey,\r\n reactive({\r\n lovValue: elModel,\r\n backfill,\r\n registerKeydownHandler,\r\n })\r\n)\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input-number v-model=\"elModel\" :placeholder=\"placeholder\" :disabled=\"disabled\" :readonly=\"readonly\" :min=\"min\"\r\n :max=\"max\" :step=\"step\" :step-strictly=\"stepStrictly\" :precision=\"precision\" :controls=\"controls\"\r\n :controls-position=\"controlsPosition\" style=\"width: 100%\">\r\n <template v-if=\"slots['decrease-icon']\" #decrease-icon>\r\n <slot name=\"decrease-icon\"></slot>\r\n </template>\r\n <template v-if=\"slots['increase-icon']\" #increase-icon>\r\n <slot name=\"increase-icon\"></slot>\r\n </template>\r\n <template v-if=\"slots['prefix']\" #prefix>\r\n <slot name=\"prefix\"></slot>\r\n </template>\r\n <template v-if=\"slots['suffix']\" #suffix>\r\n <slot name=\"suffix\"></slot>\r\n </template>\r\n </el-input-number>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInputNumber } from 'element-plus'\r\nimport type { NumberInputProps } from './NumberInput'\r\nimport { useFormItemSpan, useFormItemRules, useFormContext } from '../hooks'\r\nimport { computed, useSlots } from 'vue'\r\nimport { isNumber, isString, toNumber } from 'lodash-es'\r\nimport OrionError from '../../../error/OrionError'\r\n\r\ndefineOptions({ name: 'OFormNumber', inheritAttrs: false })\r\nconst slots = useSlots()\r\n\r\nconst {\r\n name,\r\n label,\r\n labelWidth,\r\n required,\r\n placeholder,\r\n disabled,\r\n readonly,\r\n min,\r\n max,\r\n step,\r\n stepStrictly,\r\n precision,\r\n controls = true,\r\n controlsPosition,\r\n} = defineProps<NumberInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\n\r\nconst formContext = useFormContext()!\r\nconst elModel = computed<number | undefined>({\r\n get: () => {\r\n const value = formContext.modelValue[name]\r\n if (!value) {\r\n return undefined\r\n }\r\n if (isNumber(value)) {\r\n return value\r\n } else if (isString(value)) {\r\n return toNumber(value)\r\n } else {\r\n throw new OrionError('数字输入框的值只能为字符串或数字类型')\r\n }\r\n },\r\n set: (newValue) => {\r\n if (!newValue) {\r\n formContext.updateModelValue(name, undefined)\r\n } else {\r\n formContext.updateModelValue(name, newValue)\r\n }\r\n },\r\n})\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-dropdown ref=\"dropdown\" :trigger=\"'click'\" @visible-change=\"onVisibleChange\" style=\"width: 100%;\">\r\n <div @focus=\"onFocus\" :style=\"{ position: 'relative', width: '100%', height: '100%' }\">\r\n <el-input ref=\"input\" v-model=\"inputValue\" :maxlength=\"maxlength\" :placeholder=\"placeholder\"\r\n :disabled=\"disabled\" :readonly=\"readonly\" @input=\"onInput\" @keydown=\"onKeydown\" @blur=\"onBlur\"\r\n :suffix-icon=\"visible ? ArrowUp : ArrowDown\" />\r\n <div v-if=\"!visible\"\r\n :style=\"{ position: 'absolute', inset: '4px 30px 4px 4px', overflow: 'hidden', pointerEvents: 'none' }\">\r\n <o-space>\r\n <el-tag v-for=\"tag in tags\" type=\"info\">{{ tag }}</el-tag>\r\n </o-space>\r\n </div>\r\n </div>\r\n <template #dropdown>\r\n <slot></slot>\r\n </template>\r\n </el-dropdown>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInput, ElDropdown, ElTag } from 'element-plus'\r\nimport { ArrowDown, ArrowUp } from '@element-plus/icons-vue'\r\nimport { RowCompletionProvider, TableSelectContext, tableSelectContext, type TableSelectProps } from './TableSelect'\r\nimport { useFormItemSpan, useFormItemRules, useFormContext } from '../hooks'\r\nimport { computed, onMounted, provide, reactive, ref, useTemplateRef, watch } from 'vue'\r\nimport { isArray, pick } from 'lodash-es'\r\nimport OrionError from '../../../error/OrionError'\r\n\r\ndefineOptions({ name: 'OFormTableselect', inheritAttrs: false })\r\n\r\nconst emit = defineEmits(['change'])\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly, pick: pickup, tag } = defineProps<TableSelectProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\n\r\nconst inputValue = ref('')\r\nconst modifyByForm = ref(false)\r\nconst formContext = useFormContext()!\r\nconst elModel = computed<any[] | undefined>({\r\n get: () => {\r\n const value = formContext.modelValue[name]\r\n if (!value) {\r\n return undefined\r\n }\r\n if (!isArray(value)) {\r\n throw new OrionError('表格下拉框的值只能为数组类型')\r\n }\r\n return value\r\n },\r\n set: (newValue) => {\r\n modifyByForm.value = false\r\n if (!newValue) {\r\n formContext.updateModelValue(name, undefined)\r\n } else {\r\n formContext.updateModelValue(name, newValue)\r\n }\r\n },\r\n})\r\n\r\nconst selection = ref<any[] | undefined>([])\r\nonMounted(async () => {\r\n if (completionItemProvider) {\r\n selection.value = await completionItemProvider(elModel.value)\r\n if (selection.value) {\r\n tags.value = selection.value.map((item) => tag(item))\r\n }\r\n }\r\n})\r\nwatch(elModel, async () => {\r\n if (modifyByForm.value) {\r\n if (completionItemProvider) {\r\n selection.value = await completionItemProvider(elModel.value)\r\n if (selection.value) {\r\n tags.value = selection.value.map((item) => tag(item))\r\n }\r\n }\r\n } else {\r\n modifyByForm.value = true\r\n }\r\n})\r\n\r\nconst visible = ref(false)\r\nconst onVisibleChange = (val: boolean) => {\r\n visible.value = val\r\n}\r\nconst onInput = () => {\r\n if (!visible.value) {\r\n dropdownRef.value!.handleOpen()\r\n }\r\n}\r\n\r\nconst inputRef = useTemplateRef('input')\r\nconst onFocus = () => {\r\n inputRef.value!.focus()\r\n}\r\n\r\nconst onKeydown = (e: any) => {\r\n if (visible.value) {\r\n if (['Enter', 'Escape'].indexOf(e.code) > -1) {\r\n dropdownRef.value!.handleClose()\r\n } else if ('ArrowDown' == e.code) {\r\n e.stopPropagation()\r\n } else if ('Tab' == e.code) {\r\n visible.value = false\r\n dropdownRef.value!.handleClose()\r\n }\r\n } else {\r\n if (['ArrowUp', 'ArrowDown'].indexOf(e.code) > -1) {\r\n dropdownRef.value!.handleOpen()\r\n e.stopPropagation()\r\n }\r\n }\r\n}\r\n\r\nconst onBlur = async (e: any) => {\r\n if (visible.value) {\r\n inputRef.value!.focus()\r\n } else {\r\n inputValue.value = ''\r\n }\r\n}\r\n\r\nconst tags = ref<string[]>([])\r\nconst dropdownRef = useTemplateRef('dropdown')\r\nconst onSelect: TableSelectContext['onSelect'] = (selection, clear) => {\r\n elModel.value = selection.map((item) => pick(item, pickup))\r\n tags.value = selection.map((item) => tag(item))\r\n if (clear) {\r\n inputValue.value = ''\r\n }\r\n emit('change', selection)\r\n}\r\nconst selectDone: TableSelectContext['selectDone'] = () => {\r\n dropdownRef.value!.handleClose()\r\n}\r\n\r\nlet completionItemProvider: RowCompletionProvider | undefined\r\nconst registerRowCompletionProvider: TableSelectContext['registerRowCompletionProvider'] = (provider) => {\r\n completionItemProvider = provider\r\n}\r\n\r\nprovide(\r\n tableSelectContext,\r\n reactive({\r\n inputValue,\r\n selection,\r\n onSelect,\r\n selectDone,\r\n tag,\r\n registerRowCompletionProvider\r\n })\r\n)\r\n</script>","import { withInstall } from '../_util'\r\n\r\nimport Form from './Form.vue'\r\nimport StringInput from './StringInput/StringInput.vue'\r\nimport PasswordInput from './PasswordInput/PasswordInput.vue'\r\nimport Textarea from './Textarea/Textarea.vue'\r\nimport SingleSelect from './SingleSelect/SingleSelect.vue'\r\nimport MultiSelect from './MultiSelect/MultiSelect.vue'\r\nimport RadioGroup from './RadioGroup/RadioGroup.vue'\r\nimport CheckboxGroup from './CheckboxGroup/CheckboxGroup.vue'\r\nimport Checkbox from './Checkbox/Checkbox.vue'\r\nimport Switch from './Switch/Switch.vue'\r\nimport DateInput from './DateInput/DateInput.vue'\r\nimport FileInput from './FileInput/FileInput.vue'\r\nimport ButtonGroup from './ButtonGroup/ButtonGroup.vue'\r\nimport DiyItem from './DiyItem/DiyItem.vue'\r\nimport LovInput from './LovInput/LovInput.vue'\r\nimport NumberInput from './NumberInput/NumberInput.vue'\r\nimport TableSelect from './TableSelect/TableSelect.vue'\r\n\r\nexport default withInstall<\r\n typeof Form,\r\n {\r\n StringInput: typeof StringInput\r\n PasswordInput: typeof PasswordInput\r\n Textarea: typeof Textarea\r\n SingleSelect: typeof SingleSelect\r\n MultiSelect: typeof MultiSelect\r\n RadioGroup: typeof RadioGroup\r\n CheckboxGroup: typeof CheckboxGroup\r\n Checkbox: typeof Checkbox\r\n Switch: typeof Switch\r\n DateInput: typeof DateInput\r\n FileInput: typeof FileInput\r\n ButtonGroup: typeof ButtonGroup\r\n DiyItem: typeof DiyItem\r\n LovInput: typeof LovInput\r\n NumberInput: typeof NumberInput\r\n TableSelect: typeof TableSelect\r\n }\r\n>(Form, {\r\n StringInput,\r\n PasswordInput,\r\n Textarea,\r\n SingleSelect,\r\n MultiSelect,\r\n RadioGroup,\r\n CheckboxGroup,\r\n Checkbox,\r\n Switch,\r\n DateInput,\r\n FileInput,\r\n ButtonGroup,\r\n DiyItem,\r\n LovInput,\r\n NumberInput,\r\n TableSelect,\r\n})\r\n\r\nexport * from './Form'\r\nexport * from './StringInput'\r\nexport * from './PasswordInput'\r\nexport * from './Textarea'\r\nexport * from './SingleSelect'\r\nexport * from './MultiSelect'\r\nexport * from './RadioGroup'\r\nexport * from './CheckboxGroup'\r\nexport * from './Checkbox'\r\nexport * from './Switch'\r\nexport * from './DateInput'\r\nexport * from './FileInput'\r\nexport * from './ButtonGroup'\r\nexport * from './DiyItem'\r\nexport * from './LovInput'\r\nexport * from './NumberInput'\r\nexport * from './TableSelect'\r\n"],"names":["emit","__emit","updateModelValue","name","value","__props","OrionError","updateModelValueMulti","data","modelKeys","dataKeys","diff","difference","isEmpty","formRef","useTemplateRef","__expose","provide","formContextKey","reactive","toRef","slots","useSlots","normalizedSpan","useFormItemSpan","normalizedRules","useFormItemRules","elModel","useFormItemStringModel","attrs","useAttrs","normalizedDisabled","useFormItemDisabled","normalizedCode","useFormItemCode","content","computed","getSingleCodeContent","useFormItemMultiModel","formContext","useFormContext","getMultiCodeContent","useFormItemBooleanModel","isTimePicker","normalizedSourceFormat","dateType","picker","isDate","isString","dayjsObj","dayjs","newValue","watch","file","ref","fileRef","onMounted","event","_a","style","visible","onVisibleChange","val","changed","onInput","dropdownRef","keydownHandler","registerKeydownHandler","handler","onKeydown","e","inputRef","onBlur","onChange","pairs","i","dstName","lovContextKey","params","srcName","srcValue","isNumber","toNumber","inputValue","modifyByForm","isArray","selection","completionItemProvider","tags","item","onFocus","onSelect","clear","pick","selectDone","registerRowCompletionProvider","provider","tableSelectContext","index","withInstall","Form","StringInput","PasswordInput","Textarea","SingleSelect","MultiSelect","RadioGroup","CheckboxGroup","Checkbox","Switch","DateInput","FileInput","ButtonGroup","DiyItem","LovInput","NumberInput","TableSelect"],"mappings":"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"}
|
@@ -30,6 +30,22 @@ declare function __VLS_template(): {
|
|
30
30
|
type: BooleanConstructor;
|
31
31
|
default: boolean;
|
32
32
|
};
|
33
|
+
paginationPagerCount: {
|
34
|
+
type: import('vue').PropType<number>;
|
35
|
+
default: number;
|
36
|
+
};
|
37
|
+
paginationShowTotal: {
|
38
|
+
type: BooleanConstructor;
|
39
|
+
default: boolean;
|
40
|
+
};
|
41
|
+
paginationShowSizes: {
|
42
|
+
type: BooleanConstructor;
|
43
|
+
default: boolean;
|
44
|
+
};
|
45
|
+
paginationShowJumber: {
|
46
|
+
type: BooleanConstructor;
|
47
|
+
default: boolean;
|
48
|
+
};
|
33
49
|
showRowNumber: {
|
34
50
|
type: BooleanConstructor;
|
35
51
|
default: boolean;
|
@@ -144,6 +160,22 @@ declare function __VLS_template(): {
|
|
144
160
|
type: BooleanConstructor;
|
145
161
|
default: boolean;
|
146
162
|
};
|
163
|
+
paginationPagerCount: {
|
164
|
+
type: import('vue').PropType<number>;
|
165
|
+
default: number;
|
166
|
+
};
|
167
|
+
paginationShowTotal: {
|
168
|
+
type: BooleanConstructor;
|
169
|
+
default: boolean;
|
170
|
+
};
|
171
|
+
paginationShowSizes: {
|
172
|
+
type: BooleanConstructor;
|
173
|
+
default: boolean;
|
174
|
+
};
|
175
|
+
paginationShowJumber: {
|
176
|
+
type: BooleanConstructor;
|
177
|
+
default: boolean;
|
178
|
+
};
|
147
179
|
showRowNumber: {
|
148
180
|
type: BooleanConstructor;
|
149
181
|
default: boolean;
|
@@ -242,6 +274,10 @@ declare function __VLS_template(): {
|
|
242
274
|
};
|
243
275
|
tailData: Record<string, any>;
|
244
276
|
paginationTeleported: boolean;
|
277
|
+
paginationPagerCount: number;
|
278
|
+
paginationShowTotal: boolean;
|
279
|
+
paginationShowSizes: boolean;
|
280
|
+
paginationShowJumber: boolean;
|
245
281
|
showRowNumber: boolean;
|
246
282
|
selectionMode: boolean;
|
247
283
|
currentRowMode: boolean;
|
@@ -305,6 +341,22 @@ declare function __VLS_template(): {
|
|
305
341
|
type: BooleanConstructor;
|
306
342
|
default: boolean;
|
307
343
|
};
|
344
|
+
paginationPagerCount: {
|
345
|
+
type: import('vue').PropType<number>;
|
346
|
+
default: number;
|
347
|
+
};
|
348
|
+
paginationShowTotal: {
|
349
|
+
type: BooleanConstructor;
|
350
|
+
default: boolean;
|
351
|
+
};
|
352
|
+
paginationShowSizes: {
|
353
|
+
type: BooleanConstructor;
|
354
|
+
default: boolean;
|
355
|
+
};
|
356
|
+
paginationShowJumber: {
|
357
|
+
type: BooleanConstructor;
|
358
|
+
default: boolean;
|
359
|
+
};
|
308
360
|
showRowNumber: {
|
309
361
|
type: BooleanConstructor;
|
310
362
|
default: boolean;
|
@@ -403,6 +455,10 @@ declare function __VLS_template(): {
|
|
403
455
|
};
|
404
456
|
tailData: Record<string, any>;
|
405
457
|
paginationTeleported: boolean;
|
458
|
+
paginationPagerCount: number;
|
459
|
+
paginationShowTotal: boolean;
|
460
|
+
paginationShowSizes: boolean;
|
461
|
+
paginationShowJumber: boolean;
|
406
462
|
showRowNumber: boolean;
|
407
463
|
selectionMode: boolean;
|
408
464
|
currentRowMode: boolean;
|
@@ -483,6 +539,22 @@ declare const __VLS_component: import('vue').DefineComponent<{
|
|
483
539
|
type: BooleanConstructor;
|
484
540
|
default: boolean;
|
485
541
|
};
|
542
|
+
paginationPagerCount: {
|
543
|
+
type: import('vue').PropType<number>;
|
544
|
+
default: number;
|
545
|
+
};
|
546
|
+
paginationShowTotal: {
|
547
|
+
type: BooleanConstructor;
|
548
|
+
default: boolean;
|
549
|
+
};
|
550
|
+
paginationShowSizes: {
|
551
|
+
type: BooleanConstructor;
|
552
|
+
default: boolean;
|
553
|
+
};
|
554
|
+
paginationShowJumber: {
|
555
|
+
type: BooleanConstructor;
|
556
|
+
default: boolean;
|
557
|
+
};
|
486
558
|
showRowNumber: {
|
487
559
|
type: BooleanConstructor;
|
488
560
|
default: boolean;
|
@@ -597,6 +669,22 @@ declare const __VLS_component: import('vue').DefineComponent<{
|
|
597
669
|
type: BooleanConstructor;
|
598
670
|
default: boolean;
|
599
671
|
};
|
672
|
+
paginationPagerCount: {
|
673
|
+
type: import('vue').PropType<number>;
|
674
|
+
default: number;
|
675
|
+
};
|
676
|
+
paginationShowTotal: {
|
677
|
+
type: BooleanConstructor;
|
678
|
+
default: boolean;
|
679
|
+
};
|
680
|
+
paginationShowSizes: {
|
681
|
+
type: BooleanConstructor;
|
682
|
+
default: boolean;
|
683
|
+
};
|
684
|
+
paginationShowJumber: {
|
685
|
+
type: BooleanConstructor;
|
686
|
+
default: boolean;
|
687
|
+
};
|
600
688
|
showRowNumber: {
|
601
689
|
type: BooleanConstructor;
|
602
690
|
default: boolean;
|
@@ -695,6 +783,10 @@ declare const __VLS_component: import('vue').DefineComponent<{
|
|
695
783
|
};
|
696
784
|
tailData: Record<string, any>;
|
697
785
|
paginationTeleported: boolean;
|
786
|
+
paginationPagerCount: number;
|
787
|
+
paginationShowTotal: boolean;
|
788
|
+
paginationShowSizes: boolean;
|
789
|
+
paginationShowJumber: boolean;
|
698
790
|
showRowNumber: boolean;
|
699
791
|
selectionMode: boolean;
|
700
792
|
currentRowMode: boolean;
|
@@ -758,6 +850,22 @@ declare const __VLS_component: import('vue').DefineComponent<{
|
|
758
850
|
type: BooleanConstructor;
|
759
851
|
default: boolean;
|
760
852
|
};
|
853
|
+
paginationPagerCount: {
|
854
|
+
type: import('vue').PropType<number>;
|
855
|
+
default: number;
|
856
|
+
};
|
857
|
+
paginationShowTotal: {
|
858
|
+
type: BooleanConstructor;
|
859
|
+
default: boolean;
|
860
|
+
};
|
861
|
+
paginationShowSizes: {
|
862
|
+
type: BooleanConstructor;
|
863
|
+
default: boolean;
|
864
|
+
};
|
865
|
+
paginationShowJumber: {
|
866
|
+
type: BooleanConstructor;
|
867
|
+
default: boolean;
|
868
|
+
};
|
761
869
|
showRowNumber: {
|
762
870
|
type: BooleanConstructor;
|
763
871
|
default: boolean;
|
@@ -856,6 +964,10 @@ declare const __VLS_component: import('vue').DefineComponent<{
|
|
856
964
|
};
|
857
965
|
tailData: Record<string, any>;
|
858
966
|
paginationTeleported: boolean;
|
967
|
+
paginationPagerCount: number;
|
968
|
+
paginationShowTotal: boolean;
|
969
|
+
paginationShowSizes: boolean;
|
970
|
+
paginationShowJumber: boolean;
|
859
971
|
showRowNumber: boolean;
|
860
972
|
selectionMode: boolean;
|
861
973
|
currentRowMode: boolean;
|
@@ -410,6 +410,22 @@ declare const _default: import('../_util').SFCWithInstall<{}> & {
|
|
410
410
|
type: BooleanConstructor;
|
411
411
|
default: boolean;
|
412
412
|
};
|
413
|
+
paginationPagerCount: {
|
414
|
+
type: import('vue').PropType<number>;
|
415
|
+
default: number;
|
416
|
+
};
|
417
|
+
paginationShowTotal: {
|
418
|
+
type: BooleanConstructor;
|
419
|
+
default: boolean;
|
420
|
+
};
|
421
|
+
paginationShowSizes: {
|
422
|
+
type: BooleanConstructor;
|
423
|
+
default: boolean;
|
424
|
+
};
|
425
|
+
paginationShowJumber: {
|
426
|
+
type: BooleanConstructor;
|
427
|
+
default: boolean;
|
428
|
+
};
|
413
429
|
showRowNumber: {
|
414
430
|
type: BooleanConstructor;
|
415
431
|
default: boolean;
|
@@ -524,6 +540,22 @@ declare const _default: import('../_util').SFCWithInstall<{}> & {
|
|
524
540
|
type: BooleanConstructor;
|
525
541
|
default: boolean;
|
526
542
|
};
|
543
|
+
paginationPagerCount: {
|
544
|
+
type: import('vue').PropType<number>;
|
545
|
+
default: number;
|
546
|
+
};
|
547
|
+
paginationShowTotal: {
|
548
|
+
type: BooleanConstructor;
|
549
|
+
default: boolean;
|
550
|
+
};
|
551
|
+
paginationShowSizes: {
|
552
|
+
type: BooleanConstructor;
|
553
|
+
default: boolean;
|
554
|
+
};
|
555
|
+
paginationShowJumber: {
|
556
|
+
type: BooleanConstructor;
|
557
|
+
default: boolean;
|
558
|
+
};
|
527
559
|
showRowNumber: {
|
528
560
|
type: BooleanConstructor;
|
529
561
|
default: boolean;
|
@@ -622,6 +654,10 @@ declare const _default: import('../_util').SFCWithInstall<{}> & {
|
|
622
654
|
};
|
623
655
|
tailData: Record<string, any>;
|
624
656
|
paginationTeleported: boolean;
|
657
|
+
paginationPagerCount: number;
|
658
|
+
paginationShowTotal: boolean;
|
659
|
+
paginationShowSizes: boolean;
|
660
|
+
paginationShowJumber: boolean;
|
625
661
|
showRowNumber: boolean;
|
626
662
|
selectionMode: boolean;
|
627
663
|
currentRowMode: boolean;
|
@@ -685,6 +721,22 @@ declare const _default: import('../_util').SFCWithInstall<{}> & {
|
|
685
721
|
type: BooleanConstructor;
|
686
722
|
default: boolean;
|
687
723
|
};
|
724
|
+
paginationPagerCount: {
|
725
|
+
type: import('vue').PropType<number>;
|
726
|
+
default: number;
|
727
|
+
};
|
728
|
+
paginationShowTotal: {
|
729
|
+
type: BooleanConstructor;
|
730
|
+
default: boolean;
|
731
|
+
};
|
732
|
+
paginationShowSizes: {
|
733
|
+
type: BooleanConstructor;
|
734
|
+
default: boolean;
|
735
|
+
};
|
736
|
+
paginationShowJumber: {
|
737
|
+
type: BooleanConstructor;
|
738
|
+
default: boolean;
|
739
|
+
};
|
688
740
|
showRowNumber: {
|
689
741
|
type: BooleanConstructor;
|
690
742
|
default: boolean;
|
@@ -783,6 +835,10 @@ declare const _default: import('../_util').SFCWithInstall<{}> & {
|
|
783
835
|
};
|
784
836
|
tailData: Record<string, any>;
|
785
837
|
paginationTeleported: boolean;
|
838
|
+
paginationPagerCount: number;
|
839
|
+
paginationShowTotal: boolean;
|
840
|
+
paginationShowSizes: boolean;
|
841
|
+
paginationShowJumber: boolean;
|
786
842
|
showRowNumber: boolean;
|
787
843
|
selectionMode: boolean;
|
788
844
|
currentRowMode: boolean;
|