SForm.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. import { useAttrs as m, ref as n, computed as f, watchEffect as i, openBlock as p, createElementBlock as y, createVNode as h, mergeProps as _, unref as b, withCtx as v, renderSlot as g } from "vue";
  2. import { l as x, an as S } from "./index2.js";
  3. const w = { class: "s-form" }, C = {
  4. __name: "SForm",
  5. props: {
  6. model: {
  7. type: Object,
  8. default() {
  9. return {};
  10. }
  11. },
  12. rules: {
  13. type: Object,
  14. default() {
  15. return {};
  16. }
  17. },
  18. layout: {
  19. type: String,
  20. default() {
  21. return "horizontal";
  22. }
  23. },
  24. column: {
  25. type: [Number, String],
  26. default() {
  27. return 1;
  28. }
  29. },
  30. labelWidth: {
  31. type: [Number, String],
  32. default() {
  33. return 80;
  34. }
  35. }
  36. },
  37. setup(r, { expose: u }) {
  38. const c = m(), e = r, a = n(), s = n(e.column >= 5 ? 4 : e.column), d = f(() => {
  39. const l = e.layout, t = (e == null ? void 0 : e.labelWidth) + "";
  40. return l === "horizontal" ? {
  41. style: {
  42. width: t.includes("px") ? t : t + "px"
  43. }
  44. } : {};
  45. });
  46. return i(() => {
  47. e.column > 4 && console.warn(`当前设置表单列column【${e.column}】最多显示为4列,已默认为最多4列`);
  48. }), u({ validate: () => new Promise((l, t) => {
  49. a.value.validate().then((o) => {
  50. l(o);
  51. }).catch((o) => {
  52. t(o);
  53. });
  54. }) }), (l, t) => {
  55. const o = S;
  56. return p(), y("div", w, [
  57. h(o, _({
  58. labelCol: d.value.labelCol,
  59. model: r.model,
  60. rules: r.rules,
  61. layout: r.layout
  62. }, b(c), {
  63. ref_key: "form",
  64. ref: a,
  65. style: {
  66. display: "grid",
  67. gridTemplateColumns: `repeat(${s.value}, 1fr)`,
  68. gap: "20px"
  69. }
  70. }), {
  71. default: v(() => [
  72. g(l.$slots, "default", {}, void 0, !0)
  73. ]),
  74. _: 3
  75. }, 16, ["labelCol", "model", "rules", "layout", "style"])
  76. ]);
  77. };
  78. }
  79. }, $ = /* @__PURE__ */ x(C, [["__scopeId", "data-v-cad3adca"]]);
  80. export {
  81. $ as default
  82. };