UNPKG

song-ui-u

Version:

vue3 + js的PC前端组件库

1 lines 3.44 kB
{"version":3,"file":"form.vue.cjs","sources":["../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<template>\n <form :class=\"[ns.b(), ns.is('inline', inline)]\">\n <slot />\n </form>\n</template>\n<script>\nexport default { name: \"x-form\" };\n</script>\n<script setup>\nimport { toRefs, provide } from \"vue\";\nimport { FORM_KEY } from \"./constant\";\nimport { useNamespace } from \"@ui-library/hook\";\nconst ns = useNamespace(\"form\");\nconst props = defineProps({\n model: {\n type: Object,\n default: () => ({}),\n },\n rules: {\n type: Object,\n default: () => ({}),\n },\n labelWidth: {\n type: String,\n default: \"\",\n },\n align: {\n type: String,\n default: \"\",\n },\n size: {\n type: String,\n default: \"\",\n },\n inline: Boolean,\n colon: {\n type: Boolean,\n default: true,\n },\n});\n// 所有字段\nconst modelFields = [];\nconst pushField = (context) => modelFields.push(context);\n\n/**\n * 校验\n */\nconst validate = async (fields) => {\n // validateFields\n const validateFields = filterFields(fields) || modelFields;\n let verificationError = [];\n for (const field of validateFields) {\n try {\n await field.validate();\n } catch (fields) {\n verificationError = [...verificationError, ...fields];\n }\n }\n if (!verificationError.length) return true;\n return Promise.reject(verificationError);\n};\n\n/**\n * 重置\n */\nconst reset = () => {\n const validateFields = modelFields;\n for (const field of validateFields) {\n field?.resetField();\n }\n};\n\n// 过滤需要校验的字段\nconst filterFields = (fields) => {\n if (!fields) {\n return null;\n }\n const fieldArr = modelFields.filter((v) => fields.includes(v.prop));\n return !!fieldArr.length ? fieldArr : null;\n};\n\nprovide(FORM_KEY, { ...toRefs(props), pushField });\n\ndefineExpose({\n validate,\n reset,\n});\n</script>\n"],"names":["useNamespace","provide","FORM_KEY","toRefs"],"mappings":";;;;;;;;;AAMA,MAAA,WAAA,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMjC,MAAM,EAAE,GAAGA,kBAAY,CAAC,MAAM,CAAC,CAAA;AAC/B,MAAM,KAAK,GAAG,OA0BZ,CAAA;AACF;AACA,MAAM,WAAW,GAAG,EAAE,CAAA;AACtB,MAAM,SAAS,GAAG,CAAC,OAAO,KAAK,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;;AAExD;AACA;AACA;AACA,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK;AACnC;AACA,EAAE,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,WAAW,CAAA;AAC5D,EAAE,IAAI,iBAAiB,GAAG,EAAE,CAAA;AAC5B,EAAE,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE;AACtC,IAAI,IAAI;AACR,MAAM,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAA;AAC5B,KAAK,CAAC,OAAO,MAAM,EAAE;AACrB,MAAM,iBAAiB,GAAG,CAAC,GAAG,iBAAiB,EAAE,GAAG,MAAM,CAAC,CAAA;AAC3D,KAAI;AACJ,GAAE;AACF,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,IAAI,CAAA;AAC5C,EAAE,OAAO,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;AAC1C,CAAC,CAAA;;AAED;AACA;AACA;AACA,MAAM,KAAK,GAAG,MAAM;AACpB,EAAE,MAAM,cAAc,GAAG,WAAW,CAAA;AACpC,EAAE,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE;AACtC,IAAI,KAAK,EAAE,UAAU,EAAE,CAAA;AACvB,GAAE;AACF,CAAC,CAAA;;AAED;AACA,MAAM,YAAY,GAAG,CAAC,MAAM,KAAK;AACjC,EAAE,IAAI,CAAC,MAAM,EAAE;AACf,IAAI,OAAO,IAAI,CAAA;AACf,GAAE;AACF,EAAE,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;AACrE,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAA;AAC5C,CAAC,CAAA;;AAEDC,WAAO,CAACC,iBAAQ,EAAE,EAAE,GAAGC,UAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;;AAElD,QAAY,CAAC;AACb,EAAE,QAAQ;AACV,EAAE,KAAK;AACP,CAAC,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;"}