m-eleplus-crud 0.0.4 → 0.0.6

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.
Files changed (106) hide show
  1. package/README.md +31 -31
  2. package/dist/index.full.js +6 -7
  3. package/dist/index.full.min.js +6 -6
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +6 -6
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +6 -7
  8. package/dist/locale/en.js +1 -1
  9. package/dist/locale/en.min.js +1 -1
  10. package/dist/locale/en.min.mjs +1 -1
  11. package/dist/locale/en.mjs +1 -1
  12. package/dist/locale/zh-cn.js +1 -1
  13. package/dist/locale/zh-cn.min.js +1 -1
  14. package/dist/locale/zh-cn.min.mjs +1 -1
  15. package/dist/locale/zh-cn.mjs +1 -1
  16. package/es/component.mjs.map +1 -1
  17. package/es/index.mjs +3 -3
  18. package/es/make-installer.mjs.map +1 -1
  19. package/es/packages/components/barcode/index.mjs.map +1 -1
  20. package/es/packages/components/barcode/src/barcode.mjs.map +1 -1
  21. package/es/packages/components/barcode/src/barcode2.mjs.map +1 -1
  22. package/es/packages/components/config-provider/src/config-provider-props.mjs.map +1 -1
  23. package/es/packages/components/config-provider/src/hooks/use-global-config.mjs.map +1 -1
  24. package/es/packages/components/crud/index.mjs +2 -2
  25. package/es/packages/components/crud/index.mjs.map +1 -1
  26. package/es/packages/components/crud/src/crud.mjs +53 -599
  27. package/es/packages/components/crud/src/crud.mjs.map +1 -1
  28. package/es/packages/components/crud/src/crud2.mjs +598 -53
  29. package/es/packages/components/crud/src/crud2.mjs.map +1 -1
  30. package/es/packages/components/dialog/index.mjs.map +1 -1
  31. package/es/packages/components/form/src/form.mjs.map +1 -1
  32. package/es/packages/components/form/src/form2.mjs.map +1 -1
  33. package/es/packages/components/index.mjs +3 -3
  34. package/es/packages/components/pagination/index.mjs.map +1 -1
  35. package/es/packages/components/pagination/src/pagination.mjs.map +1 -1
  36. package/es/packages/components/pagination/src/pagination2.mjs.map +1 -1
  37. package/es/packages/components/picture/index.mjs +2 -2
  38. package/es/packages/components/picture/index.mjs.map +1 -1
  39. package/es/packages/components/picture/src/picture.mjs +26 -19
  40. package/es/packages/components/picture/src/picture.mjs.map +1 -1
  41. package/es/packages/components/picture/src/picture2.mjs +19 -26
  42. package/es/packages/components/picture/src/picture2.mjs.map +1 -1
  43. package/es/packages/components/qrcode/index.mjs.map +1 -1
  44. package/es/packages/components/qrcode/src/qrcode.mjs.map +1 -1
  45. package/es/packages/components/qrcode/src/qrcode2.mjs.map +1 -1
  46. package/es/packages/components/search/index.mjs +2 -2
  47. package/es/packages/components/search/src/search.mjs +25 -423
  48. package/es/packages/components/search/src/search.mjs.map +1 -1
  49. package/es/packages/components/search/src/search2.mjs +423 -25
  50. package/es/packages/components/search/src/search2.mjs.map +1 -1
  51. package/es/packages/components/table/index.mjs.map +1 -1
  52. package/es/packages/components/table/src/table.mjs.map +1 -1
  53. package/es/packages/components/table/src/table2.mjs.map +1 -1
  54. package/es/packages/hooks/use-size/index.mjs.map +1 -1
  55. package/es/packages/utils/browser.mjs.map +1 -1
  56. package/es/version.d.ts +1 -1
  57. package/es/version.mjs +1 -1
  58. package/es/version.mjs.map +1 -1
  59. package/global.d.ts +17 -17
  60. package/lib/component.js.map +1 -1
  61. package/lib/index.js +3 -3
  62. package/lib/make-installer.js.map +1 -1
  63. package/lib/packages/components/barcode/index.js.map +1 -1
  64. package/lib/packages/components/barcode/src/barcode.js.map +1 -1
  65. package/lib/packages/components/barcode/src/barcode2.js.map +1 -1
  66. package/lib/packages/components/config-provider/src/config-provider-props.js.map +1 -1
  67. package/lib/packages/components/config-provider/src/hooks/use-global-config.js.map +1 -1
  68. package/lib/packages/components/crud/index.js +2 -2
  69. package/lib/packages/components/crud/index.js.map +1 -1
  70. package/lib/packages/components/crud/src/crud.js +54 -599
  71. package/lib/packages/components/crud/src/crud.js.map +1 -1
  72. package/lib/packages/components/crud/src/crud2.js +598 -54
  73. package/lib/packages/components/crud/src/crud2.js.map +1 -1
  74. package/lib/packages/components/dialog/index.js.map +1 -1
  75. package/lib/packages/components/form/src/form.js.map +1 -1
  76. package/lib/packages/components/form/src/form2.js.map +1 -1
  77. package/lib/packages/components/index.js +3 -3
  78. package/lib/packages/components/pagination/index.js.map +1 -1
  79. package/lib/packages/components/pagination/src/pagination.js.map +1 -1
  80. package/lib/packages/components/pagination/src/pagination2.js.map +1 -1
  81. package/lib/packages/components/picture/index.js +2 -2
  82. package/lib/packages/components/picture/index.js.map +1 -1
  83. package/lib/packages/components/picture/src/picture.js +26 -20
  84. package/lib/packages/components/picture/src/picture.js.map +1 -1
  85. package/lib/packages/components/picture/src/picture2.js +20 -26
  86. package/lib/packages/components/picture/src/picture2.js.map +1 -1
  87. package/lib/packages/components/qrcode/index.js.map +1 -1
  88. package/lib/packages/components/qrcode/src/qrcode.js.map +1 -1
  89. package/lib/packages/components/qrcode/src/qrcode2.js.map +1 -1
  90. package/lib/packages/components/search/index.js +2 -2
  91. package/lib/packages/components/search/src/search.js +26 -423
  92. package/lib/packages/components/search/src/search.js.map +1 -1
  93. package/lib/packages/components/search/src/search2.js +423 -26
  94. package/lib/packages/components/search/src/search2.js.map +1 -1
  95. package/lib/packages/components/table/index.js.map +1 -1
  96. package/lib/packages/components/table/src/table.js.map +1 -1
  97. package/lib/packages/components/table/src/table2.js.map +1 -1
  98. package/lib/packages/hooks/use-size/index.js.map +1 -1
  99. package/lib/packages/utils/browser.js.map +1 -1
  100. package/lib/version.d.ts +1 -1
  101. package/lib/version.js +1 -1
  102. package/lib/version.js.map +1 -1
  103. package/package.json +103 -103
  104. package/theme-chalk/src/index.scss +8 -8
  105. package/theme-chalk/src/qrcode.scss +8 -8
  106. package/web-types.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"crud2.js","sources":["../../../../../../../packages/components/crud/src/crud.ts"],"sourcesContent":["import {\r\n buildProps,\r\n definePropType,\r\n isArray,\r\n isFunction,\r\n isNumber,\r\n isObject,\r\n isString,\r\n} from '@m-eleplus-crud/utils'\r\nimport { useSizeProp } from '@m-eleplus-crud/hooks'\r\nimport { ColumnType, ICommonColumn } from '../../common'\r\nimport type { ExtractPropTypes } from 'vue'\r\nimport type { FormItemRule } from 'element-plus'\r\nimport type { ITableCommonColumn, ITableCommonOption } from '../../table'\r\nimport type { ISearchCommonColumn, ISearchCommonOption } from '../../search'\r\nimport type { IFormCommonColumn, IFormCommonOption } from '../../form'\r\n\r\n// crud不需要继承form的column属性\r\ntype WithoutFormColumn = Omit<\r\n IFormCommonColumn,\r\n 'order' | 'value' | 'placeholder' | 'rules' | 'span' | 'labelWidth'\r\n>\r\n// crud不需要继承search的column属性\r\ntype WithoutSearchColumn = Omit<\r\n ISearchCommonColumn,\r\n 'order' | 'value' | 'placeholder' | 'rules' | 'span' | 'labelWidth'\r\n>\r\n\r\nexport interface ICrudCommonColumn\r\n extends ICommonColumn,\r\n ITableCommonColumn,\r\n // IFormCommonColumn,\r\n // ISearchCommonColumn,\r\n WithoutFormColumn,\r\n WithoutSearchColumn {\r\n /**\r\n * @description 搜索排序\r\n */\r\n searchOrder?: number\r\n /**\r\n * @description 表单排序\r\n */\r\n formOrder?: number\r\n /**\r\n * @description 是否开启搜索\r\n */\r\n search?: boolean\r\n /**\r\n * @description 搜索默认值\r\n */\r\n searchValue?: any\r\n /**\r\n * @description 表单默认值\r\n */\r\n formValue?: any\r\n /**\r\n * @description 搜索占位文本\r\n */\r\n searchPlaceholder?: string\r\n /**\r\n * @description 表单占位文本\r\n */\r\n formPlaceholder?: string\r\n /**\r\n * @description 搜索标签宽度\r\n */\r\n searchLabelWidth?: string\r\n /**\r\n * @description 表单标签宽度\r\n */\r\n formLabelWidth?: string\r\n /**\r\n * @description 搜索校验规则\r\n */\r\n searchRules?: FormItemRule[]\r\n /**\r\n * @description 表单校验规则\r\n */\r\n formRules?: FormItemRule[]\r\n /**\r\n * @description 列表是否显示\r\n */\r\n hide?: boolean\r\n /**\r\n * @description 新增对话框是否显示\r\n */\r\n addHide?: boolean\r\n /**\r\n * @description 查看对话框是否显示\r\n */\r\n viewHide?: boolean\r\n /**\r\n * @description 编辑对话框是否显示\r\n */\r\n editHide?: boolean\r\n /**\r\n * @description 搜索项框栅列\r\n */\r\n searchSpan?: number\r\n /**\r\n * @description 新增项框栅列\r\n */\r\n addSpan?: number\r\n /**\r\n * @description 编辑项框栅列\r\n */\r\n editSpan?: number\r\n /**\r\n * @description 查看项框栅列\r\n */\r\n viewSpan?: number\r\n /**\r\n * @description 表单项框栅列\r\n */\r\n formSpan?: number\r\n}\r\n\r\nexport interface ICrudColumn extends ICrudCommonColumn {\r\n type?: ColumnType | 'index' | 'single' | 'selection'\r\n}\r\n\r\n/**\r\n * @description crud配置\r\n */\r\nexport interface ICrudOption\r\n extends ITableCommonOption,\r\n IFormCommonOption,\r\n ISearchCommonOption {\r\n /**\r\n * @description 新增按钮是否需要\r\n */\r\n addBtn?: boolean\r\n /**\r\n * @description 编辑按钮是否需要\r\n */\r\n editBtn?: boolean\r\n /**\r\n * @description 删除按钮是否需要\r\n */\r\n delBtn?: boolean\r\n /**\r\n * @description 新增按钮文字\r\n */\r\n addBtnText?: string\r\n /**\r\n * @description 新增按钮图标\r\n */\r\n addBtnIcon?: string\r\n /**\r\n * @description 搜索label宽度\r\n */\r\n searchLabelWidth?: string\r\n /**\r\n * @description 表单label宽度\r\n */\r\n formLabelWidth?: string\r\n /**\r\n * @description 新增弹窗标题\r\n */\r\n addDialogTitle?: string\r\n /**\r\n * @description 编辑弹窗标题\r\n */\r\n editDialogTitle?: string\r\n /**\r\n * @description 查看弹窗标题\r\n */\r\n viewDialogTitle?: string\r\n /**\r\n * @description 弹窗宽度\r\n */\r\n dialogWidth?: string\r\n /**\r\n * @description 表格高度\r\n */\r\n height?: string\r\n /**\r\n * @description 表格最大高度\r\n */\r\n maxHeight?: string\r\n /**\r\n * @description 表格高度调节(px)\r\n */\r\n calcHeight?: number\r\n /**\r\n * @description crud列配置\r\n */\r\n column: ICrudColumn[]\r\n}\r\n\r\nexport const crudProps = buildProps({\r\n /**\r\n * @description 组件尺寸大小\r\n */\r\n size: useSizeProp,\r\n /**\r\n * @description 加载状态\r\n */\r\n loading: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n /**\r\n * @description 表格数据\r\n */\r\n data: {\r\n type: Array,\r\n required: true,\r\n },\r\n /**\r\n * @description 搜索参数\r\n */\r\n search: {\r\n type: Object,\r\n default: () => ({}),\r\n },\r\n /**\r\n * @description 数据总数\r\n */\r\n total: {\r\n type: Number,\r\n default: 0,\r\n },\r\n /**\r\n * @description 表单绑定的值\r\n */\r\n modelValue: {\r\n type: Object,\r\n required: true,\r\n },\r\n /**\r\n * @description 权限配置\r\n */\r\n permission: {\r\n type: Object,\r\n default: () => ({\r\n // 新增按钮权限\r\n addBtn: true,\r\n // 编辑按钮权限\r\n editBtn: true,\r\n // 删除按钮权限\r\n delBtn: true,\r\n }),\r\n },\r\n /**\r\n * @description 选择的数据\r\n */\r\n select: {\r\n type: Array,\r\n default: () => [],\r\n },\r\n /**\r\n * @description 表单提交前\r\n */\r\n beforeEnter: {\r\n type: Function,\r\n },\r\n /**\r\n * @description crud配置项\r\n */\r\n option: {\r\n type: definePropType<ICrudOption>(Object),\r\n required: false,\r\n },\r\n} as const)\r\nexport type CrudProps = ExtractPropTypes<typeof crudProps>\r\n\r\nexport const crudEmits = {\r\n /**\r\n * @description 更新选择数据\r\n * @param arr 选择的数据\r\n * @returns\r\n */\r\n 'update:select': (arr: any[]) => isArray(arr),\r\n /**\r\n * @description 更新表单数据\r\n * @param value 表单数据\r\n * @returns\r\n */\r\n 'update:modelValue': (value: any) => isObject(value),\r\n /**\r\n * 查询事件触发\r\n * @param form 查询表单数据\r\n * @returns\r\n */\r\n search: (form: any) => isObject(form),\r\n /**\r\n * 重置事件触发\r\n * @returns\r\n */\r\n reset: () => true,\r\n /**\r\n * 新增\r\n * @param form 表单数据\r\n * @param done 完成\r\n * @param loading 加载\r\n * @returns\r\n */\r\n rowSave: (form: any, done: () => void, loading: () => void) =>\r\n isObject(form) && isFunction(done) && isFunction(loading),\r\n /**\r\n * 编辑\r\n * @param form 表单数据\r\n * @param done 完成\r\n * @param loading 加载\r\n * @returns\r\n */\r\n rowEdit: (form: any, done: () => void, loading: () => void) =>\r\n isObject(form) && isFunction(done) && isFunction(loading),\r\n\r\n /**\r\n * 取消\r\n * @param form 表单数据\r\n * @param index 索引\r\n * @param type 类型\r\n * @returns\r\n */\r\n rowCancel: (form: any, index: number, type: 'add' | 'edit' | 'view') =>\r\n isObject(form) && isNumber(index) && isString(type),\r\n\r\n /**\r\n * 删除\r\n * @param row 行数据\r\n * @param index 索引\r\n * @returns\r\n */\r\n rowDel: (row: any, index: number) => isObject(row) && isNumber(index),\r\n}\r\nexport type CrudEmits = typeof crudEmits\r\n"],"names":["buildProps","useSizeProp","definePropType","isArray","isObject","isFunction","isNumber","isString"],"mappings":";;;;;;;;;AA8LO,MAAM,YAAYA,kBAAW,CAAA;AAAA,EAIlC,IAAM,EAAAC,iBAAA;AAAA,EAIN,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EAIA,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,KAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EAIA,MAAQ,EAAA;AAAA,IACN,IAAM,EAAA,MAAA;AAAA,IACN,OAAA,EAAS,OAAO,EAAC,CAAA;AAAA,GACnB;AAAA,EAIA,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,CAAA;AAAA,GACX;AAAA,EAIA,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EAIA,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,SAAS,OAAO;AAAA,MAEd,MAAQ,EAAA,IAAA;AAAA,MAER,OAAS,EAAA,IAAA;AAAA,MAET,MAAQ,EAAA,IAAA;AAAA,KACV,CAAA;AAAA,GACF;AAAA,EAIA,MAAQ,EAAA;AAAA,IACN,IAAM,EAAA,KAAA;AAAA,IACN,OAAA,EAAS,MAAM,EAAC;AAAA,GAClB;AAAA,EAIA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,QAAA;AAAA,GACR;AAAA,EAIA,MAAQ,EAAA;AAAA,IACN,IAAA,EAAMC,uBAA4B,MAAM,CAAA;AAAA,IACxC,QAAU,EAAA,KAAA;AAAA,GACZ;AACF,CAAU,EAAA;AAGH,MAAM,SAAY,GAAA;AAAA,EAMvB,eAAiB,EAAA,CAAC,GAAe,KAAAC,cAAA,CAAQ,GAAG,CAAA;AAAA,EAM5C,mBAAqB,EAAA,CAAC,KAAe,KAAAC,eAAA,CAAS,KAAK,CAAA;AAAA,EAMnD,MAAQ,EAAA,CAAC,IAAc,KAAAA,eAAA,CAAS,IAAI,CAAA;AAAA,EAKpC,OAAO,MAAM,IAAA;AAAA,EAQb,OAAS,EAAA,CAAC,IAAW,EAAA,IAAA,EAAkB,OACrC,KAAAA,eAAA,CAAS,IAAI,CAAA,IAAKC,iBAAW,CAAA,IAAI,CAAK,IAAAA,iBAAA,CAAW,OAAO,CAAA;AAAA,EAQ1D,OAAS,EAAA,CAAC,IAAW,EAAA,IAAA,EAAkB,OACrC,KAAAD,eAAA,CAAS,IAAI,CAAA,IAAKC,iBAAW,CAAA,IAAI,CAAK,IAAAA,iBAAA,CAAW,OAAO,CAAA;AAAA,EAS1D,SAAW,EAAA,CAAC,IAAW,EAAA,KAAA,EAAe,IACpC,KAAAD,eAAA,CAAS,IAAI,CAAA,IAAKE,cAAS,CAAA,KAAK,CAAK,IAAAC,eAAA,CAAS,IAAI,CAAA;AAAA,EAQpD,MAAA,EAAQ,CAAC,GAAU,EAAA,KAAA,KAAkBH,gBAAS,GAAG,CAAA,IAAKE,eAAS,KAAK,CAAA;AACtE;;;;;"}
1
+ {"version":3,"file":"crud2.js","sources":["../../../../../../../packages/components/crud/src/crud.vue"],"sourcesContent":["<script lang=\"ts\" setup>\r\nimport { computed, nextTick, onMounted, ref, useSlots, watch } from 'vue'\r\nimport { ElMessageBox } from 'element-plus'\r\nimport { cloneDeep, get, set } from 'lodash-unified'\r\nimport { useGlobalConfig } from '@m-eleplus-crud/components'\r\nimport { useLocale } from '@m-eleplus-crud/hooks'\r\nimport { crudEmits, crudProps } from './crud'\r\nimport type { ISearchColumn, ISearchOption, SearchInstance } from '../../search'\r\nimport type { ITableColumn, ITableOption, TableInstance } from '../../table'\r\nimport type { ICrudColumn, ICrudOption } from './crud'\r\nimport type { FormInstance, IFormColumn, IFormOption } from '../../form'\r\n\r\nconst COMPONENT_NAME = 'MCrud'\r\ndefineOptions({\r\n name: COMPONENT_NAME,\r\n})\r\n\r\nconst props = defineProps(crudProps)\r\nconst emit = defineEmits(crudEmits)\r\n\r\n// 插槽信息\r\nconst slots = useSlots() as any\r\n\r\n// 全局配置\r\nconst globalConfig = useGlobalConfig()\r\n\r\n// 国际化配置\r\nconst { t } = useLocale()\r\n\r\n// 搜索插槽\r\nconst searchSlots = computed(() => {\r\n const keys = Object.keys(slots)\r\n const result: any = {}\r\n for (const key of keys) {\r\n if (key.endsWith('Search')) {\r\n result[key.replace('Search', '')] = slots[key]\r\n }\r\n }\r\n return result\r\n})\r\n\r\n// 表单插槽\r\nconst formSlots = computed(() => {\r\n const keys = Object.keys(slots)\r\n const result: any = {}\r\n for (const key of keys) {\r\n if (key.endsWith('Form')) {\r\n result[key.replace('Form', '')] = slots[key]\r\n }\r\n }\r\n return result\r\n})\r\n\r\n// 列表插槽\r\nconst tableSlots = computed(() => {\r\n const whites = ['topLeft', 'topRight', 'addBtn']\r\n const keys = Object.keys(slots)\r\n const result: any = {}\r\n for (const key of keys) {\r\n if (\r\n !whites.includes(key) &&\r\n !key.endsWith('Search') &&\r\n !key.endsWith('Form')\r\n ) {\r\n result[key] = slots[key]\r\n }\r\n }\r\n return result\r\n})\r\n\r\n/**\r\n * @description crud配置项\r\n */\r\nconst crudOption = ref<ICrudOption>({\r\n // 默认显示添加按钮\r\n addBtn: true,\r\n // 默认显示编辑按钮\r\n editBtn: true,\r\n // 默认显示删除按钮\r\n delBtn: true,\r\n // 添加按钮文字\r\n addBtnText: t('m.crud.addBtnText'),\r\n // 添加按钮图标\r\n addBtnIcon: 'Plus',\r\n // 添加对话框标题\r\n addDialogTitle: t('m.crud.addDialogTitle'),\r\n // 编辑对话框标题\r\n editDialogTitle: t('m.crud.editDialogTitle'),\r\n // 查看对话框标题\r\n viewDialogTitle: t('m.crud.viewDialogTitle'),\r\n // 对话框宽度\r\n dialogWidth: '800px',\r\n\r\n column: [],\r\n})\r\n\r\n/**\r\n * @description 对话框类型\r\n */\r\nconst dialogType = ref<'add' | 'edit' | 'view'>('add')\r\n\r\n/**\r\n * @description 搜索ref\r\n */\r\nconst searchRef = ref<SearchInstance>()\r\n\r\n/**\r\n * @description 表单ref\r\n */\r\nconst formRef = ref<FormInstance>()\r\n\r\n/**\r\n * @description 表格ref\r\n */\r\nconst tableRef = ref<TableInstance>()\r\n\r\n/**\r\n * @description 对话框显示状态\r\n */\r\nconst dialogVisible = ref(false)\r\n\r\n/**\r\n * @description 表格高度\r\n */\r\nconst tableHeight = ref<any>(undefined)\r\n\r\n// 备份modelForm\r\nconst _modelForm = ref<any>()\r\n\r\n// 备份列表index\r\nconst _rowIndex = ref(-1)\r\n\r\n/**\r\n * @description 对话框标题\r\n */\r\nconst dialogTitle = computed(() => {\r\n if (dialogType.value === 'add') {\r\n return crudOption.value.addDialogTitle\r\n }\r\n if (dialogType.value === 'edit') {\r\n return crudOption.value.editDialogTitle\r\n }\r\n return crudOption.value.viewDialogTitle\r\n})\r\n\r\n/**\r\n * @description 表单数据\r\n */\r\nconst modelForm = computed({\r\n get() {\r\n return props.modelValue\r\n },\r\n set(value: any) {\r\n emit('update:modelValue', value)\r\n },\r\n})\r\n\r\n// 备份第一次的modelForm\r\nconst __firstModelForm = ref<any>({})\r\n__firstModelForm.value = props.modelValue\r\n\r\n/**\r\n * @description table配置项\r\n */\r\nconst tableOption = ref<ITableOption>({\r\n // 默认显示操作栏\r\n menu: true,\r\n\r\n column: [],\r\n})\r\n\r\n/**\r\n * @description search配置项\r\n */\r\nconst searchOption = ref<ISearchOption>({\r\n column: [],\r\n})\r\n\r\n/**\r\n * @description form配置项\r\n */\r\nconst formOption = computed<IFormOption>(() => {\r\n let option: IFormOption = {\r\n column: [],\r\n }\r\n option = transFormOption(\r\n Object.assign({}, option, copyObjectExcept(crudOption.value, ['column']))\r\n )\r\n for (let i = 0; i < crudOption.value.column.length; i++) {\r\n const item = cloneDeep(crudOption.value.column[i])\r\n const formColumn: IFormColumn = transFormColumn(item)\r\n\r\n if (['index', 'single', 'selection'].includes(item.type || '')) {\r\n continue\r\n }\r\n\r\n if (dialogType.value === 'add') {\r\n // 新增模式\r\n if (!item.addHide) {\r\n option.column.push(formColumn)\r\n }\r\n } else if (dialogType.value === 'edit') {\r\n // 编辑模式\r\n if (!item.editHide) {\r\n option.column.push(formColumn)\r\n }\r\n } else {\r\n // 查看模式\r\n if (!item.viewHide) {\r\n option.column.push(formColumn)\r\n }\r\n }\r\n }\r\n\r\n return option\r\n})\r\n\r\n/**\r\n * @description 搜索代理\r\n */\r\nconst searchProxys = new Proxy(props.search, {\r\n get(target, key) {\r\n return get(target, key)\r\n },\r\n set(target, key, value) {\r\n set(target, key, value)\r\n return true\r\n },\r\n})\r\n\r\n/**\r\n * @description 选择的数据\r\n */\r\nconst selectData = computed({\r\n get() {\r\n return props.select\r\n },\r\n set(value: any) {\r\n emit('update:select', value)\r\n },\r\n})\r\n\r\n/**\r\n * 转换search列\r\n * @param option 列配置\r\n */\r\nconst transSearchColumn = (column: ICrudColumn): ISearchColumn => {\r\n const result: ISearchColumn = cloneDeep(column) as ISearchColumn\r\n // 转换排序\r\n if (column.searchOrder) {\r\n result.order = column.searchOrder\r\n } else {\r\n delete result.order\r\n }\r\n // 转换默认值\r\n if (column.searchValue) {\r\n result.value = column.searchValue\r\n } else {\r\n delete result.value\r\n }\r\n // 转换占位符\r\n if (column.searchPlaceholder) {\r\n result.placeholder = column.searchPlaceholder\r\n } else {\r\n delete result.placeholder\r\n }\r\n // 转换表单校验规则\r\n if (column.searchRules) {\r\n result.rules = column.searchRules\r\n } else {\r\n delete result.rules\r\n }\r\n // 转换栅格\r\n if (column.searchSpan) {\r\n result.span = column.searchSpan\r\n } else {\r\n delete result.span\r\n }\r\n // 转换labelWidth\r\n if (column.searchLabelWidth) {\r\n result.labelWidth = column.searchLabelWidth\r\n } else {\r\n delete result.labelWidth\r\n }\r\n\r\n return result\r\n}\r\n\r\n/**\r\n * 转换form列\r\n * @param column 列配置\r\n * @param type 类型\r\n */\r\nconst transFormColumn = (column: ICrudColumn): IFormColumn => {\r\n const result: IFormColumn = cloneDeep(column) as IFormColumn\r\n // 转换排序\r\n if (column.formOrder) {\r\n result.order = column.formOrder\r\n } else {\r\n delete result.order\r\n }\r\n // 转换默认值\r\n if (column.formValue) {\r\n result.value = column.formValue\r\n } else {\r\n delete result.value\r\n }\r\n // 转换占位符\r\n if (column.formPlaceholder) {\r\n result.placeholder = column.formPlaceholder\r\n } else {\r\n delete result.placeholder\r\n }\r\n // 转换表单校验规则\r\n if (column.formRules) {\r\n result.rules = column.formRules\r\n } else {\r\n delete result.rules\r\n }\r\n // 转换labelWidth\r\n if (column.formLabelWidth) {\r\n result.labelWidth = column.formLabelWidth\r\n } else {\r\n delete result.labelWidth\r\n }\r\n // 转换栅格\r\n if (column.formSpan || column.addSpan || column.editSpan || column.viewSpan) {\r\n if (column.formSpan) {\r\n result.span = column.formSpan\r\n }\r\n if (dialogType.value === 'add' && column.addSpan) {\r\n result.span = column.addSpan\r\n } else if (dialogType.value === 'edit' && column.editSpan) {\r\n result.span = column.editSpan\r\n } else if (dialogType.value === 'view' && column.viewSpan) {\r\n result.span = column.viewSpan\r\n }\r\n } else {\r\n delete result.span\r\n }\r\n\r\n return result\r\n}\r\n\r\n/**\r\n * 转换search option\r\n * @param option crud option\r\n */\r\nconst transSearchOption = (option: ICrudOption): ISearchOption => {\r\n const result: ISearchOption = cloneDeep(option) as ISearchOption\r\n // 转换labelWidth\r\n if (option.searchLabelWidth) {\r\n result.labelWidth = option.searchLabelWidth\r\n } else {\r\n delete result.labelWidth\r\n }\r\n\r\n return result\r\n}\r\n\r\n/**\r\n * 转换form option\r\n * @param option crud option\r\n */\r\nconst transFormOption = (option: ICrudOption): IFormOption => {\r\n const result: IFormOption = cloneDeep(option) as IFormOption\r\n // 转换labelWidth\r\n if (option.formLabelWidth) {\r\n result.labelWidth = option.formLabelWidth\r\n } else {\r\n delete result.labelWidth\r\n }\r\n\r\n return result\r\n}\r\n\r\n/**\r\n * @description 当前页发生改变\r\n */\r\nconst currentPageChange = (page: number) => {\r\n searchRef.value?.search(page)\r\n}\r\n\r\n/**\r\n * @description 页大小发生变化\r\n */\r\nconst pageSizeChange = (pageSize: number) => {\r\n searchProxys.limit = pageSize\r\n searchRef.value?.search()\r\n}\r\n\r\n/**\r\n * @description 搜索事件\r\n * @param form 搜索表单值\r\n * @param done 完成回调\r\n */\r\nconst handleSearch = (form: any) => {\r\n tableRef.value?.clearSelection()\r\n emit('search', form)\r\n}\r\n\r\n/**\r\n * @description 重置搜索\r\n */\r\nconst handleReset = () => {\r\n tableRef.value?.clearSelection()\r\n emit('reset')\r\n}\r\n\r\n/**\r\n * @description 获取表格高度\r\n */\r\nconst setTableHeight = () => {\r\n nextTick(() => {\r\n // 自动高度\r\n if (crudOption.value.height === 'auto') {\r\n // 表格style对象\r\n const tableStyle = tableRef.value?.$el\r\n // 分页对象\r\n // const pageStyle: any = document.querySelector('.m-pagination-box')\r\n // 额外可控制高度参数\r\n const calcHeight: number =\r\n crudOption.value.calcHeight || globalConfig.value?.calcHeight || 0\r\n tableHeight.value =\r\n document.documentElement.clientHeight -\r\n (tableStyle?.offsetTop || 0) -\r\n 72 -\r\n calcHeight\r\n } else {\r\n tableHeight.value = crudOption.value.height\r\n }\r\n })\r\n}\r\n\r\n/**\r\n * 打开新增对话框\r\n */\r\nconst rowAdd = () => {\r\n dialogType.value = 'add'\r\n dialogVisible.value = true\r\n}\r\n\r\n/**\r\n * @description 打开编辑修改\r\n */\r\nconst rowEdit = (row: any, index: number) => {\r\n // 备份数据\r\n _modelForm.value = cloneDeep(row)\r\n _rowIndex.value = index\r\n\r\n // 弹窗类型\r\n dialogType.value = 'edit'\r\n modelForm.value = cloneDeep(row)\r\n // 弹窗状态\r\n dialogVisible.value = true\r\n}\r\n\r\n/**\r\n * @description 打开详情\r\n */\r\nconst rowView = (row: any, index: number) => {\r\n // 备份数据\r\n _modelForm.value = cloneDeep(row)\r\n _rowIndex.value = index\r\n\r\n // 弹窗类型\r\n dialogType.value = 'view'\r\n modelForm.value = cloneDeep(row)\r\n // 弹窗状态\r\n dialogVisible.value = true\r\n}\r\n\r\n/**\r\n * @description 打开删除\r\n */\r\nconst rowDel = (row: any, index: number) => {\r\n ElMessageBox.confirm('此操作将删除该数据, 是否继续?', '提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning',\r\n })\r\n .then(() => {\r\n emit('rowDel', row, index)\r\n })\r\n .catch(() => {})\r\n}\r\n\r\n/**\r\n * 对话框确认事件\r\n * @param done 完成\r\n * @param loading 结束加载\r\n */\r\nconst dialogEnter = async (done: () => void, loading: () => void) => {\r\n const valid = await formRef.value!.validForm()\r\n // 校验不通过\r\n if (!valid) {\r\n loading()\r\n return\r\n }\r\n\r\n // 表单前校验\r\n if (props.beforeEnter && !(await props.beforeEnter())) {\r\n loading()\r\n return\r\n }\r\n\r\n if (dialogType.value === 'add') {\r\n // 新增\r\n emit('rowSave', modelForm.value, done, loading)\r\n } else if (dialogType.value === 'edit') {\r\n // 修改\r\n emit('rowEdit', modelForm.value, done, loading)\r\n }\r\n}\r\n\r\nconst dialogCancel = () => {\r\n emit('rowCancel', _modelForm.value || {}, _rowIndex.value, dialogType.value)\r\n}\r\n\r\n/**\r\n * @description 弹窗关闭\r\n */\r\nconst dialogClose = () => {\r\n // 清空备份\r\n _modelForm.value = null\r\n _rowIndex.value = -1\r\n\r\n if (formRef.value) {\r\n formRef.value.clear()\r\n modelForm.value = cloneDeep(__firstModelForm.value)\r\n } else {\r\n emit('update:modelValue', cloneDeep(__firstModelForm.value))\r\n }\r\n}\r\n\r\n/**\r\n * 复制对象到新对象,排除指定key\r\n * @param sourceObj 源对象\r\n * @param excludeKeys 排除的key\r\n */\r\nconst copyObjectExcept = (sourceObj: any, excludeKeys: string[] = []) => {\r\n const result: any = {}\r\n Object.keys(sourceObj).forEach((key) => {\r\n if (!excludeKeys.includes(key)) {\r\n result[key] = sourceObj[key]\r\n }\r\n })\r\n return result\r\n}\r\n\r\nwatch(\r\n () => props.option as ICrudOption,\r\n (newVal: ICrudOption) => {\r\n if (newVal) {\r\n // crud配置项\r\n crudOption.value = Object.assign({}, crudOption.value, newVal)\r\n // table配置项\r\n tableOption.value = Object.assign(\r\n {},\r\n tableOption.value,\r\n copyObjectExcept(crudOption.value, ['column'])\r\n )\r\n // search配置项\r\n searchOption.value = transSearchOption(\r\n Object.assign(\r\n {},\r\n searchOption.value,\r\n copyObjectExcept(crudOption.value, ['column'])\r\n )\r\n )\r\n\r\n const searchColumns: ISearchColumn[] = []\r\n const tableColumns: ITableColumn[] = []\r\n if (newVal.column && newVal.column.length) {\r\n for (let i = 0; i < newVal.column.length; i++) {\r\n const item = newVal.column[i]\r\n // 处理搜索列\r\n if (\r\n item.search &&\r\n !['index', 'single', 'selection'].includes(item.type || '')\r\n ) {\r\n searchColumns.push(transSearchColumn(item))\r\n }\r\n // 列表\r\n if (!item.hide) {\r\n tableColumns.push(item)\r\n }\r\n }\r\n searchOption.value.column = searchColumns\r\n tableOption.value.column = tableColumns\r\n }\r\n }\r\n },\r\n {\r\n immediate: true,\r\n deep: true,\r\n }\r\n)\r\n\r\nonMounted(() => {\r\n // 设置表格高度\r\n if (crudOption.value.height) {\r\n setTableHeight()\r\n }\r\n})\r\n\r\ndefineExpose({\r\n /**\r\n * @description 新增\r\n */\r\n rowAdd,\r\n /**\r\n * @description 编辑\r\n */\r\n rowEdit,\r\n /**\r\n * @description 查看\r\n */\r\n rowView,\r\n /**\r\n * @description 删除\r\n */\r\n rowDel,\r\n})\r\n</script>\r\n\r\n<template>\r\n <div class=\"m-crud\">\r\n <MSearch\r\n ref=\"searchRef\"\r\n :model=\"searchProxys\"\r\n :option=\"searchOption\"\r\n :size=\"size || globalConfig.size\"\r\n :permission=\"permission\"\r\n @search=\"handleSearch\"\r\n @reset=\"handleReset\"\r\n >\r\n <!-- 搜索插槽 -->\r\n <template\r\n v-for=\"(slotKey, index) in Object.keys(searchSlots)\"\r\n :key=\"index\"\r\n #[slotKey]=\"scope\"\r\n >\r\n <slot :name=\"slotKey + 'Search'\" v-bind=\"scope\" />\r\n </template>\r\n <!---->\r\n </MSearch>\r\n <!--顶部操作区域-->\r\n <div v-if=\"crudOption.addBtn || slots.topLeft\" class=\"m-search-top\">\r\n <div class=\"m-search-left\">\r\n <el-button\r\n v-if=\"crudOption.addBtn && !slots.addBtn\"\r\n :size=\"size || globalConfig.size\"\r\n type=\"primary\"\r\n :icon=\"crudOption.addBtnIcon\"\r\n @click=\"rowAdd()\"\r\n >\r\n {{ crudOption.addBtnText }}\r\n </el-button>\r\n <slot name=\"addBtn\" v-bind=\"{ size: size || globalConfig.size }\" />\r\n <slot name=\"topLeft\" v-bind=\"{ size: size || globalConfig.size }\" />\r\n </div>\r\n <div class=\"m-search-right\">\r\n <slot name=\"topRight\" v-bind=\"{ size: size || globalConfig.size }\" />\r\n </div>\r\n </div>\r\n <!---->\r\n <!--表格-->\r\n <MTable\r\n ref=\"tableRef\"\r\n v-model:select=\"selectData\"\r\n :data=\"data\"\r\n :size=\"size || globalConfig.size\"\r\n :loading=\"loading\"\r\n :permission=\"permission\"\r\n :option=\"tableOption\"\r\n :height=\"tableHeight\"\r\n :max-height=\"tableHeight\"\r\n >\r\n <!-- 列表插槽 -->\r\n <template\r\n v-for=\"(slotKey, index) in Object.keys(tableSlots)\"\r\n :key=\"index\"\r\n #[slotKey]=\"scope\"\r\n >\r\n <slot :name=\"slotKey\" v-bind=\"scope\" />\r\n </template>\r\n <!---->\r\n <!--操作栏-->\r\n <template #menu=\"scope\">\r\n <el-link\r\n v-if=\"crudOption.editBtn && !slots.editBtn\"\r\n class=\"m-control-btns\"\r\n type=\"primary\"\r\n :size=\"size || globalConfig.size\"\r\n underline=\"never\"\r\n icon=\"Edit\"\r\n @click=\"rowEdit(scope.row, scope.$index)\"\r\n >\r\n {{ t('m.crud.editBtnText') }}\r\n </el-link>\r\n <slot\r\n v-if=\"crudOption.editBtn && slots.editBtn\"\r\n name=\"editBtn\"\r\n v-bind=\"scope\"\r\n />\r\n <el-link\r\n v-if=\"crudOption.delBtn && !slots.delBtn\"\r\n class=\"m-control-btns\"\r\n type=\"primary\"\r\n underline=\"never\"\r\n :size=\"size || globalConfig.size\"\r\n icon=\"Delete\"\r\n @click=\"rowDel(scope.row, scope.$index)\"\r\n >\r\n {{ t('m.crud.delBtnText') }}\r\n </el-link>\r\n <slot\r\n v-if=\"crudOption.delBtn && slots.delBtn\"\r\n name=\"delBtn\"\r\n v-bind=\"scope\"\r\n />\r\n <slot\r\n v-if=\"\r\n crudOption.menu && slots.menu && !(slots.editBtn || slots.delBtn)\r\n \"\r\n name=\"menu\"\r\n v-bind=\"scope\"\r\n />\r\n </template>\r\n <!---->\r\n </MTable>\r\n <!---->\r\n <!--分页区域-->\r\n <div v-if=\"searchProxys.page && total\" class=\"m-pagination-box\">\r\n <m-pagination\r\n :small=\"(size || globalConfig.size) === 'small'\"\r\n :total=\"total\"\r\n :current-page=\"searchProxys.page\"\r\n :page-size=\"searchProxys.limit\"\r\n :disabled=\"loading\"\r\n @current-page=\"currentPageChange\"\r\n @page-size=\"pageSizeChange\"\r\n />\r\n </div>\r\n <!--新增/编辑/查看对话框-->\r\n <MDialog\r\n v-model=\"dialogVisible\"\r\n :size=\"size || globalConfig.size\"\r\n :title=\"dialogTitle\"\r\n :width=\"crudOption.dialogWidth\"\r\n :save-btn=\"dialogType !== 'view'\"\r\n :cancel-btn=\"dialogType !== 'view'\"\r\n :save-btn-text=\"t('m.crud.dialogSaveBtnText')\"\r\n :cancel-btn-text=\"t('m.crud.dialogCancelBtnText')\"\r\n :save-btn-icon=\"dialogType === 'add' ? 'CirclePlus' : 'CircleCheck'\"\r\n @enter=\"dialogEnter\"\r\n @cancel=\"dialogCancel\"\r\n @close=\"dialogClose\"\r\n >\r\n <template #default=\"{ loading }\">\r\n <!--所有类型顶部-->\r\n <slot\r\n name=\"allTop\"\r\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\r\n />\r\n <!---->\r\n <!--新增/编辑类型顶部-->\r\n <slot\r\n v-if=\"dialogType !== 'view'\"\r\n name=\"formTop\"\r\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\r\n />\r\n <!---->\r\n <!--新增类型顶部-->\r\n <slot\r\n v-if=\"dialogType === 'add'\"\r\n name=\"addTop\"\r\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\r\n />\r\n <!---->\r\n <!--编辑类型顶部-->\r\n <slot\r\n v-if=\"dialogType === 'edit'\"\r\n name=\"editTop\"\r\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\r\n />\r\n <!---->\r\n <!--查看类型顶部-->\r\n <slot\r\n v-if=\"dialogType === 'view'\"\r\n name=\"viewTop\"\r\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\r\n />\r\n <!---->\r\n <MForm\r\n ref=\"formRef\"\r\n :loading=\"loading\"\r\n :size=\"size || globalConfig.size\"\r\n :option=\"formOption\"\r\n :model=\"modelForm\"\r\n :readonly=\"dialogType === 'view'\"\r\n >\r\n <!-- 表单插槽 -->\r\n <template\r\n v-for=\"(slotKey, index) in Object.keys(formSlots)\"\r\n :key=\"index\"\r\n #[slotKey]=\"scope\"\r\n >\r\n <slot :name=\"slotKey + 'Form'\" v-bind=\"scope\" />\r\n </template>\r\n <!---->\r\n </MForm>\r\n <!--所有类型底部-->\r\n <slot\r\n name=\"allBottom\"\r\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\r\n />\r\n <!---->\r\n <!--新增/编辑类型底部-->\r\n <slot\r\n v-if=\"dialogType !== 'view'\"\r\n name=\"formBottom\"\r\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\r\n />\r\n <!---->\r\n <!--新增类型底部-->\r\n <slot\r\n v-if=\"dialogType === 'add'\"\r\n name=\"addBottom\"\r\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\r\n />\r\n <!---->\r\n <!--编辑类型底部-->\r\n <slot\r\n v-if=\"dialogType === 'edit'\"\r\n name=\"editBottom\"\r\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\r\n />\r\n <!---->\r\n <!--查看类型底部-->\r\n <slot\r\n v-if=\"dialogType === 'view'\"\r\n name=\"viewBottom\"\r\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\r\n />\r\n <!---->\r\n </template>\r\n </MDialog>\r\n <!---->\r\n </div>\r\n</template>\r\n"],"names":["DO_defineComponent","useSlots","useGlobalConfig","useLocale","computed","ref","cloneDeep","get","set","nextTick","ElMessageBox","watch","onMounted"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../packages/components/dialog/index.ts"],"sourcesContent":["import { withInstall } from '@m-eleplus-crud/utils'\nimport Dialog from './src/dialog.vue'\nimport type { SFCWithInstall } from '@m-eleplus-crud/utils'\n\nexport const MDialog: SFCWithInstall<typeof Dialog> = withInstall(Dialog)\nexport default MDialog\n\nexport * from './src/dialog'\nexport type { DialogInstance } from './src/instance'\n"],"names":["withInstall","Dialog"],"mappings":";;;;;;;;AAIa,MAAA,OAAA,GAAyCA,oBAAYC,mBAAM;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../packages/components/dialog/index.ts"],"sourcesContent":["import { withInstall } from '@m-eleplus-crud/utils'\r\nimport Dialog from './src/dialog.vue'\r\nimport type { SFCWithInstall } from '@m-eleplus-crud/utils'\r\n\r\nexport const MDialog: SFCWithInstall<typeof Dialog> = withInstall(Dialog)\r\nexport default MDialog\r\n\r\nexport * from './src/dialog'\r\nexport type { DialogInstance } from './src/instance'\r\n"],"names":["withInstall","Dialog"],"mappings":";;;;;;;;AAIa,MAAA,OAAA,GAAyCA,oBAAYC,mBAAM;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"form.js","sources":["../../../../../../../packages/components/form/src/form.ts"],"sourcesContent":["import { useSizeProp } from '@m-eleplus-crud/hooks'\nimport { buildProps, definePropType } from '@m-eleplus-crud/utils'\n\nimport type { ColumnType, ICommonColumn } from '../../common'\nimport type { FormItemRule } from 'element-plus'\n\nimport type { ExtractPropTypes } from 'vue'\n\n// 事件处理\ntype EventHandlers = {\n [K in `event${string}`]?: (...args: any[]) => any\n}\n\n/**\n * @description 公开的form column配置\n */\nexport interface IFormCommonColumn extends EventHandlers {\n /**\n * 表单校验规则\n */\n rules?: FormItemRule[]\n /**\n * @description 单个标签宽度\n */\n labelWidth?: string\n /**\n * @description 表单排序\n */\n order?: number\n /**\n * @description 栅栏宽度\n */\n span?: number\n /**\n * @description 最大长度\n */\n maxlength?: number\n /**\n * @description 是否显示字数统计,仅对type为textarea有效\n */\n showWordLimit?: boolean\n /**\n * @description 是否显示密码切换按钮,仅对type为password有效\n */\n showPassword?: boolean\n /**\n * @description 默认值\n */\n value?: any\n /**\n * @description 占位文本\n */\n placeholder?: string\n}\n\nexport interface IFormColumn extends ICommonColumn, IFormCommonColumn {\n /**\n * @description 组件类型\n */\n type?: ColumnType\n}\n\n/**\n * @description 公开的form配置\n */\nexport interface IFormCommonOption {\n /**\n * @description 标签宽度\n */\n labelWidth?: string\n}\n\nexport interface IFormOption extends IFormCommonOption {\n /**\n * @description 表单列\n */\n column: IFormColumn[]\n}\n\nexport const formProps = buildProps({\n /**\n * @description 组件大小\n */\n size: useSizeProp,\n /**\n * @description 表单绑定的数据\n */\n model: {\n type: Object,\n required: true,\n },\n /**\n * @description 表单加载状态\n */\n loading: {\n type: Boolean,\n default: false,\n },\n /**\n * @description 表单权限配置\n */\n permission: {\n type: Object,\n default: {},\n },\n /**\n * @description 是否只读\n */\n readonly: {\n type: Boolean,\n default: false,\n },\n /**\n * @description 表单配置\n */\n option: {\n type: definePropType<IFormOption>(Object),\n required: false,\n },\n} as const)\nexport type FormProps = ExtractPropTypes<typeof formProps>\n\nexport const formEmits = {}\nexport type FormEmits = typeof formEmits\n"],"names":["buildProps","useSizeProp","definePropType"],"mappings":";;;;;;;AA+EO,MAAM,YAAYA,kBAAW,CAAA;AAAA,EAIlC,IAAM,EAAAC,iBAAA;AAAA,EAIN,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EAIA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EAIA,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,SAAS,EAAC;AAAA,GACZ;AAAA,EAIA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EAIA,MAAQ,EAAA;AAAA,IACN,IAAA,EAAMC,uBAA4B,MAAM,CAAA;AAAA,IACxC,QAAU,EAAA,KAAA;AAAA,GACZ;AACF,CAAU,EAAA;AAGH,MAAM,YAAY;;;;;"}
1
+ {"version":3,"file":"form.js","sources":["../../../../../../../packages/components/form/src/form.ts"],"sourcesContent":["import { useSizeProp } from '@m-eleplus-crud/hooks'\r\nimport { buildProps, definePropType } from '@m-eleplus-crud/utils'\r\n\r\nimport type { ColumnType, ICommonColumn } from '../../common'\r\nimport type { FormItemRule } from 'element-plus'\r\n\r\nimport type { ExtractPropTypes } from 'vue'\r\n\r\n// 事件处理\r\ntype EventHandlers = {\r\n [K in `event${string}`]?: (...args: any[]) => any\r\n}\r\n\r\n/**\r\n * @description 公开的form column配置\r\n */\r\nexport interface IFormCommonColumn extends EventHandlers {\r\n /**\r\n * 表单校验规则\r\n */\r\n rules?: FormItemRule[]\r\n /**\r\n * @description 单个标签宽度\r\n */\r\n labelWidth?: string\r\n /**\r\n * @description 表单排序\r\n */\r\n order?: number\r\n /**\r\n * @description 栅栏宽度\r\n */\r\n span?: number\r\n /**\r\n * @description 最大长度\r\n */\r\n maxlength?: number\r\n /**\r\n * @description 是否显示字数统计,仅对type为textarea有效\r\n */\r\n showWordLimit?: boolean\r\n /**\r\n * @description 是否显示密码切换按钮,仅对type为password有效\r\n */\r\n showPassword?: boolean\r\n /**\r\n * @description 默认值\r\n */\r\n value?: any\r\n /**\r\n * @description 占位文本\r\n */\r\n placeholder?: string\r\n}\r\n\r\nexport interface IFormColumn extends ICommonColumn, IFormCommonColumn {\r\n /**\r\n * @description 组件类型\r\n */\r\n type?: ColumnType\r\n}\r\n\r\n/**\r\n * @description 公开的form配置\r\n */\r\nexport interface IFormCommonOption {\r\n /**\r\n * @description 标签宽度\r\n */\r\n labelWidth?: string\r\n}\r\n\r\nexport interface IFormOption extends IFormCommonOption {\r\n /**\r\n * @description 表单列\r\n */\r\n column: IFormColumn[]\r\n}\r\n\r\nexport const formProps = buildProps({\r\n /**\r\n * @description 组件大小\r\n */\r\n size: useSizeProp,\r\n /**\r\n * @description 表单绑定的数据\r\n */\r\n model: {\r\n type: Object,\r\n required: true,\r\n },\r\n /**\r\n * @description 表单加载状态\r\n */\r\n loading: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n /**\r\n * @description 表单权限配置\r\n */\r\n permission: {\r\n type: Object,\r\n default: {},\r\n },\r\n /**\r\n * @description 是否只读\r\n */\r\n readonly: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n /**\r\n * @description 表单配置\r\n */\r\n option: {\r\n type: definePropType<IFormOption>(Object),\r\n required: false,\r\n },\r\n} as const)\r\nexport type FormProps = ExtractPropTypes<typeof formProps>\r\n\r\nexport const formEmits = {}\r\nexport type FormEmits = typeof formEmits\r\n"],"names":["buildProps","useSizeProp","definePropType"],"mappings":";;;;;;;AA+EO,MAAM,YAAYA,kBAAW,CAAA;AAAA,EAIlC,IAAM,EAAAC,iBAAA;AAAA,EAIN,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EAIA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EAIA,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,SAAS,EAAC;AAAA,GACZ;AAAA,EAIA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EAIA,MAAQ,EAAA;AAAA,IACN,IAAA,EAAMC,uBAA4B,MAAM,CAAA;AAAA,IACxC,QAAU,EAAA,KAAA;AAAA,GACZ;AACF,CAAU,EAAA;AAGH,MAAM,YAAY;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"form2.js","sources":["../../../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, ref, useSlots, watch } from 'vue'\nimport { cloneDeep, get, set } from 'lodash-unified'\nimport { useGlobalConfig } from '@m-eleplus-crud/components'\nimport { debugWarn } from '@m-eleplus-crud/utils'\nimport { formEmits, formProps } from './form'\nimport type { IDictValue } from '@m-eleplus-crud/components/common'\nimport type { FormInstance } from 'element-plus'\nimport type { IFormColumn, IFormOption } from './form'\n\nconst COMPONENT_NAME = 'MForm'\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\nconst props = defineProps(formProps)\ndefineEmits(formEmits)\n\n// 插槽信息\nconst slots = useSlots() as any\n\n// 全局配置\nconst globalConfig = useGlobalConfig()\n\n// 表单实例\nconst formRef = ref<FormInstance>()\n\n// 表单输入类型\nconst INPUT_TYPES = [\n 'input',\n 'textarea',\n 'number',\n 'password',\n 'qrcode',\n 'barcode',\n]\n\n// 日期类型\nconst DATE_TYPES = [\n 'year',\n 'month',\n 'date',\n 'datetime',\n 'week',\n 'datetimerange',\n 'daterange',\n 'monthrange',\n 'yearrange',\n 'time',\n 'timerange',\n]\n\n// 需要字典显示处理\nconst NEED_DIC_TYPE = ['select', 'checkbox', 'radio', 'switch']\n\n// 表单配置\nconst formOption = ref<IFormOption>({\n // 默认标签宽度80px\n labelWidth: '80px',\n column: [],\n})\n\n/**\n * @description 计算详情模式下的表格行\n */\nconst detailTableRows = computed(() => {\n const rows = []\n let currentRow = []\n let currentTotal = 0\n for (const item of formOption.value.column || []) {\n const req = item.span || 12\n // 若当前行加入该项超过总列数,则开启新行\n if (currentTotal + req > 24) {\n rows.push(currentRow)\n currentRow = []\n currentTotal = 0\n }\n currentRow.push(item)\n currentTotal += req\n }\n if (currentRow.length) rows.push(currentRow)\n return rows\n})\n\n// 表单model\nconst proxys = new Proxy(props.model as any, {\n get(target, property) {\n return get(target, property)\n },\n set(target, property, value) {\n set(target, property, value)\n return true\n },\n})\n\n/**\n * @description 初始化表单的值\n */\nconst initValue = () => {\n // 初始化搜索表单的值\n if (formOption.value && formOption.value.column) {\n for (let i = 0; i < formOption.value.column?.length; i++) {\n const column = formOption.value.column[i]\n if (column.prop && proxys[column.prop] === undefined) {\n if (column.value) {\n proxys[column.prop] = column.value\n } else {\n const ARR_TYPES = [\n 'checkbox',\n 'datetimerange',\n 'daterange',\n 'monthrange',\n 'yearrange',\n 'timerange',\n ]\n if (\n (column.type === 'select' && column.multiple) ||\n ARR_TYPES.includes(column.type || '')\n ) {\n proxys[column.prop] = []\n } else {\n proxys[column.prop] = ''\n }\n }\n }\n }\n }\n}\n\n/**\n * 根据类型获取默认时间格式\n * @param type 类型\n */\nconst getValueFormatByType = (type: string) => {\n let format = ''\n switch (type) {\n case 'yearrange':\n case 'year':\n format = 'YYYY'\n break\n case 'monthrange':\n case 'month':\n format = 'YYYY-MM'\n break\n case 'daterange':\n case 'week':\n case 'date':\n format = 'YYYY-MM-DD'\n break\n case 'datetimerange':\n case 'datetime':\n format = 'YYYY-MM-DD HH:mm:ss'\n break\n case 'time':\n format = 'HH:mm:ss'\n break\n }\n return format\n}\n\n/**\n * 处理需要远程获取字典的配置\n */\nconst getAllRemoteDics = () => {\n const hasDicUrl = formOption.value?.column?.some((column) => column.dicUrl)\n if (hasDicUrl && !globalConfig.value?.httpGet) {\n debugWarn('MForm', 'global config httpGet is null')\n return\n }\n /**\n * 调用接口设置到dicData\n * @param column 列配置\n */\n const updateRemoteDic = (column: IFormColumn) => {\n return new Promise((resolve) => {\n let isSuccess = false\n // @ts-ignore\n globalConfig.value\n .httpGet(column.dicUrl, column.dicQuery, column.dicHeaders)\n .then((e: any) => {\n // @ts-ignore\n const { list, label, value } = column.dicFormatter(e)\n if (list && Array.isArray(list)) {\n column['dicData'] = list.map((item) => {\n const lastLabel = label.replace(/\\{(\\w+)\\}/g, (match, key) => {\n return item[key] || match\n })\n return {\n label: lastLabel,\n value: item[value],\n }\n })\n isSuccess = true\n }\n })\n .finally(() => {\n if (!isSuccess) {\n column['dicData'] = []\n }\n resolve(null)\n })\n })\n }\n for (let i = 0; i < (formOption.value?.column || []).length; i++) {\n // @ts-ignore\n const column = formOption.value.column[i]\n if (column.dicUrl) {\n if (!column.dicFormatter) {\n debugWarn('MForm', 'dicUrl and dicFormatter must be used together')\n continue\n }\n updateRemoteDic(column)\n }\n }\n}\n\n/**\n * 根据配置获取表单项的绑定事件\n * @param column\n */\nconst getFormItemEventBind = (column: IFormColumn): object => {\n const result: any = {}\n for (const key in column) {\n if (key.startsWith('event')) {\n let funName = key.replace('event', '')\n funName = funName.charAt(0).toLowerCase() + funName.slice(1)\n // @ts-ignore\n result[funName] = column[key]\n }\n }\n return result\n}\n\n/**\n * 解析字典并展示\n * @param row 行数据\n * @param column 列配置\n */\nconst formatDicValue = (row: any, column: IFormColumn) => {\n // 未拿到字典值的placeholder\n let dictLabel: string | undefined = ''\n // 查找\n const findLabelByValue = (dicData: IDictValue[], value: any) => {\n const dictItem = (dicData || []).find((dict) => dict.value === value)\n if (dictItem === undefined) {\n return dictLabel\n }\n return dictItem.label\n }\n if (\n (column.type === 'select' && column.multiple) ||\n column.type === 'checkbox'\n ) {\n // select下拉且开启多选/多选模式\n let values: any = []\n\n if (\n row[column.prop || ''] != null &&\n row[column.prop || ''] != undefined &&\n row[column.prop || ''] !== ''\n ) {\n if (Array.isArray(row[column.prop || ''])) {\n // 数据就是数组\n values = row[column.prop || '']\n } else if (typeof row[column.prop || ''] === 'string') {\n // 数据是字符串,启动字符分割,后续需要弄成从配置读取\n values = row[column.prop || ''].split(',')\n } else {\n // 最后情况变成数组\n values = [row[column.prop || '']]\n }\n }\n // 结果集合\n const result: string[] = []\n for (const value of values) {\n dictLabel = findLabelByValue(column.dicData || [], value)\n if (dictLabel === undefined) {\n break\n }\n result.push(dictLabel)\n }\n return result.join(',')\n }\n // 单模式\n dictLabel = findLabelByValue(column.dicData || [], row[column.prop || ''])\n return dictLabel\n}\n\n/**\n * 拿到详情模式下的图片集合\n * @param row\n * @param column\n */\nconst getDetailPic = (row: any, column: IFormColumn) => {\n if (!row || !row[column.prop || '']) {\n return []\n }\n const pics: string[] = row[column.prop || '']\n .split(column.imgSuffix || ';')\n .map((pic: string) => (column.imgPrefix || '') + pic)\n return pics\n}\n\nconst getValueColspan = (\n item: IFormColumn,\n rows: IFormColumn[],\n index: number\n) => {\n const getRemaining = (row: IFormColumn[]) => {\n const used = row.reduce((acc, item) => acc + (item.span || 12), 0)\n return 24 - used\n }\n if (index === rows.length - 1) {\n return (item.span || 12) + getRemaining(rows) - 1\n }\n return (item.span || 12) - 1\n}\n\n/**\n * @description 校验表单\n */\nconst validForm = (): Promise<boolean> => {\n return new Promise((resolve) => {\n formRef.value!.validate((valid) => {\n resolve(valid)\n })\n })\n}\n\n/**\n * @description 清空数据和校验规则\n */\nconst clear = () => {\n // 清空校验规则\n formRef.value?.clearValidate()\n // 清空表单数据\n formRef.value?.resetFields()\n}\n\nwatch(\n () => props.option as IFormOption,\n (newVal: IFormOption) => {\n if (newVal) {\n formOption.value = Object.assign({}, formOption.value, newVal)\n if (newVal.column) {\n formOption.value.column = cloneDeep(\n newVal.column\n .filter(\n (column) => !(props.permission[column.prop || ''] === false)\n )\n .sort((a, b) => (b.order || 0) - (a.order || 0))\n )\n // 处理远程字典的配置\n getAllRemoteDics()\n if (!props.readonly) {\n // 初始化表单的值\n initValue()\n }\n }\n }\n },\n {\n immediate: true,\n deep: true,\n }\n)\n\ndefineExpose({\n /**\n * @description 校验表单\n */\n validForm,\n /**\n * @description 清空表单\n */\n clear,\n})\n</script>\n\n<template>\n <div class=\"m-form\">\n <!--编辑模式-->\n <el-form\n v-if=\"!readonly\"\n ref=\"formRef\"\n :model=\"proxys\"\n :disabled=\"loading\"\n :size=\"size || globalConfig.size\"\n :label-width=\"formOption.labelWidth\"\n style=\"width: 100%\"\n @submit.prevent\n >\n <el-row :gutter=\"0\">\n <el-col\n v-for=\"(column, columnIndex) in formOption.column\"\n :key=\"columnIndex\"\n :span=\"column.span || 12\"\n >\n <el-form-item\n style=\"width: 100%\"\n :label=\"column.label + ':'\"\n :prop=\"column.prop\"\n :rules=\"column.rules\"\n :label-width=\"column.labelWidth || formOption.labelWidth\"\n >\n <!--插槽信息-->\n <slot\n v-if=\"slots[column.prop || '']\"\n :name=\"column.prop\"\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\n />\n <!---->\n <!--输入框-->\n <el-input\n v-else-if=\"!column.type || INPUT_TYPES.includes(column.type)\"\n v-model.trim=\"proxys[column.prop || '']\"\n style=\"width: 100%\"\n :placeholder=\"column.placeholder\"\n :maxlength=\"column.maxlength\"\n :show-word-limit=\"column.showWordLimit\"\n :show-password=\"column.showPassword\"\n :type=\"\n !column.type || column.type === 'input' ? 'text' : column.type\n \"\n v-on=\"getFormItemEventBind(column)\"\n />\n <!---->\n <!--下拉框-->\n <el-select\n v-else-if=\"column.type === 'select'\"\n v-model.trim=\"proxys[column.prop || '']\"\n style=\"width: 100%\"\n :placeholder=\"column.placeholder\"\n :multiple=\"column.multiple\"\n :clearable=\"column.clearable\"\n :filterable=\"column.filterable\"\n :filter-method=\"column.filterMethod\"\n :remote=\"column.remote\"\n :remote-method=\"column.remoteMethod\"\n :loading=\"column.loading\"\n v-on=\"getFormItemEventBind(column)\"\n >\n <el-option\n v-for=\"(dicItem, dicIndex) in column.dicData || []\"\n :key=\"dicIndex\"\n :label=\"dicItem.label\"\n :value=\"dicItem.value\"\n />\n </el-select>\n <!---->\n <!--radio-->\n <el-radio-group\n v-else-if=\"column.type === 'radio'\"\n v-model=\"proxys[column.prop || '']\"\n style=\"width: 100%\"\n v-on=\"getFormItemEventBind(column)\"\n >\n <el-radio\n v-for=\"(dicItem, dicIndex) in column.dicData || []\"\n :key=\"dicIndex\"\n :value=\"dicItem.value\"\n :label=\"dicItem.value\"\n >\n {{ dicItem.label }}\n </el-radio>\n </el-radio-group>\n <!---->\n <!--checkbox-->\n <el-checkbox-group\n v-else-if=\"column.type === 'checkbox'\"\n v-model=\"proxys[column.prop || '']\"\n style=\"width: 100%\"\n v-on=\"getFormItemEventBind(column)\"\n >\n <el-checkbox\n v-for=\"(dicItem, dicIndex) in column.dicData || []\"\n :key=\"dicIndex\"\n :label=\"dicItem.label\"\n :value=\"dicItem.value\"\n />\n </el-checkbox-group>\n <!---->\n <!--switch-->\n <template v-else-if=\"column.type === 'switch'\">\n <span\n v-if=\"!column.dicData || column.dicData.length != 2\"\n style=\"\n color: var(--el-text-color-placeholder);\n line-height: 32px;\n height: 32px;\n \"\n >\"dicData/dicUrl的结果\"未设置或长度不等于2</span\n >\n <template v-else>\n <el-switch\n v-model=\"proxys[column.prop || '']\"\n :active-value=\"column.dicData[0].value\"\n :inactive-value=\"column.dicData[1].value\"\n v-on=\"getFormItemEventBind(column)\"\n />\n <span\n style=\"\n font-size: var(--el-font-size-base);\n color: var(--el-text-color-regular);\n margin-left: 6px;\n \"\n >{{\n proxys[column.prop || ''] === column.dicData[0].value\n ? column.dicData[0].label\n : column.dicData[1].label\n }}</span\n >\n </template>\n </template>\n <!---->\n <!--时间-->\n <template v-else-if=\"DATE_TYPES.includes(column.type)\">\n <el-date-picker\n v-if=\"column.type !== 'time' && column.type !== 'timerange'\"\n v-model=\"proxys[column.prop || '']\"\n :type=\"column.type\"\n :clearable=\"column.clearable\"\n :start-placeholder=\"column.startPlaceholder\"\n :end-placeholder=\"column.endPlaceholder\"\n :format=\"column.format\"\n :value-format=\"\n column.valueFormat || getValueFormatByType(column.type)\n \"\n v-on=\"getFormItemEventBind(column)\"\n />\n <el-time-picker\n v-else\n v-model=\"proxys[column.prop || '']\"\n :is-range=\"column.type === 'timerange'\"\n :clearable=\"column.clearable\"\n :start-placeholder=\"column.startPlaceholder\"\n :end-placeholder=\"column.endPlaceholder\"\n :value-format=\"\n column.valueFormat || getValueFormatByType(column.type)\n \"\n v-on=\"getFormItemEventBind(column)\"\n />\n </template>\n <!---->\n <!--picture-->\n <span\n v-else-if=\"column.type === 'picture'\"\n style=\"\n color: var(--el-text-color-regular);\n line-height: 32px;\n height: 32px;\n \"\n >\n 暂不支持picture,请使用插槽自行实现\n </span>\n <!---->\n </el-form-item>\n </el-col>\n </el-row>\n </el-form>\n <!---->\n <!--详情模式-->\n <template v-else>\n <table class=\"detail-desc\">\n <tbody>\n <tr v-for=\"(row, rowIndex) in detailTableRows\" :key=\"rowIndex\">\n <template v-for=\"(column, index) in row\" :key=\"index\">\n <td\n :style=\"{ width: column.labelWidth || formOption.labelWidth }\"\n colspan=\"1\"\n class=\"label\"\n >\n {{ column.label }}\n </td>\n <td :colspan=\"getValueColspan(column, row, index)\">\n <template v-if=\"column.type === 'picture'\">\n <MPicture\n :src=\"getDetailPic(proxys, column)[0]\"\n :preview-src-list=\"getDetailPic(proxys, column)[0]\"\n img-width=\"100px\"\n img-height=\"100px\"\n />\n </template>\n <template v-else-if=\"NEED_DIC_TYPE.includes(column.type || '')\">\n {{ formatDicValue(proxys, column) }}\n </template>\n <template v-else-if=\"column.type === 'qrcode'\">\n <MQrcode\n v-if=\"proxys[column.prop || '']\"\n :text=\"proxys[column.prop || '']\"\n align=\"center\"\n />\n </template>\n <template v-else-if=\"column.type === 'barcode'\">\n <MBarcode\n v-if=\"proxys[column.prop || '']\"\n :text=\"proxys[column.prop || '']\"\n align=\"center\"\n />\n </template>\n <template v-else>\n {{ proxys[column.prop || ''] }}\n </template>\n </td>\n </template>\n </tr>\n </tbody>\n </table>\n </template>\n </div>\n</template>\n"],"names":["useSlots","useGlobalConfig","ref","computed","get","set","debugWarn","item","watch","cloneDeep"],"mappings":"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"}
1
+ {"version":3,"file":"form2.js","sources":["../../../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<script lang=\"ts\" setup>\r\nimport { computed, ref, useSlots, watch } from 'vue'\r\nimport { cloneDeep, get, set } from 'lodash-unified'\r\nimport { useGlobalConfig } from '@m-eleplus-crud/components'\r\nimport { debugWarn } from '@m-eleplus-crud/utils'\r\nimport { formEmits, formProps } from './form'\r\nimport type { IDictValue } from '@m-eleplus-crud/components/common'\r\nimport type { FormInstance } from 'element-plus'\r\nimport type { IFormColumn, IFormOption } from './form'\r\n\r\nconst COMPONENT_NAME = 'MForm'\r\ndefineOptions({\r\n name: COMPONENT_NAME,\r\n})\r\n\r\nconst props = defineProps(formProps)\r\ndefineEmits(formEmits)\r\n\r\n// 插槽信息\r\nconst slots = useSlots() as any\r\n\r\n// 全局配置\r\nconst globalConfig = useGlobalConfig()\r\n\r\n// 表单实例\r\nconst formRef = ref<FormInstance>()\r\n\r\n// 表单输入类型\r\nconst INPUT_TYPES = [\r\n 'input',\r\n 'textarea',\r\n 'number',\r\n 'password',\r\n 'qrcode',\r\n 'barcode',\r\n]\r\n\r\n// 日期类型\r\nconst DATE_TYPES = [\r\n 'year',\r\n 'month',\r\n 'date',\r\n 'datetime',\r\n 'week',\r\n 'datetimerange',\r\n 'daterange',\r\n 'monthrange',\r\n 'yearrange',\r\n 'time',\r\n 'timerange',\r\n]\r\n\r\n// 需要字典显示处理\r\nconst NEED_DIC_TYPE = ['select', 'checkbox', 'radio', 'switch']\r\n\r\n// 表单配置\r\nconst formOption = ref<IFormOption>({\r\n // 默认标签宽度80px\r\n labelWidth: '80px',\r\n column: [],\r\n})\r\n\r\n/**\r\n * @description 计算详情模式下的表格行\r\n */\r\nconst detailTableRows = computed(() => {\r\n const rows = []\r\n let currentRow = []\r\n let currentTotal = 0\r\n for (const item of formOption.value.column || []) {\r\n const req = item.span || 12\r\n // 若当前行加入该项超过总列数,则开启新行\r\n if (currentTotal + req > 24) {\r\n rows.push(currentRow)\r\n currentRow = []\r\n currentTotal = 0\r\n }\r\n currentRow.push(item)\r\n currentTotal += req\r\n }\r\n if (currentRow.length) rows.push(currentRow)\r\n return rows\r\n})\r\n\r\n// 表单model\r\nconst proxys = new Proxy(props.model as any, {\r\n get(target, property) {\r\n return get(target, property)\r\n },\r\n set(target, property, value) {\r\n set(target, property, value)\r\n return true\r\n },\r\n})\r\n\r\n/**\r\n * @description 初始化表单的值\r\n */\r\nconst initValue = () => {\r\n // 初始化搜索表单的值\r\n if (formOption.value && formOption.value.column) {\r\n for (let i = 0; i < formOption.value.column?.length; i++) {\r\n const column = formOption.value.column[i]\r\n if (column.prop && proxys[column.prop] === undefined) {\r\n if (column.value) {\r\n proxys[column.prop] = column.value\r\n } else {\r\n const ARR_TYPES = [\r\n 'checkbox',\r\n 'datetimerange',\r\n 'daterange',\r\n 'monthrange',\r\n 'yearrange',\r\n 'timerange',\r\n ]\r\n if (\r\n (column.type === 'select' && column.multiple) ||\r\n ARR_TYPES.includes(column.type || '')\r\n ) {\r\n proxys[column.prop] = []\r\n } else {\r\n proxys[column.prop] = ''\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * 根据类型获取默认时间格式\r\n * @param type 类型\r\n */\r\nconst getValueFormatByType = (type: string) => {\r\n let format = ''\r\n switch (type) {\r\n case 'yearrange':\r\n case 'year':\r\n format = 'YYYY'\r\n break\r\n case 'monthrange':\r\n case 'month':\r\n format = 'YYYY-MM'\r\n break\r\n case 'daterange':\r\n case 'week':\r\n case 'date':\r\n format = 'YYYY-MM-DD'\r\n break\r\n case 'datetimerange':\r\n case 'datetime':\r\n format = 'YYYY-MM-DD HH:mm:ss'\r\n break\r\n case 'time':\r\n format = 'HH:mm:ss'\r\n break\r\n }\r\n return format\r\n}\r\n\r\n/**\r\n * 处理需要远程获取字典的配置\r\n */\r\nconst getAllRemoteDics = () => {\r\n const hasDicUrl = formOption.value?.column?.some((column) => column.dicUrl)\r\n if (hasDicUrl && !globalConfig.value?.httpGet) {\r\n debugWarn('MForm', 'global config httpGet is null')\r\n return\r\n }\r\n /**\r\n * 调用接口设置到dicData\r\n * @param column 列配置\r\n */\r\n const updateRemoteDic = (column: IFormColumn) => {\r\n return new Promise((resolve) => {\r\n let isSuccess = false\r\n // @ts-ignore\r\n globalConfig.value\r\n .httpGet(column.dicUrl, column.dicQuery, column.dicHeaders)\r\n .then((e: any) => {\r\n // @ts-ignore\r\n const { list, label, value } = column.dicFormatter(e)\r\n if (list && Array.isArray(list)) {\r\n column['dicData'] = list.map((item) => {\r\n const lastLabel = label.replace(/\\{(\\w+)\\}/g, (match, key) => {\r\n return item[key] || match\r\n })\r\n return {\r\n label: lastLabel,\r\n value: item[value],\r\n }\r\n })\r\n isSuccess = true\r\n }\r\n })\r\n .finally(() => {\r\n if (!isSuccess) {\r\n column['dicData'] = []\r\n }\r\n resolve(null)\r\n })\r\n })\r\n }\r\n for (let i = 0; i < (formOption.value?.column || []).length; i++) {\r\n // @ts-ignore\r\n const column = formOption.value.column[i]\r\n if (column.dicUrl) {\r\n if (!column.dicFormatter) {\r\n debugWarn('MForm', 'dicUrl and dicFormatter must be used together')\r\n continue\r\n }\r\n updateRemoteDic(column)\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * 根据配置获取表单项的绑定事件\r\n * @param column\r\n */\r\nconst getFormItemEventBind = (column: IFormColumn): object => {\r\n const result: any = {}\r\n for (const key in column) {\r\n if (key.startsWith('event')) {\r\n let funName = key.replace('event', '')\r\n funName = funName.charAt(0).toLowerCase() + funName.slice(1)\r\n // @ts-ignore\r\n result[funName] = column[key]\r\n }\r\n }\r\n return result\r\n}\r\n\r\n/**\r\n * 解析字典并展示\r\n * @param row 行数据\r\n * @param column 列配置\r\n */\r\nconst formatDicValue = (row: any, column: IFormColumn) => {\r\n // 未拿到字典值的placeholder\r\n let dictLabel: string | undefined = ''\r\n // 查找\r\n const findLabelByValue = (dicData: IDictValue[], value: any) => {\r\n const dictItem = (dicData || []).find((dict) => dict.value === value)\r\n if (dictItem === undefined) {\r\n return dictLabel\r\n }\r\n return dictItem.label\r\n }\r\n if (\r\n (column.type === 'select' && column.multiple) ||\r\n column.type === 'checkbox'\r\n ) {\r\n // select下拉且开启多选/多选模式\r\n let values: any = []\r\n\r\n if (\r\n row[column.prop || ''] != null &&\r\n row[column.prop || ''] != undefined &&\r\n row[column.prop || ''] !== ''\r\n ) {\r\n if (Array.isArray(row[column.prop || ''])) {\r\n // 数据就是数组\r\n values = row[column.prop || '']\r\n } else if (typeof row[column.prop || ''] === 'string') {\r\n // 数据是字符串,启动字符分割,后续需要弄成从配置读取\r\n values = row[column.prop || ''].split(',')\r\n } else {\r\n // 最后情况变成数组\r\n values = [row[column.prop || '']]\r\n }\r\n }\r\n // 结果集合\r\n const result: string[] = []\r\n for (const value of values) {\r\n dictLabel = findLabelByValue(column.dicData || [], value)\r\n if (dictLabel === undefined) {\r\n break\r\n }\r\n result.push(dictLabel)\r\n }\r\n return result.join(',')\r\n }\r\n // 单模式\r\n dictLabel = findLabelByValue(column.dicData || [], row[column.prop || ''])\r\n return dictLabel\r\n}\r\n\r\n/**\r\n * 拿到详情模式下的图片集合\r\n * @param row\r\n * @param column\r\n */\r\nconst getDetailPic = (row: any, column: IFormColumn) => {\r\n if (!row || !row[column.prop || '']) {\r\n return []\r\n }\r\n const pics: string[] = row[column.prop || '']\r\n .split(column.imgSuffix || ';')\r\n .map((pic: string) => (column.imgPrefix || '') + pic)\r\n return pics\r\n}\r\n\r\nconst getValueColspan = (\r\n item: IFormColumn,\r\n rows: IFormColumn[],\r\n index: number\r\n) => {\r\n const getRemaining = (row: IFormColumn[]) => {\r\n const used = row.reduce((acc, item) => acc + (item.span || 12), 0)\r\n return 24 - used\r\n }\r\n if (index === rows.length - 1) {\r\n return (item.span || 12) + getRemaining(rows) - 1\r\n }\r\n return (item.span || 12) - 1\r\n}\r\n\r\n/**\r\n * @description 校验表单\r\n */\r\nconst validForm = (): Promise<boolean> => {\r\n return new Promise((resolve) => {\r\n formRef.value!.validate((valid) => {\r\n resolve(valid)\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * @description 清空数据和校验规则\r\n */\r\nconst clear = () => {\r\n // 清空校验规则\r\n formRef.value?.clearValidate()\r\n // 清空表单数据\r\n formRef.value?.resetFields()\r\n}\r\n\r\nwatch(\r\n () => props.option as IFormOption,\r\n (newVal: IFormOption) => {\r\n if (newVal) {\r\n formOption.value = Object.assign({}, formOption.value, newVal)\r\n if (newVal.column) {\r\n formOption.value.column = cloneDeep(\r\n newVal.column\r\n .filter(\r\n (column) => !(props.permission[column.prop || ''] === false)\r\n )\r\n .sort((a, b) => (b.order || 0) - (a.order || 0))\r\n )\r\n // 处理远程字典的配置\r\n getAllRemoteDics()\r\n if (!props.readonly) {\r\n // 初始化表单的值\r\n initValue()\r\n }\r\n }\r\n }\r\n },\r\n {\r\n immediate: true,\r\n deep: true,\r\n }\r\n)\r\n\r\ndefineExpose({\r\n /**\r\n * @description 校验表单\r\n */\r\n validForm,\r\n /**\r\n * @description 清空表单\r\n */\r\n clear,\r\n})\r\n</script>\r\n\r\n<template>\r\n <div class=\"m-form\">\r\n <!--编辑模式-->\r\n <el-form\r\n v-if=\"!readonly\"\r\n ref=\"formRef\"\r\n :model=\"proxys\"\r\n :disabled=\"loading\"\r\n :size=\"size || globalConfig.size\"\r\n :label-width=\"formOption.labelWidth\"\r\n style=\"width: 100%\"\r\n @submit.prevent\r\n >\r\n <el-row :gutter=\"0\">\r\n <el-col\r\n v-for=\"(column, columnIndex) in formOption.column\"\r\n :key=\"columnIndex\"\r\n :span=\"column.span || 12\"\r\n >\r\n <el-form-item\r\n style=\"width: 100%\"\r\n :label=\"column.label + ':'\"\r\n :prop=\"column.prop\"\r\n :rules=\"column.rules\"\r\n :label-width=\"column.labelWidth || formOption.labelWidth\"\r\n >\r\n <!--插槽信息-->\r\n <slot\r\n v-if=\"slots[column.prop || '']\"\r\n :name=\"column.prop\"\r\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\r\n />\r\n <!---->\r\n <!--输入框-->\r\n <el-input\r\n v-else-if=\"!column.type || INPUT_TYPES.includes(column.type)\"\r\n v-model.trim=\"proxys[column.prop || '']\"\r\n style=\"width: 100%\"\r\n :placeholder=\"column.placeholder\"\r\n :maxlength=\"column.maxlength\"\r\n :show-word-limit=\"column.showWordLimit\"\r\n :show-password=\"column.showPassword\"\r\n :type=\"\r\n !column.type || column.type === 'input' ? 'text' : column.type\r\n \"\r\n v-on=\"getFormItemEventBind(column)\"\r\n />\r\n <!---->\r\n <!--下拉框-->\r\n <el-select\r\n v-else-if=\"column.type === 'select'\"\r\n v-model.trim=\"proxys[column.prop || '']\"\r\n style=\"width: 100%\"\r\n :placeholder=\"column.placeholder\"\r\n :multiple=\"column.multiple\"\r\n :clearable=\"column.clearable\"\r\n :filterable=\"column.filterable\"\r\n :filter-method=\"column.filterMethod\"\r\n :remote=\"column.remote\"\r\n :remote-method=\"column.remoteMethod\"\r\n :loading=\"column.loading\"\r\n v-on=\"getFormItemEventBind(column)\"\r\n >\r\n <el-option\r\n v-for=\"(dicItem, dicIndex) in column.dicData || []\"\r\n :key=\"dicIndex\"\r\n :label=\"dicItem.label\"\r\n :value=\"dicItem.value\"\r\n />\r\n </el-select>\r\n <!---->\r\n <!--radio-->\r\n <el-radio-group\r\n v-else-if=\"column.type === 'radio'\"\r\n v-model=\"proxys[column.prop || '']\"\r\n style=\"width: 100%\"\r\n v-on=\"getFormItemEventBind(column)\"\r\n >\r\n <el-radio\r\n v-for=\"(dicItem, dicIndex) in column.dicData || []\"\r\n :key=\"dicIndex\"\r\n :value=\"dicItem.value\"\r\n :label=\"dicItem.value\"\r\n >\r\n {{ dicItem.label }}\r\n </el-radio>\r\n </el-radio-group>\r\n <!---->\r\n <!--checkbox-->\r\n <el-checkbox-group\r\n v-else-if=\"column.type === 'checkbox'\"\r\n v-model=\"proxys[column.prop || '']\"\r\n style=\"width: 100%\"\r\n v-on=\"getFormItemEventBind(column)\"\r\n >\r\n <el-checkbox\r\n v-for=\"(dicItem, dicIndex) in column.dicData || []\"\r\n :key=\"dicIndex\"\r\n :label=\"dicItem.label\"\r\n :value=\"dicItem.value\"\r\n />\r\n </el-checkbox-group>\r\n <!---->\r\n <!--switch-->\r\n <template v-else-if=\"column.type === 'switch'\">\r\n <span\r\n v-if=\"!column.dicData || column.dicData.length != 2\"\r\n style=\"\r\n color: var(--el-text-color-placeholder);\r\n line-height: 32px;\r\n height: 32px;\r\n \"\r\n >\"dicData/dicUrl的结果\"未设置或长度不等于2</span\r\n >\r\n <template v-else>\r\n <el-switch\r\n v-model=\"proxys[column.prop || '']\"\r\n :active-value=\"column.dicData[0].value\"\r\n :inactive-value=\"column.dicData[1].value\"\r\n v-on=\"getFormItemEventBind(column)\"\r\n />\r\n <span\r\n style=\"\r\n font-size: var(--el-font-size-base);\r\n color: var(--el-text-color-regular);\r\n margin-left: 6px;\r\n \"\r\n >{{\r\n proxys[column.prop || ''] === column.dicData[0].value\r\n ? column.dicData[0].label\r\n : column.dicData[1].label\r\n }}</span\r\n >\r\n </template>\r\n </template>\r\n <!---->\r\n <!--时间-->\r\n <template v-else-if=\"DATE_TYPES.includes(column.type)\">\r\n <el-date-picker\r\n v-if=\"column.type !== 'time' && column.type !== 'timerange'\"\r\n v-model=\"proxys[column.prop || '']\"\r\n :type=\"column.type\"\r\n :clearable=\"column.clearable\"\r\n :start-placeholder=\"column.startPlaceholder\"\r\n :end-placeholder=\"column.endPlaceholder\"\r\n :format=\"column.format\"\r\n :value-format=\"\r\n column.valueFormat || getValueFormatByType(column.type)\r\n \"\r\n v-on=\"getFormItemEventBind(column)\"\r\n />\r\n <el-time-picker\r\n v-else\r\n v-model=\"proxys[column.prop || '']\"\r\n :is-range=\"column.type === 'timerange'\"\r\n :clearable=\"column.clearable\"\r\n :start-placeholder=\"column.startPlaceholder\"\r\n :end-placeholder=\"column.endPlaceholder\"\r\n :value-format=\"\r\n column.valueFormat || getValueFormatByType(column.type)\r\n \"\r\n v-on=\"getFormItemEventBind(column)\"\r\n />\r\n </template>\r\n <!---->\r\n <!--picture-->\r\n <span\r\n v-else-if=\"column.type === 'picture'\"\r\n style=\"\r\n color: var(--el-text-color-regular);\r\n line-height: 32px;\r\n height: 32px;\r\n \"\r\n >\r\n 暂不支持picture,请使用插槽自行实现\r\n </span>\r\n <!---->\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <!---->\r\n <!--详情模式-->\r\n <template v-else>\r\n <table class=\"detail-desc\">\r\n <tbody>\r\n <tr v-for=\"(row, rowIndex) in detailTableRows\" :key=\"rowIndex\">\r\n <template v-for=\"(column, index) in row\" :key=\"index\">\r\n <td\r\n :style=\"{ width: column.labelWidth || formOption.labelWidth }\"\r\n colspan=\"1\"\r\n class=\"label\"\r\n >\r\n {{ column.label }}\r\n </td>\r\n <td :colspan=\"getValueColspan(column, row, index)\">\r\n <template v-if=\"column.type === 'picture'\">\r\n <MPicture\r\n :src=\"getDetailPic(proxys, column)[0]\"\r\n :preview-src-list=\"getDetailPic(proxys, column)[0]\"\r\n img-width=\"100px\"\r\n img-height=\"100px\"\r\n />\r\n </template>\r\n <template v-else-if=\"NEED_DIC_TYPE.includes(column.type || '')\">\r\n {{ formatDicValue(proxys, column) }}\r\n </template>\r\n <template v-else-if=\"column.type === 'qrcode'\">\r\n <MQrcode\r\n v-if=\"proxys[column.prop || '']\"\r\n :text=\"proxys[column.prop || '']\"\r\n align=\"center\"\r\n />\r\n </template>\r\n <template v-else-if=\"column.type === 'barcode'\">\r\n <MBarcode\r\n v-if=\"proxys[column.prop || '']\"\r\n :text=\"proxys[column.prop || '']\"\r\n align=\"center\"\r\n />\r\n </template>\r\n <template v-else>\r\n {{ proxys[column.prop || ''] }}\r\n </template>\r\n </td>\r\n </template>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </template>\r\n </div>\r\n</template>\r\n"],"names":["DO_defineComponent","useSlots","useGlobalConfig","ref","computed","get","set","debugWarn","item","watch","cloneDeep"],"mappings":"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"}
@@ -16,13 +16,13 @@ var configProviderProps = require('./config-provider/src/config-provider-props.j
16
16
  var constants = require('./config-provider/src/constants.js');
17
17
  var useGlobalConfig = require('./config-provider/src/hooks/use-global-config.js');
18
18
  var table = require('./table/src/table.js');
19
- var search = require('./search/src/search2.js');
20
- var picture = require('./picture/src/picture.js');
19
+ var search = require('./search/src/search.js');
20
+ var picture = require('./picture/src/picture2.js');
21
21
  var dialog = require('./dialog/src/dialog.js');
22
22
  var qrcode = require('./qrcode/src/qrcode.js');
23
23
  var barcode = require('./barcode/src/barcode.js');
24
24
  var form = require('./form/src/form.js');
25
- var crud = require('./crud/src/crud2.js');
25
+ var crud = require('./crud/src/crud.js');
26
26
  var pagination = require('./pagination/src/pagination.js');
27
27
 
28
28
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../packages/components/pagination/index.ts"],"sourcesContent":["import { withInstall } from '@m-eleplus-crud/utils'\nimport Pagination from './src/pagination.vue'\nimport type { SFCWithInstall } from '@m-eleplus-crud/utils'\n\nexport const MPagination: SFCWithInstall<typeof Pagination> = withInstall(Pagination)\nexport default MPagination\n\nexport * from './src/pagination'\nexport type { PaginationInstance } from './src/instance'\n"],"names":["withInstall","Pagination"],"mappings":";;;;;;;;AAIa,MAAA,WAAA,GAAiDA,oBAAYC,uBAAU;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../packages/components/pagination/index.ts"],"sourcesContent":["import { withInstall } from '@m-eleplus-crud/utils'\r\nimport Pagination from './src/pagination.vue'\r\nimport type { SFCWithInstall } from '@m-eleplus-crud/utils'\r\n\r\nexport const MPagination: SFCWithInstall<typeof Pagination> = withInstall(Pagination)\r\nexport default MPagination\r\n\r\nexport * from './src/pagination'\r\nexport type { PaginationInstance } from './src/instance'\r\n"],"names":["withInstall","Pagination"],"mappings":";;;;;;;;AAIa,MAAA,WAAA,GAAiDA,oBAAYC,uBAAU;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.js","sources":["../../../../../../../packages/components/pagination/src/pagination.ts"],"sourcesContent":["import { buildProps, isNumber } from '@m-eleplus-crud/utils'\n\nimport type { ExtractPropTypes } from 'vue'\n\nexport const paginationProps = buildProps({\n /**\n * @description 是否使用小型分页样式\n */\n small: {\n type: Boolean,\n default: true,\n },\n /**\n * @description 是否为分页按钮添加背景色\n */\n background: {\n type: Boolean,\n default: true,\n },\n /**\n * @description 总条目数\n */\n total: {\n type: Number,\n default: 0,\n },\n /**\n * @description 组件布局,子组件名用逗号分隔\n */\n layout: {\n type: String,\n default: 'total, sizes, prev, pager, next, jumper',\n },\n /**\n * @description 每页显示个数选择器的选项设置\n */\n pageSizes: {\n type: Array,\n default: () => [10, 50, 100, 200, 300, 400],\n },\n /**\n * @description 是否禁用\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n /**\n * @description 当前页数\n */\n currentPage: {\n type: Number,\n default: 1,\n },\n /**\n * @description 当前页大小\n */\n pageSize: {\n type: Number,\n default: 10,\n },\n} as const)\nexport type PaginationProps = ExtractPropTypes<typeof paginationProps>\n\nexport const paginationEmits = {\n /**\n * 更新当前分页\n * @param page 页数\n * @returns\n */\n 'update:currentPage': (page: number) => isNumber(page),\n /**\n * 更新页码大小\n * @param pageSize 页大小\n * @returns\n */\n 'update:pageSize': (pageSize: number) => isNumber(pageSize),\n /**\n * 页数改变\n * @param page 页数\n * @returns\n */\n currentPage: (page: number) => isNumber(page),\n /**\n * 页码大小改变\n * @param pageSize 页码大小\n * @returns\n */\n pageSize: (pageSize: number) => isNumber(pageSize),\n}\nexport type PaginationEmits = typeof paginationEmits\n"],"names":["buildProps","isNumber"],"mappings":";;;;;;;AAIO,MAAM,kBAAkBA,kBAAW,CAAA;AAAA,EAIxC,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EAIA,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EAIA,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,CAAA;AAAA,GACX;AAAA,EAIA,MAAQ,EAAA;AAAA,IACN,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,yCAAA;AAAA,GACX;AAAA,EAIA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,KAAA;AAAA,IACN,OAAA,EAAS,MAAM,CAAC,EAAA,EAAI,IAAI,GAAK,EAAA,GAAA,EAAK,KAAK,GAAG,CAAA;AAAA,GAC5C;AAAA,EAIA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EAIA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,CAAA;AAAA,GACX;AAAA,EAIA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AACF,CAAU,EAAA;AAGH,MAAM,eAAkB,GAAA;AAAA,EAM7B,oBAAsB,EAAA,CAAC,IAAiB,KAAAC,cAAA,CAAS,IAAI,CAAA;AAAA,EAMrD,iBAAmB,EAAA,CAAC,QAAqB,KAAAA,cAAA,CAAS,QAAQ,CAAA;AAAA,EAM1D,WAAa,EAAA,CAAC,IAAiB,KAAAA,cAAA,CAAS,IAAI,CAAA;AAAA,EAM5C,QAAU,EAAA,CAAC,QAAqB,KAAAA,cAAA,CAAS,QAAQ,CAAA;AACnD;;;;;"}
1
+ {"version":3,"file":"pagination.js","sources":["../../../../../../../packages/components/pagination/src/pagination.ts"],"sourcesContent":["import { buildProps, isNumber } from '@m-eleplus-crud/utils'\r\n\r\nimport type { ExtractPropTypes } from 'vue'\r\n\r\nexport const paginationProps = buildProps({\r\n /**\r\n * @description 是否使用小型分页样式\r\n */\r\n small: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n /**\r\n * @description 是否为分页按钮添加背景色\r\n */\r\n background: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n /**\r\n * @description 总条目数\r\n */\r\n total: {\r\n type: Number,\r\n default: 0,\r\n },\r\n /**\r\n * @description 组件布局,子组件名用逗号分隔\r\n */\r\n layout: {\r\n type: String,\r\n default: 'total, sizes, prev, pager, next, jumper',\r\n },\r\n /**\r\n * @description 每页显示个数选择器的选项设置\r\n */\r\n pageSizes: {\r\n type: Array,\r\n default: () => [10, 50, 100, 200, 300, 400],\r\n },\r\n /**\r\n * @description 是否禁用\r\n */\r\n disabled: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n /**\r\n * @description 当前页数\r\n */\r\n currentPage: {\r\n type: Number,\r\n default: 1,\r\n },\r\n /**\r\n * @description 当前页大小\r\n */\r\n pageSize: {\r\n type: Number,\r\n default: 10,\r\n },\r\n} as const)\r\nexport type PaginationProps = ExtractPropTypes<typeof paginationProps>\r\n\r\nexport const paginationEmits = {\r\n /**\r\n * 更新当前分页\r\n * @param page 页数\r\n * @returns\r\n */\r\n 'update:currentPage': (page: number) => isNumber(page),\r\n /**\r\n * 更新页码大小\r\n * @param pageSize 页大小\r\n * @returns\r\n */\r\n 'update:pageSize': (pageSize: number) => isNumber(pageSize),\r\n /**\r\n * 页数改变\r\n * @param page 页数\r\n * @returns\r\n */\r\n currentPage: (page: number) => isNumber(page),\r\n /**\r\n * 页码大小改变\r\n * @param pageSize 页码大小\r\n * @returns\r\n */\r\n pageSize: (pageSize: number) => isNumber(pageSize),\r\n}\r\nexport type PaginationEmits = typeof paginationEmits\r\n"],"names":["buildProps","isNumber"],"mappings":";;;;;;;AAIO,MAAM,kBAAkBA,kBAAW,CAAA;AAAA,EAIxC,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EAIA,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EAIA,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,CAAA;AAAA,GACX;AAAA,EAIA,MAAQ,EAAA;AAAA,IACN,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,yCAAA;AAAA,GACX;AAAA,EAIA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,KAAA;AAAA,IACN,OAAA,EAAS,MAAM,CAAC,EAAA,EAAI,IAAI,GAAK,EAAA,GAAA,EAAK,KAAK,GAAG,CAAA;AAAA,GAC5C;AAAA,EAIA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EAIA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,CAAA;AAAA,GACX;AAAA,EAIA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AACF,CAAU,EAAA;AAGH,MAAM,eAAkB,GAAA;AAAA,EAM7B,oBAAsB,EAAA,CAAC,IAAiB,KAAAC,cAAA,CAAS,IAAI,CAAA;AAAA,EAMrD,iBAAmB,EAAA,CAAC,QAAqB,KAAAA,cAAA,CAAS,QAAQ,CAAA;AAAA,EAM1D,WAAa,EAAA,CAAC,IAAiB,KAAAA,cAAA,CAAS,IAAI,CAAA;AAAA,EAM5C,QAAU,EAAA,CAAC,QAAqB,KAAAA,cAAA,CAAS,QAAQ,CAAA;AACnD;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"pagination2.js","sources":["../../../../../../../packages/components/pagination/src/pagination.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { paginationEmits, paginationProps } from './pagination'\n\nconst COMPONENT_NAME = 'MPagination'\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\ndefineProps(paginationProps)\n\nconst emits = defineEmits(paginationEmits)\n\n/**\n * 页数变化\n * @param size 页大小\n */\nconst handleSizeChange = (size: number) => {\n emits('update:pageSize', size)\n emits('pageSize', size)\n}\n\n/**\n * 页发生变化\n * @param page 页\n */\nconst handleCurrentChange = (page: number) => {\n emits('update:currentPage', page)\n emits('currentPage', page)\n}\n</script>\n\n<template>\n <el-pagination\n :current-page=\"currentPage\"\n :page-size=\"pageSize\"\n :page-sizes=\"pageSizes\"\n :small=\"small\"\n :disabled=\"disabled\"\n :background=\"background\"\n :layout=\"layout\"\n :total=\"total\"\n @size-change=\"handleSizeChange\"\n @current-change=\"handleCurrentChange\"\n />\n</template>\n"],"names":[],"mappings":";;;;;;;;;uCAIc,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR;;;;;;AAIA,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAA;AAMR,IAAA,MAAA,gBAAA,GAAmB,CAAC,IAAiB,KAAA;AACzC,MAAA,KAAA,CAAM,mBAAmB,IAAI,CAAA,CAAA;AAC7B,MAAA,KAAA,CAAM,YAAY,IAAI,CAAA,CAAA;AAAA,KACxB,CAAA;AAMM,IAAA,MAAA,mBAAA,GAAsB,CAAC,IAAiB,KAAA;AAC5C,MAAA,KAAA,CAAM,sBAAsB,IAAI,CAAA,CAAA;AAChC,MAAA,KAAA,CAAM,eAAe,IAAI,CAAA,CAAA;AAAA,KAC3B,CAAA;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"pagination2.js","sources":["../../../../../../../packages/components/pagination/src/pagination.vue"],"sourcesContent":["<script lang=\"ts\" setup>\r\nimport { paginationEmits, paginationProps } from './pagination'\r\n\r\nconst COMPONENT_NAME = 'MPagination'\r\ndefineOptions({\r\n name: COMPONENT_NAME,\r\n})\r\n\r\ndefineProps(paginationProps)\r\n\r\nconst emits = defineEmits(paginationEmits)\r\n\r\n/**\r\n * 页数变化\r\n * @param size 页大小\r\n */\r\nconst handleSizeChange = (size: number) => {\r\n emits('update:pageSize', size)\r\n emits('pageSize', size)\r\n}\r\n\r\n/**\r\n * 页发生变化\r\n * @param page 页\r\n */\r\nconst handleCurrentChange = (page: number) => {\r\n emits('update:currentPage', page)\r\n emits('currentPage', page)\r\n}\r\n</script>\r\n\r\n<template>\r\n <el-pagination\r\n :current-page=\"currentPage\"\r\n :page-size=\"pageSize\"\r\n :page-sizes=\"pageSizes\"\r\n :small=\"small\"\r\n :disabled=\"disabled\"\r\n :background=\"background\"\r\n :layout=\"layout\"\r\n :total=\"total\"\r\n @size-change=\"handleSizeChange\"\r\n @current-change=\"handleCurrentChange\"\r\n />\r\n</template>\r\n"],"names":["DO_defineComponent"],"mappings":";;;;;;;;;AAIc,MAAA,cAAAA,mBAAA,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR;;;;;;AAIA,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAA;AAMR,IAAA,MAAA,gBAAA,GAAmB,CAAC,IAAiB,KAAA;AACzC,MAAA,KAAA,CAAM,mBAAmB,IAAI,CAAA,CAAA;AAC7B,MAAA,KAAA,CAAM,YAAY,IAAI,CAAA,CAAA;AAAA,KACxB,CAAA;AAMM,IAAA,MAAA,mBAAA,GAAsB,CAAC,IAAiB,KAAA;AAC5C,MAAA,KAAA,CAAM,sBAAsB,IAAI,CAAA,CAAA;AAChC,MAAA,KAAA,CAAM,eAAe,IAAI,CAAA,CAAA;AAAA,KAC3B,CAAA;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var picture$1 = require('./src/picture2.js');
6
- var picture = require('./src/picture.js');
5
+ var picture$1 = require('./src/picture.js');
6
+ var picture = require('./src/picture2.js');
7
7
  var install = require('../../utils/vue/install.js');
8
8
 
9
9
  const MPicture = install.withInstall(picture$1["default"]);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../packages/components/picture/index.ts"],"sourcesContent":["import { withInstall } from '@m-eleplus-crud/utils'\nimport Picture from './src/picture.vue'\nimport type { SFCWithInstall } from '@m-eleplus-crud/utils'\n\nexport const MPicture: SFCWithInstall<typeof Picture> = withInstall(Picture)\nexport default MPicture\n\nexport * from './src/picture'\nexport type { PictureInstance } from './src/instance'\n"],"names":["withInstall","Picture"],"mappings":";;;;;;;;AAIa,MAAA,QAAA,GAA2CA,oBAAYC,oBAAO;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../packages/components/picture/index.ts"],"sourcesContent":["import { withInstall } from '@m-eleplus-crud/utils'\r\nimport Picture from './src/picture.vue'\r\nimport type { SFCWithInstall } from '@m-eleplus-crud/utils'\r\n\r\nexport const MPicture: SFCWithInstall<typeof Picture> = withInstall(Picture)\r\nexport default MPicture\r\n\r\nexport * from './src/picture'\r\nexport type { PictureInstance } from './src/instance'\r\n"],"names":["withInstall","Picture"],"mappings":";;;;;;;;AAIa,MAAA,QAAA,GAA2CA,oBAAYC,oBAAO;;;;;;;"}
@@ -2,28 +2,34 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var runtime = require('../../../utils/vue/props/runtime.js');
5
+ var vue = require('vue');
6
+ var picture = require('./picture2.js');
7
+ var pluginVue_exportHelper = require('../../../../_virtual/plugin-vue_export-helper.js');
6
8
 
7
- const pictureProps = runtime.buildProps({
8
- src: {
9
- type: String,
10
- required: true
11
- },
12
- previewSrcList: {
13
- type: Array,
14
- required: true
15
- },
16
- imgWidth: {
17
- type: String,
18
- default: "70px"
19
- },
20
- imgHeight: {
21
- type: String,
22
- default: "70px"
9
+ const COMPONENT_NAME = "MPicture";
10
+ const __default__ = vue.defineComponent({
11
+ name: COMPONENT_NAME
12
+ });
13
+ const _sfc_main = vue.defineComponent({
14
+ ...__default__,
15
+ props: picture.pictureProps,
16
+ emits: picture.pictureEmits,
17
+ setup(__props) {
18
+ return (_ctx, _cache) => {
19
+ const _component_el_image = vue.resolveComponent("el-image");
20
+ return vue.openBlock(), vue.createElementBlock("div", { class: "m-picture" }, [
21
+ vue.createVNode(_component_el_image, {
22
+ src: _ctx.src,
23
+ "preview-src-list": _ctx.previewSrcList,
24
+ fit: "cover",
25
+ style: vue.normalizeStyle({ width: _ctx.imgWidth, height: _ctx.imgHeight }),
26
+ "preview-teleported": true
27
+ }, null, 8, ["src", "preview-src-list", "style"])
28
+ ]);
29
+ };
23
30
  }
24
31
  });
25
- const pictureEmits = {};
32
+ var Picture = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "picture.vue"]]);
26
33
 
27
- exports.pictureEmits = pictureEmits;
28
- exports.pictureProps = pictureProps;
34
+ exports["default"] = Picture;
29
35
  //# sourceMappingURL=picture.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"picture.js","sources":["../../../../../../../packages/components/picture/src/picture.ts"],"sourcesContent":["import { buildProps } from '@m-eleplus-crud/utils'\n\nimport type { ExtractPropTypes } from 'vue'\n\nexport const pictureProps = buildProps({\n /**\n * @description 图片url资源\n */\n src: {\n type: String,\n required: true,\n },\n /**\n * @description 预览图片url资源集合\n */\n previewSrcList: {\n type: Array,\n required: true,\n },\n /**\n * @description 图片宽度\n */\n imgWidth: {\n type: String,\n default: '70px',\n },\n /**\n * @description 图片高度\n */\n imgHeight: {\n type: String,\n default: '70px',\n },\n} as const)\nexport type PictureProps = ExtractPropTypes<typeof pictureProps>\n\nexport const pictureEmits = {}\nexport type PictureEmits = typeof pictureEmits\n"],"names":["buildProps"],"mappings":";;;;;;AAIO,MAAM,eAAeA,kBAAW,CAAA;AAAA,EAIrC,GAAK,EAAA;AAAA,IACH,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EAIA,cAAgB,EAAA;AAAA,IACd,IAAM,EAAA,KAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EAIA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,MAAA;AAAA,GACX;AAAA,EAIA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,MAAA;AAAA,GACX;AACF,CAAU,EAAA;AAGH,MAAM,eAAe;;;;;"}
1
+ {"version":3,"file":"picture.js","sources":["../../../../../../../packages/components/picture/src/picture.vue"],"sourcesContent":["<template>\r\n <div class=\"m-picture\">\r\n <el-image\r\n :src=\"src\"\r\n :preview-src-list=\"previewSrcList\"\r\n fit=\"cover\"\r\n :style=\"{ width: imgWidth, height: imgHeight }\"\r\n :preview-teleported=\"true\"\r\n />\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { pictureEmits, pictureProps } from './picture'\r\n\r\nconst COMPONENT_NAME = 'MPicture'\r\ndefineOptions({\r\n name: COMPONENT_NAME,\r\n})\r\n\r\ndefineProps(pictureProps)\r\ndefineEmits(pictureEmits)\r\n</script>\r\n"],"names":["DO_defineComponent"],"mappings":";;;;;;;;;AAgBc,MAAA,cAAAA,mBAAA,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,34 +2,28 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var vue = require('vue');
6
- var picture = require('./picture.js');
7
- var pluginVue_exportHelper = require('../../../../_virtual/plugin-vue_export-helper.js');
5
+ var runtime = require('../../../utils/vue/props/runtime.js');
8
6
 
9
- const COMPONENT_NAME = "MPicture";
10
- const __default__ = vue.defineComponent({
11
- name: COMPONENT_NAME
12
- });
13
- const _sfc_main = vue.defineComponent({
14
- ...__default__,
15
- props: picture.pictureProps,
16
- emits: picture.pictureEmits,
17
- setup(__props) {
18
- return (_ctx, _cache) => {
19
- const _component_el_image = vue.resolveComponent("el-image");
20
- return vue.openBlock(), vue.createElementBlock("div", { class: "m-picture" }, [
21
- vue.createVNode(_component_el_image, {
22
- src: _ctx.src,
23
- "preview-src-list": _ctx.previewSrcList,
24
- fit: "cover",
25
- style: vue.normalizeStyle({ width: _ctx.imgWidth, height: _ctx.imgHeight }),
26
- "preview-teleported": true
27
- }, null, 8, ["src", "preview-src-list", "style"])
28
- ]);
29
- };
7
+ const pictureProps = runtime.buildProps({
8
+ src: {
9
+ type: String,
10
+ required: true
11
+ },
12
+ previewSrcList: {
13
+ type: Array,
14
+ required: true
15
+ },
16
+ imgWidth: {
17
+ type: String,
18
+ default: "70px"
19
+ },
20
+ imgHeight: {
21
+ type: String,
22
+ default: "70px"
30
23
  }
31
24
  });
32
- var Picture = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "picture.vue"]]);
25
+ const pictureEmits = {};
33
26
 
34
- exports["default"] = Picture;
27
+ exports.pictureEmits = pictureEmits;
28
+ exports.pictureProps = pictureProps;
35
29
  //# sourceMappingURL=picture2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"picture2.js","sources":["../../../../../../../packages/components/picture/src/picture.vue"],"sourcesContent":["<template>\n <div class=\"m-picture\">\n <el-image\n :src=\"src\"\n :preview-src-list=\"previewSrcList\"\n fit=\"cover\"\n :style=\"{ width: imgWidth, height: imgHeight }\"\n :preview-teleported=\"true\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { pictureEmits, pictureProps } from './picture'\n\nconst COMPONENT_NAME = 'MPicture'\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\ndefineProps(pictureProps)\ndefineEmits(pictureEmits)\n</script>\n"],"names":[],"mappings":";;;;;;;;;uCAgBc,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"picture2.js","sources":["../../../../../../../packages/components/picture/src/picture.ts"],"sourcesContent":["import { buildProps } from '@m-eleplus-crud/utils'\r\n\r\nimport type { ExtractPropTypes } from 'vue'\r\n\r\nexport const pictureProps = buildProps({\r\n /**\r\n * @description 图片url资源\r\n */\r\n src: {\r\n type: String,\r\n required: true,\r\n },\r\n /**\r\n * @description 预览图片url资源集合\r\n */\r\n previewSrcList: {\r\n type: Array,\r\n required: true,\r\n },\r\n /**\r\n * @description 图片宽度\r\n */\r\n imgWidth: {\r\n type: String,\r\n default: '70px',\r\n },\r\n /**\r\n * @description 图片高度\r\n */\r\n imgHeight: {\r\n type: String,\r\n default: '70px',\r\n },\r\n} as const)\r\nexport type PictureProps = ExtractPropTypes<typeof pictureProps>\r\n\r\nexport const pictureEmits = {}\r\nexport type PictureEmits = typeof pictureEmits\r\n"],"names":["buildProps"],"mappings":";;;;;;AAIO,MAAM,eAAeA,kBAAW,CAAA;AAAA,EAIrC,GAAK,EAAA;AAAA,IACH,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EAIA,cAAgB,EAAA;AAAA,IACd,IAAM,EAAA,KAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EAIA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,MAAA;AAAA,GACX;AAAA,EAIA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,MAAA;AAAA,GACX;AACF,CAAU,EAAA;AAGH,MAAM,eAAe;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../packages/components/qrcode/index.ts"],"sourcesContent":["import { withInstall } from '@m-eleplus-crud/utils'\nimport Qrcode from './src/qrcode.vue'\nimport type { SFCWithInstall } from '@m-eleplus-crud/utils'\n\nexport const MQrcode: SFCWithInstall<typeof Qrcode> = withInstall(Qrcode)\nexport default MQrcode\n\nexport * from './src/qrcode'\nexport type { QrcodeInstance } from './src/instance'\n"],"names":["withInstall","Qrcode"],"mappings":";;;;;;;;AAIa,MAAA,OAAA,GAAyCA,oBAAYC,mBAAM;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../packages/components/qrcode/index.ts"],"sourcesContent":["import { withInstall } from '@m-eleplus-crud/utils'\r\nimport Qrcode from './src/qrcode.vue'\r\nimport type { SFCWithInstall } from '@m-eleplus-crud/utils'\r\n\r\nexport const MQrcode: SFCWithInstall<typeof Qrcode> = withInstall(Qrcode)\r\nexport default MQrcode\r\n\r\nexport * from './src/qrcode'\r\nexport type { QrcodeInstance } from './src/instance'\r\n"],"names":["withInstall","Qrcode"],"mappings":";;;;;;;;AAIa,MAAA,OAAA,GAAyCA,oBAAYC,mBAAM;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"qrcode.js","sources":["../../../../../../../packages/components/qrcode/src/qrcode.ts"],"sourcesContent":["import { buildProps, isString } from '@m-eleplus-crud/utils'\n\nimport type { ExtractPropTypes } from 'vue'\n\nexport const qrcodeProps = buildProps({\n /**\n * @description 二维码内容\n */\n text: {\n type: String,\n required: true,\n },\n /**\n * @description 对齐方式\n */\n align: {\n type: String,\n default: 'left',\n },\n /**\n * @description qrcode宽度\n */\n qrcodeWidth: {\n type: Number,\n default: 70,\n },\n /**\n * @description qrcode高度\n */\n qrcodeHeight: {\n type: Number,\n default: 70,\n },\n} as const)\nexport type QrcodeProps = ExtractPropTypes<typeof qrcodeProps>\n\nexport const qrcodeEmits = {\n click: (val: string) => isString(val),\n}\nexport type QrcodeEmits = typeof qrcodeEmits\n"],"names":["buildProps","isString"],"mappings":";;;;;;;AAIO,MAAM,cAAcA,kBAAW,CAAA;AAAA,EAIpC,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EAIA,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,MAAA;AAAA,GACX;AAAA,EAIA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AAAA,EAIA,YAAc,EAAA;AAAA,IACZ,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AACF,CAAU,EAAA;AAGH,MAAM,WAAc,GAAA;AAAA,EACzB,KAAO,EAAA,CAAC,GAAgB,KAAAC,eAAA,CAAS,GAAG,CAAA;AACtC;;;;;"}
1
+ {"version":3,"file":"qrcode.js","sources":["../../../../../../../packages/components/qrcode/src/qrcode.ts"],"sourcesContent":["import { buildProps, isString } from '@m-eleplus-crud/utils'\r\n\r\nimport type { ExtractPropTypes } from 'vue'\r\n\r\nexport const qrcodeProps = buildProps({\r\n /**\r\n * @description 二维码内容\r\n */\r\n text: {\r\n type: String,\r\n required: true,\r\n },\r\n /**\r\n * @description 对齐方式\r\n */\r\n align: {\r\n type: String,\r\n default: 'left',\r\n },\r\n /**\r\n * @description qrcode宽度\r\n */\r\n qrcodeWidth: {\r\n type: Number,\r\n default: 70,\r\n },\r\n /**\r\n * @description qrcode高度\r\n */\r\n qrcodeHeight: {\r\n type: Number,\r\n default: 70,\r\n },\r\n} as const)\r\nexport type QrcodeProps = ExtractPropTypes<typeof qrcodeProps>\r\n\r\nexport const qrcodeEmits = {\r\n click: (val: string) => isString(val),\r\n}\r\nexport type QrcodeEmits = typeof qrcodeEmits\r\n"],"names":["buildProps","isString"],"mappings":";;;;;;;AAIO,MAAM,cAAcA,kBAAW,CAAA;AAAA,EAIpC,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EAIA,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,MAAA;AAAA,GACX;AAAA,EAIA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AAAA,EAIA,YAAc,EAAA;AAAA,IACZ,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AACF,CAAU,EAAA;AAGH,MAAM,WAAc,GAAA;AAAA,EACzB,KAAO,EAAA,CAAC,GAAgB,KAAAC,eAAA,CAAS,GAAG,CAAA;AACtC;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"qrcode2.js","sources":["../../../../../../../packages/components/qrcode/src/qrcode.vue"],"sourcesContent":["<template>\n <div\n ref=\"qrcodeRef\"\n class=\"m-qrcode-box\"\n :style=\"'justify-content: ' + alignComputed\"\n />\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref, watch } from 'vue'\n// @ts-ignore\nimport Qrcode from 'qrcodejs2-fix'\nimport { qrcodeEmits, qrcodeProps } from './qrcode'\n\nconst COMPONENT_NAME = 'MQrcode'\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\nconst props = defineProps(qrcodeProps)\nconst emit = defineEmits(qrcodeEmits)\n\nconst qrcodeRef = ref<any>()\n\nconst alignComputed = computed(() => {\n if (!props.align || props.align === 'left') {\n return 'flex-start'\n }\n if (props.align === 'right') {\n return 'flex-end'\n }\n return 'center'\n})\n\nwatch(\n () => props.text as string,\n (newVal: string) => {\n if (!newVal) return\n setTimeout(() => {\n qrcodeRef.value.innerHTML = ''\n new Qrcode(qrcodeRef.value, {\n text: newVal,\n width: props.qrcodeWidth,\n height: props.qrcodeHeight,\n })\n const img = qrcodeRef.value.querySelector('img')\n img.onclick = () => {\n emit('click', newVal)\n }\n }, 0)\n },\n {\n immediate: true,\n }\n)\n</script>\n"],"names":["ref","computed","watch","Qrcode"],"mappings":";;;;;;;;;;;;;;uCAec,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR;;;;;;AAEA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAEb,IAAA,MAAM,YAAYA,OAAS,EAAA,CAAA;AAErB,IAAA,MAAA,aAAA,GAAgBC,aAAS,MAAM;AACnC,MAAA,IAAI,CAAC,KAAA,CAAM,KAAS,IAAA,KAAA,CAAM,UAAU,MAAQ,EAAA;AACnC,QAAA,OAAA,YAAA,CAAA;AAAA,OACT;AACI,MAAA,IAAA,KAAA,CAAM,UAAU,OAAS,EAAA;AACpB,QAAA,OAAA,UAAA,CAAA;AAAA,OACT;AACO,MAAA,OAAA,QAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAED,IAAAC,SAAA;AAAA,MACE,MAAM,KAAM,CAAA,IAAA;AAAA,MACZ,CAAC,MAAmB,KAAA;AAClB,QAAA,IAAI,CAAC,MAAA;AAAQ,UAAA,OAAA;AACb,QAAA,UAAA,CAAW,MAAM;AACf,UAAA,SAAA,CAAU,MAAM,SAAY,GAAA,EAAA,CAAA;AACxB,UAAA,IAAAC,0BAAA,CAAO,UAAU,KAAO,EAAA;AAAA,YAC1B,IAAM,EAAA,MAAA;AAAA,YACN,OAAO,KAAM,CAAA,WAAA;AAAA,YACb,QAAQ,KAAM,CAAA,YAAA;AAAA,WACf,CAAA,CAAA;AACD,UAAA,MAAM,GAAM,GAAA,SAAA,CAAU,KAAM,CAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AAC/C,UAAA,GAAA,CAAI,UAAU,MAAM;AAClB,YAAA,IAAA,CAAK,SAAS,MAAM,CAAA,CAAA;AAAA,WACtB,CAAA;AAAA,WACC,CAAC,CAAA,CAAA;AAAA,OACN;AAAA,MACA;AAAA,QACE,SAAW,EAAA,IAAA;AAAA,OACb;AAAA,KACF,CAAA;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"qrcode2.js","sources":["../../../../../../../packages/components/qrcode/src/qrcode.vue"],"sourcesContent":["<template>\r\n <div\r\n ref=\"qrcodeRef\"\r\n class=\"m-qrcode-box\"\r\n :style=\"'justify-content: ' + alignComputed\"\r\n />\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { computed, ref, watch } from 'vue'\r\n// @ts-ignore\r\nimport Qrcode from 'qrcodejs2-fix'\r\nimport { qrcodeEmits, qrcodeProps } from './qrcode'\r\n\r\nconst COMPONENT_NAME = 'MQrcode'\r\ndefineOptions({\r\n name: COMPONENT_NAME,\r\n})\r\n\r\nconst props = defineProps(qrcodeProps)\r\nconst emit = defineEmits(qrcodeEmits)\r\n\r\nconst qrcodeRef = ref<any>()\r\n\r\nconst alignComputed = computed(() => {\r\n if (!props.align || props.align === 'left') {\r\n return 'flex-start'\r\n }\r\n if (props.align === 'right') {\r\n return 'flex-end'\r\n }\r\n return 'center'\r\n})\r\n\r\nwatch(\r\n () => props.text as string,\r\n (newVal: string) => {\r\n if (!newVal) return\r\n setTimeout(() => {\r\n qrcodeRef.value.innerHTML = ''\r\n new Qrcode(qrcodeRef.value, {\r\n text: newVal,\r\n width: props.qrcodeWidth,\r\n height: props.qrcodeHeight,\r\n })\r\n const img = qrcodeRef.value.querySelector('img')\r\n img.onclick = () => {\r\n emit('click', newVal)\r\n }\r\n }, 0)\r\n },\r\n {\r\n immediate: true,\r\n }\r\n)\r\n</script>\r\n"],"names":["DO_defineComponent","ref","computed","watch","Qrcode"],"mappings":";;;;;;;;;;;;;;AAec,MAAA,cAAAA,mBAAA,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR;;;;;;AAEA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAEb,IAAA,MAAM,YAAYC,OAAS,EAAA,CAAA;AAErB,IAAA,MAAA,aAAA,GAAgBC,aAAS,MAAM;AACnC,MAAA,IAAI,CAAC,KAAA,CAAM,KAAS,IAAA,KAAA,CAAM,UAAU,MAAQ,EAAA;AACnC,QAAA,OAAA,YAAA,CAAA;AAAA,OACT;AACI,MAAA,IAAA,KAAA,CAAM,UAAU,OAAS,EAAA;AACpB,QAAA,OAAA,UAAA,CAAA;AAAA,OACT;AACO,MAAA,OAAA,QAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAED,IAAAC,SAAA;AAAA,MACE,MAAM,KAAM,CAAA,IAAA;AAAA,MACZ,CAAC,MAAmB,KAAA;AAClB,QAAA,IAAI,CAAC,MAAA;AAAQ,UAAA,OAAA;AACb,QAAA,UAAA,CAAW,MAAM;AACf,UAAA,SAAA,CAAU,MAAM,SAAY,GAAA,EAAA,CAAA;AACxB,UAAA,IAAAC,0BAAA,CAAO,UAAU,KAAO,EAAA;AAAA,YAC1B,IAAM,EAAA,MAAA;AAAA,YACN,OAAO,KAAM,CAAA,WAAA;AAAA,YACb,QAAQ,KAAM,CAAA,YAAA;AAAA,WACf,CAAA,CAAA;AACD,UAAA,MAAM,GAAM,GAAA,SAAA,CAAU,KAAM,CAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AAC/C,UAAA,GAAA,CAAI,UAAU,MAAM;AAClB,YAAA,IAAA,CAAK,SAAS,MAAM,CAAA,CAAA;AAAA,WACtB,CAAA;AAAA,WACC,CAAC,CAAA,CAAA;AAAA,OACN;AAAA,MACA;AAAA,QACE,SAAW,EAAA,IAAA;AAAA,OACb;AAAA,KACF,CAAA;;;;;;;;;;;;;;;;;;;;"}
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var search$1 = require('./src/search.js');
6
- var search = require('./src/search2.js');
5
+ var search$1 = require('./src/search2.js');
6
+ var search = require('./src/search.js');
7
7
  var install = require('../../utils/vue/install.js');
8
8
 
9
9
  const MSearch = install.withInstall(search$1["default"]);