index.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import { arr2obj } from "../data-transform";
  2. export const initColumns = (
  3. arr,
  4. prop = { disabled: false, readonly: false, clearable: false }
  5. ) => {
  6. return arr.map((element) => {
  7. element.config = element.config || {};
  8. if (element.type === "Input") {
  9. }
  10. if (element.type === "InputDialog") {
  11. prop.readonly = true;
  12. }
  13. if (element.type === "InputNumber") {
  14. element.config = { controlsPosition: "right", ...element.config };
  15. }
  16. if (element.type === "Select") {
  17. }
  18. if (element.type === "DatePicker") {
  19. element.config = { type: "date", ...element.config };
  20. }
  21. if (element.type === "Upload") {
  22. element.value = [];
  23. }
  24. return { ...element, ...prop };
  25. });
  26. };
  27. // 初始化参数
  28. export const initParams = (prop, key = "key", value = "value") =>
  29. arr2obj(prop, key, value);
  30. // 初始化字典
  31. export const initDicts = (prop) =>
  32. prop
  33. .filter((column) => column.type === "Select")
  34. .map((column) => column.config.optionsName);
  35. // 初始化校验
  36. export const initRules = (prop) => {
  37. const rules = {};
  38. prop
  39. .filter((column) => column.require)
  40. .forEach((column) => {
  41. const message = `${column.title}不能为空`;
  42. rules[column.key] = [
  43. { required: true, message: message, trigger: "change" },
  44. ];
  45. });
  46. return rules;
  47. };
  48. const pageSizes = [25, 50, 100];
  49. const layout = "total, prev, pager, next, sizes, jumper";
  50. const page = { pageNum: 1, pageSize: 25, total: 0 };
  51. export const initPageSizes = () => pageSizes;
  52. export const initLayout = () => layout;
  53. export const initPage = () => page;