m-eleplus-crud 0.0.11 → 0.0.13

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 (90) hide show
  1. package/dist/index.full.js +13 -2
  2. package/dist/index.full.min.js +5 -5
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +6 -6
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +13 -2
  7. package/es/components/crud/src/crud.d.ts +8 -0
  8. package/es/components/form/src/form.d.ts +4 -0
  9. package/es/components/search/src/search.d.ts +4 -0
  10. package/es/index.mjs +6 -6
  11. package/es/packages/components/barcode/index.mjs +2 -2
  12. package/es/packages/components/barcode/src/barcode.mjs +53 -18
  13. package/es/packages/components/barcode/src/barcode.mjs.map +1 -1
  14. package/es/packages/components/barcode/src/barcode2.mjs +18 -53
  15. package/es/packages/components/barcode/src/barcode2.mjs.map +1 -1
  16. package/es/packages/components/crud/src/crud.mjs.map +1 -1
  17. package/es/packages/components/crud/src/crud2.mjs +10 -0
  18. package/es/packages/components/crud/src/crud2.mjs.map +1 -1
  19. package/es/packages/components/dialog/index.mjs +2 -2
  20. package/es/packages/components/dialog/src/dialog.mjs +116 -75
  21. package/es/packages/components/dialog/src/dialog.mjs.map +1 -1
  22. package/es/packages/components/dialog/src/dialog2.mjs +75 -116
  23. package/es/packages/components/dialog/src/dialog2.mjs.map +1 -1
  24. package/es/packages/components/form/src/form.mjs +1 -1
  25. package/es/packages/components/form/src/form.mjs.map +1 -1
  26. package/es/packages/components/form/src/form2.mjs.map +1 -1
  27. package/es/packages/components/index.mjs +6 -6
  28. package/es/packages/components/pagination/index.mjs +2 -2
  29. package/es/packages/components/pagination/src/pagination.mjs +41 -38
  30. package/es/packages/components/pagination/src/pagination.mjs.map +1 -1
  31. package/es/packages/components/pagination/src/pagination2.mjs +38 -41
  32. package/es/packages/components/pagination/src/pagination2.mjs.map +1 -1
  33. package/es/packages/components/qrcode/index.mjs +2 -2
  34. package/es/packages/components/qrcode/src/qrcode.mjs +62 -22
  35. package/es/packages/components/qrcode/src/qrcode.mjs.map +1 -1
  36. package/es/packages/components/qrcode/src/qrcode2.mjs +22 -62
  37. package/es/packages/components/qrcode/src/qrcode2.mjs.map +1 -1
  38. package/es/packages/components/search/index.mjs +2 -2
  39. package/es/packages/components/search/src/search.mjs +438 -25
  40. package/es/packages/components/search/src/search.mjs.map +1 -1
  41. package/es/packages/components/search/src/search2.mjs +25 -437
  42. package/es/packages/components/search/src/search2.mjs.map +1 -1
  43. package/es/packages/components/table/index.mjs +2 -2
  44. package/es/packages/components/table/src/table.mjs +37 -420
  45. package/es/packages/components/table/src/table.mjs.map +1 -1
  46. package/es/packages/components/table/src/table2.mjs +420 -37
  47. package/es/packages/components/table/src/table2.mjs.map +1 -1
  48. package/lib/components/crud/src/crud.d.ts +8 -0
  49. package/lib/components/form/src/form.d.ts +4 -0
  50. package/lib/components/search/src/search.d.ts +4 -0
  51. package/lib/index.js +6 -6
  52. package/lib/packages/components/barcode/index.js +2 -2
  53. package/lib/packages/components/barcode/src/barcode.js +57 -19
  54. package/lib/packages/components/barcode/src/barcode.js.map +1 -1
  55. package/lib/packages/components/barcode/src/barcode2.js +19 -57
  56. package/lib/packages/components/barcode/src/barcode2.js.map +1 -1
  57. package/lib/packages/components/crud/src/crud.js.map +1 -1
  58. package/lib/packages/components/crud/src/crud2.js +10 -0
  59. package/lib/packages/components/crud/src/crud2.js.map +1 -1
  60. package/lib/packages/components/dialog/index.js +2 -2
  61. package/lib/packages/components/dialog/src/dialog.js +116 -76
  62. package/lib/packages/components/dialog/src/dialog.js.map +1 -1
  63. package/lib/packages/components/dialog/src/dialog2.js +76 -116
  64. package/lib/packages/components/dialog/src/dialog2.js.map +1 -1
  65. package/lib/packages/components/form/src/form.js +1 -1
  66. package/lib/packages/components/form/src/form.js.map +1 -1
  67. package/lib/packages/components/form/src/form2.js.map +1 -1
  68. package/lib/packages/components/index.js +6 -6
  69. package/lib/packages/components/pagination/index.js +2 -2
  70. package/lib/packages/components/pagination/src/pagination.js +42 -38
  71. package/lib/packages/components/pagination/src/pagination.js.map +1 -1
  72. package/lib/packages/components/pagination/src/pagination2.js +38 -42
  73. package/lib/packages/components/pagination/src/pagination2.js.map +1 -1
  74. package/lib/packages/components/qrcode/index.js +2 -2
  75. package/lib/packages/components/qrcode/src/qrcode.js +66 -23
  76. package/lib/packages/components/qrcode/src/qrcode.js.map +1 -1
  77. package/lib/packages/components/qrcode/src/qrcode2.js +23 -66
  78. package/lib/packages/components/qrcode/src/qrcode2.js.map +1 -1
  79. package/lib/packages/components/search/index.js +2 -2
  80. package/lib/packages/components/search/src/search.js +438 -26
  81. package/lib/packages/components/search/src/search.js.map +1 -1
  82. package/lib/packages/components/search/src/search2.js +26 -437
  83. package/lib/packages/components/search/src/search2.js.map +1 -1
  84. package/lib/packages/components/table/index.js +2 -2
  85. package/lib/packages/components/table/src/table.js +38 -425
  86. package/lib/packages/components/table/src/table.js.map +1 -1
  87. package/lib/packages/components/table/src/table2.js +425 -38
  88. package/lib/packages/components/table/src/table2.js.map +1 -1
  89. package/package.json +1 -1
  90. package/web-types.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sources":["../../../../../../../packages/components/search/src/search.ts"],"sourcesContent":["import { ICommonColumn } from '@m-eleplus-crud/components/common'\r\nimport { useSizeProp } from '@m-eleplus-crud/hooks'\r\nimport { buildProps, definePropType, isObject } from '@m-eleplus-crud/utils'\r\n\r\nimport { ColumnType } from '../../common'\r\nimport type { ExtractPropTypes } from 'vue'\r\nimport type { FormItemRule } from 'element-plus'\r\n\r\n/**\r\n * @description 公开的search column配置\r\n */\r\nexport interface ISearchCommonColumn {\r\n /**\r\n * @description label宽度\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 rules?: FormItemRule[]\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 搜索默认值\r\n */\r\n value?: any\r\n /**\r\n * @description 输入框占位文本\r\n */\r\n placeholder?: string\r\n}\r\n\r\n/**\r\n * @description 搜索列配置\r\n */\r\nexport interface ISearchColumn extends ICommonColumn, ISearchCommonColumn {\r\n /**\r\n * @description 类型\r\n */\r\n type?: ColumnType\r\n}\r\n\r\n/**\r\n * @description 公开的search配置\r\n */\r\nexport interface ISearchCommonOption {\r\n /**\r\n * @description 搜索按钮文本\r\n */\r\n searchBtnText?: string\r\n /**\r\n * @description 重置按钮文本\r\n */\r\n resetBtnText?: string\r\n /**\r\n * @description 搜索按钮icon\r\n */\r\n searchBtnIcon?: string\r\n /**\r\n * @description 重置按钮icon\r\n */\r\n resetBtnIcon?: string\r\n /**\r\n * @description label宽度\r\n */\r\n labelWidth?: string\r\n /**\r\n * @description 收缩展示个数\r\n */\r\n colIndex?: number\r\n /**\r\n * @description 是否开启收缩\r\n */\r\n col?: boolean\r\n}\r\n\r\n/**\r\n * @description 搜索信息配置\r\n */\r\nexport interface ISearchOption extends ISearchCommonOption {\r\n /**\r\n * @description 搜索列配置\r\n */\r\n column: ISearchColumn[]\r\n}\r\n\r\nexport const searchProps = 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 permission: {\r\n type: Object,\r\n default: {},\r\n },\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 option: {\r\n type: definePropType<ISearchOption>(Object),\r\n required: false,\r\n },\r\n} as const)\r\nexport type SearchProps = ExtractPropTypes<typeof searchProps>\r\n\r\nexport const searchEmits = {\r\n /**\r\n * 搜索\r\n * @param model 搜索表单数据\r\n * @returns\r\n */\r\n search: (model: any) => isObject(model),\r\n /**\r\n * 重置\r\n * @returns\r\n */\r\n reset: () => true,\r\n}\r\nexport type SearchEmits = typeof searchEmits\r\n"],"names":["buildProps","useSizeProp","definePropType","isObject"],"mappings":";;;;;;;;AAgGO,MAAM,cAAcA,kBAAW,CAAA;AAAA,EAIpC,IAAM,EAAAC,iBAAA;AAAA,EAIN,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,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EAIA,MAAQ,EAAA;AAAA,IACN,IAAA,EAAMC,uBAA8B,MAAM,CAAA;AAAA,IAC1C,QAAU,EAAA,KAAA;AAAA,GACZ;AACF,CAAU,EAAA;AAGH,MAAM,WAAc,GAAA;AAAA,EAMzB,MAAQ,EAAA,CAAC,KAAe,KAAAC,eAAA,CAAS,KAAK,CAAA;AAAA,EAKtC,OAAO,MAAM,IAAA;AACf;;;;;"}
1
+ {"version":3,"file":"search.js","sources":["../../../../../../../packages/components/search/src/search.vue"],"sourcesContent":["<script lang=\"ts\" setup>\r\nimport { ref, useSlots, watch } from 'vue'\r\nimport { cloneDeep, get, set } from 'lodash-unified'\r\nimport { useLocale } from '@m-eleplus-crud/hooks'\r\nimport { useGlobalConfig } from '@m-eleplus-crud/components'\r\nimport { debugWarn } from '@m-eleplus-crud/utils'\r\nimport { searchEmits, searchProps } from './search'\r\nimport type { ISearchColumn, ISearchOption } from './search'\r\n\r\nimport type { FormInstance } from 'element-plus'\r\n\r\nconst COMPONENT_NAME = 'MSearch'\r\ndefineOptions({\r\n name: COMPONENT_NAME,\r\n})\r\n\r\nconst props = defineProps(searchProps)\r\nconst emit = defineEmits(searchEmits)\r\n\r\n// 插槽信息\r\nconst slots = useSlots() as any\r\n\r\n// 国际化\r\nconst { t } = useLocale()\r\n\r\n// 输入框类型\r\nconst INPUT_TYPES = ['input', 'textarea', 'number', 'password']\r\n\r\n// 下拉选择类型\r\nconst SELECT_TYPES = ['select', 'checkbox', 'radio', 'switch']\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\nconst searchOption = ref<ISearchOption>({\r\n searchBtnText: t('m.search.searchBtnText'),\r\n resetBtnText: t('m.search.resetBtnText'),\r\n // 搜索按钮默认Search图标\r\n searchBtnIcon: 'Search',\r\n // 重置按钮默认Delete图标\r\n resetBtnIcon: 'Delete',\r\n // 默认label宽度80px\r\n labelWidth: '80px',\r\n // 默认展示3个\r\n colIndex: 3,\r\n // 默认不折叠\r\n col: false,\r\n // 搜索列配置\r\n column: [],\r\n})\r\n\r\n// 表单ref\r\nconst formRef = ref<FormInstance>()\r\n\r\n// 全局配置\r\nconst globalConfig = useGlobalConfig()\r\n\r\n// 搜索选项折叠\r\nconst searchCol = ref(true)\r\n\r\n// 代理model\r\nconst proxys: any = 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 * 初始化搜索表单的值\r\n */\r\nconst initValue = () => {\r\n // 初始化搜索表单的值\r\n if (searchOption.value && searchOption.value.column) {\r\n for (let i = 0; i < searchOption.value.column?.length; i++) {\r\n const column = searchOption.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 * @param page 第一页\r\n */\r\nconst search = (page = 1) => {\r\n if (searchOption.value.column && searchOption.value.column.length) {\r\n formRef.value?.validate((valid) => {\r\n if (valid) {\r\n // 搜索从第一页开始搜索,也支持传入页码\r\n if (proxys.page) {\r\n proxys.page = page\r\n }\r\n // emit搜索事件 如果非第一页,自动重置第一页\r\n emit('search', proxys)\r\n }\r\n })\r\n } else {\r\n // 搜索从第一页开始搜索,也支持传入页码\r\n if (proxys.page) {\r\n proxys.page = page\r\n }\r\n // emit搜索事件 如果非第一页,自动重置第一页\r\n emit('search', proxys)\r\n }\r\n}\r\n\r\n/**\r\n * 重置搜索\r\n */\r\nconst reset = () => {\r\n // 重置分页参数\r\n if (proxys.page) {\r\n proxys.page = 1\r\n }\r\n if (proxys.limit) {\r\n proxys.limit = 10\r\n }\r\n // 清空搜索表单的字段\r\n formRef.value?.resetFields()\r\n // emit重置事件\r\n emit('reset')\r\n}\r\n\r\n/**\r\n * 展开/折叠搜索\r\n */\r\nconst toggleCol = () => {\r\n searchCol.value = !searchCol.value\r\n}\r\n\r\n/**\r\n * 处理需要远程获取字典的配置\r\n */\r\nconst getAllRemoteDics = () => {\r\n const hasDicUrl = searchOption.value?.column?.some((column) => column.dicUrl)\r\n if (hasDicUrl && !globalConfig.value?.httpGet) {\r\n debugWarn('MSearch', '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: ISearchColumn) => {\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 < (searchOption.value?.column || []).length; i++) {\r\n // @ts-ignore\r\n const column = searchOption.value.column[i]\r\n if (column.dicUrl) {\r\n if (!column.dicFormatter) {\r\n debugWarn('MSearch', '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 arr 下拉框数据\r\n */\r\nconst wrapSelectData = (arr: any) => {\r\n if (!arr) {\r\n return []\r\n }\r\n return [{ label: '全部', value: '' }, ...arr]\r\n}\r\n\r\n\r\n/**\r\n * @description 监听搜索列的变化\r\n */\r\nwatch(\r\n () => props.option as ISearchOption,\r\n (newVal: ISearchOption) => {\r\n if (newVal) {\r\n searchOption.value = Object.assign({}, searchOption.value, newVal)\r\n if (newVal.column) {\r\n searchOption.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 // 处理远程字典的配置\r\n getAllRemoteDics()\r\n // 初始化搜索表单的值\r\n initValue()\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 search,\r\n /**\r\n * @description 重置方法\r\n */\r\n reset,\r\n})\r\n</script>\r\n\r\n<template>\r\n <div\r\n v-if=\"searchOption.column && searchOption.column.length\"\r\n class=\"m-search\"\r\n >\r\n <el-form\r\n ref=\"formRef\"\r\n :inline=\"true\"\r\n :model=\"proxys\"\r\n :size=\"size || globalConfig.size\"\r\n :disabled=\"loading\"\r\n :label-width=\"searchOption.labelWidth\"\r\n @submit.prevent\r\n >\r\n <el-row :gutter=\"0\">\r\n <template\r\n v-for=\"(column, columnIndex) in searchOption.column\"\r\n :key=\"columnIndex\"\r\n >\r\n <el-col\r\n v-if=\"\r\n !searchOption.col ||\r\n !searchCol ||\r\n columnIndex < (searchOption.colIndex || 3)\r\n \"\r\n :span=\"column.span || 6\"\r\n >\r\n <el-form-item\r\n style=\"width: 100%\"\r\n :label-width=\"column.labelWidth || searchOption.labelWidth\"\r\n :label=\"column.label + ':'\"\r\n :prop=\"column.prop\"\r\n :rules=\"column.rules\"\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 <template\r\n v-else-if=\"!column.type || INPUT_TYPES.includes(column.type)\"\r\n >\r\n <el-input\r\n v-model.trim=\"proxys[column.prop || '']\"\r\n :placeholder=\"column.placeholder\"\r\n style=\"width: 100%\"\r\n type=\"text\"\r\n @keyup.enter=\"search(1)\"\r\n />\r\n </template>\r\n <!---->\r\n <!--单选/多选-->\r\n <template\r\n v-else-if=\"SELECT_TYPES.includes(column.type as string)\"\r\n >\r\n <el-select\r\n v-model=\"proxys[column.prop || '']\"\r\n style=\"width: 100%\"\r\n :placeholder=\"column.placeholder\"\r\n :multiple=\"column.multiple || column.type === 'checkbox'\"\r\n :clearable=\"column.clearable === undefined ? true : column.clearable\"\r\n :empty-values=\"[null, undefined]\"\r\n >\r\n <el-option\r\n v-for=\"(dicItem, dicIndex) in wrapSelectData(column.dicData)\"\r\n :key=\"dicIndex\"\r\n :label=\"dicItem.label\"\r\n :value=\"dicItem.value\"\r\n />\r\n </el-select>\r\n </template>\r\n <!---->\r\n <!--时间选择-->\r\n <template v-else-if=\"DATE_TYPES.includes(column.type as string)\">\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 />\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 />\r\n </template>\r\n </el-form-item>\r\n </el-col>\r\n </template>\r\n <el-col :span=\"6\">\r\n <el-form-item class=\"m-search-btns\" style=\"width: 100%\">\r\n <el-button\r\n type=\"primary\"\r\n :icon=\"searchOption.searchBtnIcon\"\r\n :loading=\"loading\"\r\n @click=\"search(1)\"\r\n >\r\n {{ searchOption.searchBtnText }}\r\n </el-button>\r\n <el-button\r\n type=\"default\"\r\n :icon=\"searchOption.resetBtnIcon\"\r\n :loading=\"loading\"\r\n @click=\"reset\"\r\n >\r\n {{ searchOption.resetBtnText }}\r\n </el-button>\r\n <el-link\r\n v-if=\"searchOption.col\"\r\n style=\"width: 54px; margin-left: 12px\"\r\n underline=\"never\"\r\n :disabled=\"loading\"\r\n type=\"default\"\r\n @click=\"toggleCol\"\r\n >\r\n <el-icon style=\"margin-right: 6px\">\r\n <ArrowDown v-if=\"searchCol\" />\r\n <ArrowUp v-else />\r\n </el-icon>\r\n {{ searchCol ? t('m.search.expandBtn') : t('m.search.colBtn') }}\r\n </el-link>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n </div>\r\n</template>\r\n"],"names":["DO_defineComponent","useSlots","useLocale","ref","useGlobalConfig","get","set","debugWarn","watch","cloneDeep"],"mappings":";;;;;;;;;;;;;AAYc,MAAA,cAAAA,mBAAA,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR;;;;;;AAEA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAGb,IAAA,MAAM,QAAQC,YAAS,EAAA,CAAA;AAGjB,IAAA,MAAA,EAAE,CAAE,EAAA,GAAIC,eAAU,EAAA,CAAA;AAGxB,IAAA,MAAM,WAAc,GAAA,CAAC,OAAS,EAAA,UAAA,EAAY,UAAU,UAAU,CAAA,CAAA;AAG9D,IAAA,MAAM,YAAe,GAAA,CAAC,QAAU,EAAA,UAAA,EAAY,SAAS,QAAQ,CAAA,CAAA;AAG7D,IAAA,MAAM,UAAa,GAAA;AAAA,MACjB,MAAA;AAAA,MACA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,eAAA;AAAA,MACA,WAAA;AAAA,MACA,YAAA;AAAA,MACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,WAAA;AAAA,KACF,CAAA;AAEA,IAAA,MAAM,eAAeC,OAAmB,CAAA;AAAA,MACtC,aAAA,EAAe,EAAE,wBAAwB,CAAA;AAAA,MACzC,YAAA,EAAc,EAAE,uBAAuB,CAAA;AAAA,MAEvC,aAAe,EAAA,QAAA;AAAA,MAEf,YAAc,EAAA,QAAA;AAAA,MAEd,UAAY,EAAA,MAAA;AAAA,MAEZ,QAAU,EAAA,CAAA;AAAA,MAEV,GAAK,EAAA,KAAA;AAAA,MAEL,QAAQ,EAAC;AAAA,KACV,CAAA,CAAA;AAGD,IAAA,MAAM,UAAUA,OAAkB,EAAA,CAAA;AAGlC,IAAA,MAAM,eAAeC,+BAAgB,EAAA,CAAA;AAG/B,IAAA,MAAA,SAAA,GAAYD,QAAI,IAAI,CAAA,CAAA;AAG1B,IAAA,MAAM,MAAc,GAAA,IAAI,KAAM,CAAA,KAAA,CAAM,KAAc,EAAA;AAAA,MAChD,GAAA,CAAI,QAAQ,QAAU,EAAA;AACb,QAAA,OAAAE,iBAAA,CAAI,QAAQ,QAAQ,CAAA,CAAA;AAAA,OAC7B;AAAA,MACA,GAAA,CAAI,MAAQ,EAAA,QAAA,EAAU,KAAO,EAAA;AACvB,QAAAC,iBAAA,CAAA,MAAA,EAAQ,UAAU,KAAK,CAAA,CAAA;AACpB,QAAA,OAAA,IAAA,CAAA;AAAA,OACT;AAAA,KACD,CAAA,CAAA;AAKD,IAAA,MAAM,YAAY,MAAM;;AAEtB,MAAA,IAAI,YAAa,CAAA,KAAA,IAAS,YAAa,CAAA,KAAA,CAAM,MAAQ,EAAA;AACnD,QAAS,KAAA,IAAA,CAAA,GAAI,GAAG,CAAI,IAAA,CAAA,EAAA,GAAA,YAAA,CAAa,MAAM,MAAnB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAA2B,SAAQ,CAAK,EAAA,EAAA;AAC1D,UAAM,MAAA,MAAA,GAAS,YAAa,CAAA,KAAA,CAAM,MAAO,CAAA,CAAA,CAAA,CAAA;AACzC,UAAA,IAAI,MAAO,CAAA,IAAA,IAAQ,MAAO,CAAA,MAAA,CAAO,UAAU,KAAW,CAAA,EAAA;AACpD,YAAA,IAAI,OAAO,KAAO,EAAA;AACT,cAAA,MAAA,CAAA,MAAA,CAAO,QAAQ,MAAO,CAAA,KAAA,CAAA;AAAA,aACxB,MAAA;AACL,cAAA,MAAM,SAAY,GAAA;AAAA,gBAChB,UAAA;AAAA,gBACA,eAAA;AAAA,gBACA,WAAA;AAAA,gBACA,YAAA;AAAA,gBACA,WAAA;AAAA,gBACA,WAAA;AAAA,eACF,CAAA;AAEG,cAAA,IAAA,MAAA,CAAO,IAAS,KAAA,QAAA,IAAY,MAAO,CAAA,QAAA,IACpC,UAAU,QAAS,CAAA,MAAA,CAAO,IAAQ,IAAA,EAAE,CACpC,EAAA;AACO,gBAAA,MAAA,CAAA,MAAA,CAAO,QAAQ,EAAC,CAAA;AAAA,eAClB,MAAA;AACE,gBAAA,MAAA,CAAA,OAAO,IAAQ,CAAA,GAAA,EAAA,CAAA;AAAA,eACxB;AAAA,aACF;AAAA,WACF;AAAA,SACF;AAAA,OACF;AAAA,KACF,CAAA;AAMM,IAAA,MAAA,oBAAA,GAAuB,CAAC,IAAiB,KAAA;AAC7C,MAAA,IAAI,MAAS,GAAA,EAAA,CAAA;AACb,MAAQ,QAAA,IAAA;AAAA,QACD,KAAA,WAAA,CAAA;AAAA,QACA,KAAA,MAAA;AACM,UAAA,MAAA,GAAA,MAAA,CAAA;AACT,UAAA,MAAA;AAAA,QACG,KAAA,YAAA,CAAA;AAAA,QACA,KAAA,OAAA;AACM,UAAA,MAAA,GAAA,SAAA,CAAA;AACT,UAAA,MAAA;AAAA,QACG,KAAA,WAAA,CAAA;AAAA,QACA,KAAA,MAAA,CAAA;AAAA,QACA,KAAA,MAAA;AACM,UAAA,MAAA,GAAA,YAAA,CAAA;AACT,UAAA,MAAA;AAAA,QACG,KAAA,eAAA,CAAA;AAAA,QACA,KAAA,UAAA;AACM,UAAA,MAAA,GAAA,qBAAA,CAAA;AACT,UAAA,MAAA;AAAA,QACG,KAAA,MAAA;AACM,UAAA,MAAA,GAAA,UAAA,CAAA;AACT,UAAA,MAAA;AAAA,OAAA;AAEG,MAAA,OAAA,MAAA,CAAA;AAAA,KACT,CAAA;AAMM,IAAA,MAAA,MAAA,GAAS,CAAC,IAAA,GAAO,CAAM,KAAA;;AAC3B,MAAA,IAAI,aAAa,KAAM,CAAA,MAAA,IAAU,YAAa,CAAA,KAAA,CAAM,OAAO,MAAQ,EAAA;AACzD,QAAA,CAAA,EAAA,GAAA,OAAA,CAAA,KAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAO,QAAS,CAAA,CAAC,KAAU,KAAA;AACjC,UAAA,IAAI,KAAO,EAAA;AAET,YAAA,IAAI,OAAO,IAAM,EAAA;AACf,cAAA,MAAA,CAAO,IAAO,GAAA,IAAA,CAAA;AAAA,aAChB;AAEA,YAAA,IAAA,CAAK,UAAU,MAAM,CAAA,CAAA;AAAA,WACvB;AAAA,SACF,CAAA,CAAA;AAAA,OACK,MAAA;AAEL,QAAA,IAAI,OAAO,IAAM,EAAA;AACf,UAAA,MAAA,CAAO,IAAO,GAAA,IAAA,CAAA;AAAA,SAChB;AAEA,QAAA,IAAA,CAAK,UAAU,MAAM,CAAA,CAAA;AAAA,OACvB;AAAA,KACF,CAAA;AAKA,IAAA,MAAM,QAAQ,MAAM;;AAElB,MAAA,IAAI,OAAO,IAAM,EAAA;AACf,QAAA,MAAA,CAAO,IAAO,GAAA,CAAA,CAAA;AAAA,OAChB;AACA,MAAA,IAAI,OAAO,KAAO,EAAA;AAChB,QAAA,MAAA,CAAO,KAAQ,GAAA,EAAA,CAAA;AAAA,OACjB;AAEA,MAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,UAAR,IAAe,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAA,EAAA,CAAA;AAEf,MAAA,IAAA,CAAK,OAAO,CAAA,CAAA;AAAA,KACd,CAAA;AAKA,IAAA,MAAM,YAAY,MAAM;AACZ,MAAA,SAAA,CAAA,KAAA,GAAQ,CAAC,SAAU,CAAA,KAAA,CAAA;AAAA,KAC/B,CAAA;AAKA,IAAA,MAAM,mBAAmB,MAAM;;AACvB,MAAA,MAAA,SAAA,GAAA,CAAY,wBAAa,KAAb,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAoB,WAApB,IAA4B,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAK,CAAC,MAAA,KAAW,MAAO,CAAA,MAAA,CAAA,CAAA;AACtE,MAAA,IAAI,SAAa,IAAA,EAAA,CAAC,EAAa,GAAA,YAAA,CAAA,KAAA,KAAb,mBAAoB,OAAS,CAAA,EAAA;AAC7C,QAAAC,eAAA,CAAU,WAAW,+BAA+B,CAAA,CAAA;AACpD,QAAA,OAAA;AAAA,OACF;AAKM,MAAA,MAAA,eAAA,GAAkB,CAAC,MAA0B,KAAA;AAC1C,QAAA,OAAA,IAAI,OAAQ,CAAA,CAAC,OAAY,KAAA;AAC9B,UAAA,IAAI,SAAY,GAAA,KAAA,CAAA;AAEH,UAAA,YAAA,CAAA,KAAA,CACV,OAAQ,CAAA,MAAA,CAAO,MAAQ,EAAA,MAAA,CAAO,QAAU,EAAA,MAAA,CAAO,UAAU,CAAA,CACzD,IAAK,CAAA,CAAC,CAAW,KAAA;AAEhB,YAAA,MAAM,EAAE,IAAM,EAAA,KAAA,EAAO,OAAU,GAAA,MAAA,CAAO,aAAa,CAAC,CAAA,CAAA;AACpD,YAAA,IAAI,IAAQ,IAAA,KAAA,CAAM,OAAQ,CAAA,IAAI,CAAG,EAAA;AAC/B,cAAA,MAAA,CAAO,SAAa,CAAA,GAAA,IAAA,CAAK,GAAI,CAAA,CAAC,IAAS,KAAA;AACrC,gBAAA,MAAM,YAAY,KAAM,CAAA,OAAA,CAAQ,YAAc,EAAA,CAAC,OAAO,GAAQ,KAAA;AACrD,kBAAA,OAAA,KAAK,GAAQ,CAAA,IAAA,KAAA,CAAA;AAAA,iBACrB,CAAA,CAAA;AACM,gBAAA,OAAA;AAAA,kBACL,KAAO,EAAA,SAAA;AAAA,kBACP,OAAO,IAAK,CAAA,KAAA,CAAA;AAAA,iBACd,CAAA;AAAA,eACD,CAAA,CAAA;AACW,cAAA,SAAA,GAAA,IAAA,CAAA;AAAA,aACd;AAAA,WACD,CACA,CAAA,OAAA,CAAQ,MAAM;AACb,YAAA,IAAI,CAAC,SAAW,EAAA;AACP,cAAA,MAAA,CAAA,aAAa,EAAC,CAAA;AAAA,aACvB;AACA,YAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;AAAA,WACb,CAAA,CAAA;AAAA,SACJ,CAAA,CAAA;AAAA,OACH,CAAA;AACS,MAAA,KAAA,IAAA,CAAA,GAAI,CAAG,EAAA,CAAA,GAAA,CAAA,CAAA,CAAK,EAAa,GAAA,YAAA,CAAA,KAAA,KAAb,mBAAoB,MAAU,KAAA,EAAI,EAAA,MAAA,EAAQ,CAAK,EAAA,EAAA;AAElE,QAAM,MAAA,MAAA,GAAS,YAAa,CAAA,KAAA,CAAM,MAAO,CAAA,CAAA,CAAA,CAAA;AACzC,QAAA,IAAI,OAAO,MAAQ,EAAA;AACb,UAAA,IAAA,CAAC,OAAO,YAAc,EAAA;AACxB,YAAAA,eAAA,CAAU,WAAW,+CAA+C,CAAA,CAAA;AACpE,YAAA,SAAA;AAAA,WACF;AACA,UAAA,eAAA,CAAgB,MAAM,CAAA,CAAA;AAAA,SACxB;AAAA,OACF;AAAA,KACF,CAAA;AAMM,IAAA,MAAA,cAAA,GAAiB,CAAC,GAAa,KAAA;AACnC,MAAA,IAAI,CAAC,GAAK,EAAA;AACR,QAAA,OAAO,EAAC,CAAA;AAAA,OACV;AACO,MAAA,OAAA,CAAC,EAAE,KAAO,EAAA,cAAA,EAAM,OAAO,EAAG,EAAA,EAAG,GAAG,GAAG,CAAA,CAAA;AAAA,KAC5C,CAAA;AAMA,IAAAC,SAAA;AAAA,MACE,MAAM,KAAM,CAAA,MAAA;AAAA,MACZ,CAAC,MAA0B,KAAA;AACzB,QAAA,IAAI,MAAQ,EAAA;AACV,UAAA,YAAA,CAAa,QAAQ,MAAO,CAAA,MAAA,CAAO,EAAI,EAAA,YAAA,CAAa,OAAO,MAAM,CAAA,CAAA;AACjE,UAAA,IAAI,OAAO,MAAQ,EAAA;AACjB,YAAA,YAAA,CAAa,MAAM,MAAS,GAAAC,uBAAA;AAAA,cAC1B,OAAO,MACJ,CAAA,MAAA;AAAA,gBACC,CAAC,MAAW,KAAA,EAAE,MAAM,UAAW,CAAA,MAAA,CAAO,QAAQ,EAAQ,CAAA,KAAA,KAAA,CAAA;AAAA,eACxD,CACC,IAAK,CAAA,CAAC,CAAG,EAAA,CAAA,KAAA,CAAO,EAAE,KAAS,IAAA,CAAA,KAAM,CAAE,CAAA,KAAA,IAAS,CAAE,CAAA,CAAA;AAAA,aACnD,CAAA;AAAA,WACF;AAEiB,UAAA,gBAAA,EAAA,CAAA;AAEP,UAAA,SAAA,EAAA,CAAA;AAAA,SACZ;AAAA,OACF;AAAA,MACA;AAAA,QACE,SAAW,EAAA,IAAA;AAAA,QACX,IAAM,EAAA,IAAA;AAAA,OACR;AAAA,KACF,CAAA;AAEa,IAAA,QAAA,CAAA;AAAA,MAIX,MAAA;AAAA,MAIA,KAAA;AAAA,KACD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,445 +2,34 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var vue = require('vue');
6
- var lodashUnified = require('lodash-unified');
7
- var search = require('./search.js');
8
- var pluginVue_exportHelper = require('../../../../_virtual/plugin-vue_export-helper.js');
9
- var index = require('../../../hooks/use-locale/index.js');
10
- var useGlobalConfig = require('../../config-provider/src/hooks/use-global-config.js');
11
- var error = require('../../../utils/error.js');
5
+ var runtime = require('../../../utils/vue/props/runtime.js');
6
+ var index = require('../../../hooks/use-size/index.js');
7
+ var shared = require('@vue/shared');
12
8
 
13
- const COMPONENT_NAME = "MSearch";
14
- const __default__ = vue.defineComponent({
15
- name: COMPONENT_NAME
16
- });
17
- const _sfc_main = vue.defineComponent({
18
- ...__default__,
19
- props: search.searchProps,
20
- emits: search.searchEmits,
21
- setup(__props, { expose: __expose, emit: __emit }) {
22
- const props = __props;
23
- const emit = __emit;
24
- const slots = vue.useSlots();
25
- const { t } = index.useLocale();
26
- const INPUT_TYPES = ["input", "textarea", "number", "password"];
27
- const SELECT_TYPES = ["select", "checkbox", "radio", "switch"];
28
- const DATE_TYPES = [
29
- "year",
30
- "month",
31
- "date",
32
- "datetime",
33
- "week",
34
- "datetimerange",
35
- "daterange",
36
- "monthrange",
37
- "yearrange",
38
- "time",
39
- "timerange"
40
- ];
41
- const searchOption = vue.ref({
42
- searchBtnText: t("m.search.searchBtnText"),
43
- resetBtnText: t("m.search.resetBtnText"),
44
- searchBtnIcon: "Search",
45
- resetBtnIcon: "Delete",
46
- labelWidth: "80px",
47
- colIndex: 3,
48
- col: false,
49
- column: []
50
- });
51
- const formRef = vue.ref();
52
- const globalConfig = useGlobalConfig.useGlobalConfig();
53
- const searchCol = vue.ref(true);
54
- const proxys = new Proxy(props.model, {
55
- get(target, property) {
56
- return lodashUnified.get(target, property);
57
- },
58
- set(target, property, value) {
59
- lodashUnified.set(target, property, value);
60
- return true;
61
- }
62
- });
63
- const initValue = () => {
64
- var _a;
65
- if (searchOption.value && searchOption.value.column) {
66
- for (let i = 0; i < ((_a = searchOption.value.column) == null ? void 0 : _a.length); i++) {
67
- const column = searchOption.value.column[i];
68
- if (column.prop && proxys[column.prop] === void 0) {
69
- if (column.value) {
70
- proxys[column.prop] = column.value;
71
- } else {
72
- const ARR_TYPES = [
73
- "checkbox",
74
- "datetimerange",
75
- "daterange",
76
- "monthrange",
77
- "yearrange",
78
- "timerange"
79
- ];
80
- if (column.type === "select" && column.multiple || ARR_TYPES.includes(column.type || "")) {
81
- proxys[column.prop] = [];
82
- } else {
83
- proxys[column.prop] = "";
84
- }
85
- }
86
- }
87
- }
88
- }
89
- };
90
- const getValueFormatByType = (type) => {
91
- let format = "";
92
- switch (type) {
93
- case "yearrange":
94
- case "year":
95
- format = "YYYY";
96
- break;
97
- case "monthrange":
98
- case "month":
99
- format = "YYYY-MM";
100
- break;
101
- case "daterange":
102
- case "week":
103
- case "date":
104
- format = "YYYY-MM-DD";
105
- break;
106
- case "datetimerange":
107
- case "datetime":
108
- format = "YYYY-MM-DD HH:mm:ss";
109
- break;
110
- case "time":
111
- format = "HH:mm:ss";
112
- break;
113
- }
114
- return format;
115
- };
116
- const search = (page = 1) => {
117
- var _a;
118
- if (searchOption.value.column && searchOption.value.column.length) {
119
- (_a = formRef.value) == null ? void 0 : _a.validate((valid) => {
120
- if (valid) {
121
- if (proxys.page) {
122
- proxys.page = page;
123
- }
124
- emit("search", proxys);
125
- }
126
- });
127
- } else {
128
- if (proxys.page) {
129
- proxys.page = page;
130
- }
131
- emit("search", proxys);
132
- }
133
- };
134
- const reset = () => {
135
- var _a;
136
- if (proxys.page) {
137
- proxys.page = 1;
138
- }
139
- if (proxys.limit) {
140
- proxys.limit = 10;
141
- }
142
- (_a = formRef.value) == null ? void 0 : _a.resetFields();
143
- emit("reset");
144
- };
145
- const toggleCol = () => {
146
- searchCol.value = !searchCol.value;
147
- };
148
- const getAllRemoteDics = () => {
149
- var _a, _b, _c, _d;
150
- const hasDicUrl = (_b = (_a = searchOption.value) == null ? void 0 : _a.column) == null ? void 0 : _b.some((column) => column.dicUrl);
151
- if (hasDicUrl && !((_c = globalConfig.value) == null ? void 0 : _c.httpGet)) {
152
- error.debugWarn("MSearch", "global config httpGet is null");
153
- return;
154
- }
155
- const updateRemoteDic = (column) => {
156
- return new Promise((resolve) => {
157
- let isSuccess = false;
158
- globalConfig.value.httpGet(column.dicUrl, column.dicQuery, column.dicHeaders).then((e) => {
159
- const { list, label, value } = column.dicFormatter(e);
160
- if (list && Array.isArray(list)) {
161
- column["dicData"] = list.map((item) => {
162
- const lastLabel = label.replace(/\{(\w+)\}/g, (match, key) => {
163
- return item[key] || match;
164
- });
165
- return {
166
- label: lastLabel,
167
- value: item[value]
168
- };
169
- });
170
- isSuccess = true;
171
- }
172
- }).finally(() => {
173
- if (!isSuccess) {
174
- column["dicData"] = [];
175
- }
176
- resolve(null);
177
- });
178
- });
179
- };
180
- for (let i = 0; i < (((_d = searchOption.value) == null ? void 0 : _d.column) || []).length; i++) {
181
- const column = searchOption.value.column[i];
182
- if (column.dicUrl) {
183
- if (!column.dicFormatter) {
184
- error.debugWarn("MSearch", "dicUrl and dicFormatter must be used together");
185
- continue;
186
- }
187
- updateRemoteDic(column);
188
- }
189
- }
190
- };
191
- const wrapSelectData = (arr) => {
192
- if (!arr) {
193
- return [];
194
- }
195
- return [{ label: "\u5168\u90E8", value: "" }, ...arr];
196
- };
197
- vue.watch(
198
- () => props.option,
199
- (newVal) => {
200
- if (newVal) {
201
- searchOption.value = Object.assign({}, searchOption.value, newVal);
202
- if (newVal.column) {
203
- searchOption.value.column = lodashUnified.cloneDeep(
204
- newVal.column.filter(
205
- (column) => !(props.permission[column.prop || ""] === false)
206
- ).sort((a, b) => (b.order || 0) - (a.order || 0))
207
- );
208
- }
209
- getAllRemoteDics();
210
- initValue();
211
- }
212
- },
213
- {
214
- immediate: true,
215
- deep: true
216
- }
217
- );
218
- __expose({
219
- search,
220
- reset
221
- });
222
- return (_ctx, _cache) => {
223
- const _component_el_input = vue.resolveComponent("el-input");
224
- const _component_el_option = vue.resolveComponent("el-option");
225
- const _component_el_select = vue.resolveComponent("el-select");
226
- const _component_el_date_picker = vue.resolveComponent("el-date-picker");
227
- const _component_el_time_picker = vue.resolveComponent("el-time-picker");
228
- const _component_el_form_item = vue.resolveComponent("el-form-item");
229
- const _component_el_col = vue.resolveComponent("el-col");
230
- const _component_el_button = vue.resolveComponent("el-button");
231
- const _component_ArrowDown = vue.resolveComponent("ArrowDown");
232
- const _component_ArrowUp = vue.resolveComponent("ArrowUp");
233
- const _component_el_icon = vue.resolveComponent("el-icon");
234
- const _component_el_link = vue.resolveComponent("el-link");
235
- const _component_el_row = vue.resolveComponent("el-row");
236
- const _component_el_form = vue.resolveComponent("el-form");
237
- return searchOption.value.column && searchOption.value.column.length ? (vue.openBlock(), vue.createElementBlock("div", {
238
- key: 0,
239
- class: "m-search"
240
- }, [
241
- vue.createVNode(_component_el_form, {
242
- ref_key: "formRef",
243
- ref: formRef,
244
- inline: true,
245
- model: vue.unref(proxys),
246
- size: _ctx.size || vue.unref(globalConfig).size,
247
- disabled: _ctx.loading,
248
- "label-width": searchOption.value.labelWidth,
249
- onSubmit: vue.withModifiers(() => {
250
- }, ["prevent"])
251
- }, {
252
- default: vue.withCtx(() => [
253
- vue.createVNode(_component_el_row, { gutter: 0 }, {
254
- default: vue.withCtx(() => [
255
- (vue.openBlock(true), vue.createElementBlock(
256
- vue.Fragment,
257
- null,
258
- vue.renderList(searchOption.value.column, (column, columnIndex) => {
259
- return vue.openBlock(), vue.createElementBlock(
260
- vue.Fragment,
261
- { key: columnIndex },
262
- [
263
- !searchOption.value.col || !searchCol.value || columnIndex < (searchOption.value.colIndex || 3) ? (vue.openBlock(), vue.createBlock(_component_el_col, {
264
- key: 0,
265
- span: column.span || 6
266
- }, {
267
- default: vue.withCtx(() => [
268
- vue.createVNode(_component_el_form_item, {
269
- style: { "width": "100%" },
270
- "label-width": column.labelWidth || searchOption.value.labelWidth,
271
- label: column.label + ":",
272
- prop: column.prop,
273
- rules: column.rules
274
- }, {
275
- default: vue.withCtx(() => [
276
- vue.createCommentVNode("\u63D2\u69FD"),
277
- vue.unref(slots)[column.prop || ""] ? vue.renderSlot(_ctx.$slots, column.prop, vue.mergeProps({
278
- key: 0,
279
- ref_for: true
280
- }, { size: _ctx.size || vue.unref(globalConfig).size, loading: _ctx.loading })) : !column.type || INPUT_TYPES.includes(column.type) ? (vue.openBlock(), vue.createElementBlock(
281
- vue.Fragment,
282
- { key: 1 },
283
- [
284
- vue.createCommentVNode(""),
285
- vue.createCommentVNode("\u8F93\u5165\u6846"),
286
- vue.createVNode(_component_el_input, {
287
- modelValue: vue.unref(proxys)[column.prop || ""],
288
- "onUpdate:modelValue": ($event) => vue.unref(proxys)[column.prop || ""] = $event,
289
- modelModifiers: { trim: true },
290
- placeholder: column.placeholder,
291
- style: { "width": "100%" },
292
- type: "text",
293
- onKeyup: vue.withKeys(($event) => search(1), ["enter"])
294
- }, null, 8, ["modelValue", "onUpdate:modelValue", "placeholder", "onKeyup"])
295
- ],
296
- 64
297
- )) : SELECT_TYPES.includes(column.type) ? (vue.openBlock(), vue.createElementBlock(
298
- vue.Fragment,
299
- { key: 2 },
300
- [
301
- vue.createCommentVNode(""),
302
- vue.createCommentVNode("\u5355\u9009/\u591A\u9009"),
303
- vue.createVNode(_component_el_select, {
304
- modelValue: vue.unref(proxys)[column.prop || ""],
305
- "onUpdate:modelValue": ($event) => vue.unref(proxys)[column.prop || ""] = $event,
306
- style: { "width": "100%" },
307
- placeholder: column.placeholder,
308
- multiple: column.multiple || column.type === "checkbox",
309
- clearable: column.clearable
310
- }, {
311
- default: vue.withCtx(() => [
312
- (vue.openBlock(true), vue.createElementBlock(
313
- vue.Fragment,
314
- null,
315
- vue.renderList(wrapSelectData(column.dicData), (dicItem, dicIndex) => {
316
- return vue.openBlock(), vue.createBlock(_component_el_option, {
317
- key: dicIndex,
318
- label: dicItem.label,
319
- value: dicItem.value
320
- }, null, 8, ["label", "value"]);
321
- }),
322
- 128
323
- ))
324
- ]),
325
- _: 2
326
- }, 1032, ["modelValue", "onUpdate:modelValue", "placeholder", "multiple", "clearable"])
327
- ],
328
- 64
329
- )) : DATE_TYPES.includes(column.type) ? (vue.openBlock(), vue.createElementBlock(
330
- vue.Fragment,
331
- { key: 3 },
332
- [
333
- vue.createCommentVNode(""),
334
- vue.createCommentVNode("\u65F6\u95F4\u9009\u62E9"),
335
- column.type !== "time" && column.type !== "timerange" ? (vue.openBlock(), vue.createBlock(_component_el_date_picker, {
336
- key: 0,
337
- modelValue: vue.unref(proxys)[column.prop || ""],
338
- "onUpdate:modelValue": ($event) => vue.unref(proxys)[column.prop || ""] = $event,
339
- type: column.type,
340
- clearable: column.clearable,
341
- "start-placeholder": column.startPlaceholder,
342
- "end-placeholder": column.endPlaceholder,
343
- format: column.format,
344
- "value-format": column.valueFormat || getValueFormatByType(column.type)
345
- }, null, 8, ["modelValue", "onUpdate:modelValue", "type", "clearable", "start-placeholder", "end-placeholder", "format", "value-format"])) : (vue.openBlock(), vue.createBlock(_component_el_time_picker, {
346
- key: 1,
347
- modelValue: vue.unref(proxys)[column.prop || ""],
348
- "onUpdate:modelValue": ($event) => vue.unref(proxys)[column.prop || ""] = $event,
349
- "is-range": column.type === "timerange",
350
- clearable: column.clearable,
351
- "start-placeholder": column.startPlaceholder,
352
- "end-placeholder": column.endPlaceholder,
353
- "value-format": column.valueFormat || getValueFormatByType(column.type)
354
- }, null, 8, ["modelValue", "onUpdate:modelValue", "is-range", "clearable", "start-placeholder", "end-placeholder", "value-format"]))
355
- ],
356
- 64
357
- )) : vue.createCommentVNode("v-if", true)
358
- ]),
359
- _: 2
360
- }, 1032, ["label-width", "label", "prop", "rules"])
361
- ]),
362
- _: 2
363
- }, 1032, ["span"])) : vue.createCommentVNode("v-if", true)
364
- ],
365
- 64
366
- );
367
- }),
368
- 128
369
- )),
370
- vue.createVNode(_component_el_col, { span: 6 }, {
371
- default: vue.withCtx(() => [
372
- vue.createVNode(_component_el_form_item, {
373
- class: "m-search-btns",
374
- style: { "width": "100%" }
375
- }, {
376
- default: vue.withCtx(() => [
377
- vue.createVNode(_component_el_button, {
378
- type: "primary",
379
- icon: searchOption.value.searchBtnIcon,
380
- loading: _ctx.loading,
381
- onClick: ($event) => search(1)
382
- }, {
383
- default: vue.withCtx(() => [
384
- vue.createTextVNode(
385
- vue.toDisplayString(searchOption.value.searchBtnText),
386
- 1
387
- )
388
- ]),
389
- _: 1
390
- }, 8, ["icon", "loading", "onClick"]),
391
- vue.createVNode(_component_el_button, {
392
- type: "default",
393
- icon: searchOption.value.resetBtnIcon,
394
- loading: _ctx.loading,
395
- onClick: reset
396
- }, {
397
- default: vue.withCtx(() => [
398
- vue.createTextVNode(
399
- vue.toDisplayString(searchOption.value.resetBtnText),
400
- 1
401
- )
402
- ]),
403
- _: 1
404
- }, 8, ["icon", "loading"]),
405
- searchOption.value.col ? (vue.openBlock(), vue.createBlock(_component_el_link, {
406
- key: 0,
407
- style: { "width": "54px", "margin-left": "12px" },
408
- underline: "never",
409
- disabled: _ctx.loading,
410
- type: "default",
411
- onClick: toggleCol
412
- }, {
413
- default: vue.withCtx(() => [
414
- vue.createVNode(_component_el_icon, { style: { "margin-right": "6px" } }, {
415
- default: vue.withCtx(() => [
416
- searchCol.value ? (vue.openBlock(), vue.createBlock(_component_ArrowDown, { key: 0 })) : (vue.openBlock(), vue.createBlock(_component_ArrowUp, { key: 1 }))
417
- ]),
418
- _: 1
419
- }),
420
- vue.createTextVNode(
421
- " " + vue.toDisplayString(searchCol.value ? vue.unref(t)("m.search.expandBtn") : vue.unref(t)("m.search.colBtn")),
422
- 1
423
- )
424
- ]),
425
- _: 1
426
- }, 8, ["disabled"])) : vue.createCommentVNode("v-if", true)
427
- ]),
428
- _: 1
429
- })
430
- ]),
431
- _: 1
432
- })
433
- ]),
434
- _: 3
435
- })
436
- ]),
437
- _: 3
438
- }, 8, ["model", "size", "disabled", "label-width", "onSubmit"])
439
- ])) : vue.createCommentVNode("v-if", true);
440
- };
9
+ const searchProps = runtime.buildProps({
10
+ size: index.useSizeProp,
11
+ loading: {
12
+ type: Boolean,
13
+ default: false
14
+ },
15
+ permission: {
16
+ type: Object,
17
+ default: {}
18
+ },
19
+ model: {
20
+ type: Object,
21
+ required: true
22
+ },
23
+ option: {
24
+ type: runtime.definePropType(Object),
25
+ required: false
441
26
  }
442
27
  });
443
- var Search = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "search.vue"]]);
28
+ const searchEmits = {
29
+ search: (model) => shared.isObject(model),
30
+ reset: () => true
31
+ };
444
32
 
445
- exports["default"] = Search;
33
+ exports.searchEmits = searchEmits;
34
+ exports.searchProps = searchProps;
446
35
  //# sourceMappingURL=search2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"search2.js","sources":["../../../../../../../packages/components/search/src/search.vue"],"sourcesContent":["<script lang=\"ts\" setup>\r\nimport { ref, useSlots, watch } from 'vue'\r\nimport { cloneDeep, get, set } from 'lodash-unified'\r\nimport { useLocale } from '@m-eleplus-crud/hooks'\r\nimport { useGlobalConfig } from '@m-eleplus-crud/components'\r\nimport { debugWarn } from '@m-eleplus-crud/utils'\r\nimport { searchEmits, searchProps } from './search'\r\nimport type { ISearchColumn, ISearchOption } from './search'\r\n\r\nimport type { FormInstance } from 'element-plus'\r\n\r\nconst COMPONENT_NAME = 'MSearch'\r\ndefineOptions({\r\n name: COMPONENT_NAME,\r\n})\r\n\r\nconst props = defineProps(searchProps)\r\nconst emit = defineEmits(searchEmits)\r\n\r\n// 插槽信息\r\nconst slots = useSlots() as any\r\n\r\n// 国际化\r\nconst { t } = useLocale()\r\n\r\n// 输入框类型\r\nconst INPUT_TYPES = ['input', 'textarea', 'number', 'password']\r\n\r\n// 下拉选择类型\r\nconst SELECT_TYPES = ['select', 'checkbox', 'radio', 'switch']\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\nconst searchOption = ref<ISearchOption>({\r\n searchBtnText: t('m.search.searchBtnText'),\r\n resetBtnText: t('m.search.resetBtnText'),\r\n // 搜索按钮默认Search图标\r\n searchBtnIcon: 'Search',\r\n // 重置按钮默认Delete图标\r\n resetBtnIcon: 'Delete',\r\n // 默认label宽度80px\r\n labelWidth: '80px',\r\n // 默认展示3个\r\n colIndex: 3,\r\n // 默认不折叠\r\n col: false,\r\n // 搜索列配置\r\n column: [],\r\n})\r\n\r\n// 表单ref\r\nconst formRef = ref<FormInstance>()\r\n\r\n// 全局配置\r\nconst globalConfig = useGlobalConfig()\r\n\r\n// 搜索选项折叠\r\nconst searchCol = ref(true)\r\n\r\n// 代理model\r\nconst proxys: any = 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 * 初始化搜索表单的值\r\n */\r\nconst initValue = () => {\r\n // 初始化搜索表单的值\r\n if (searchOption.value && searchOption.value.column) {\r\n for (let i = 0; i < searchOption.value.column?.length; i++) {\r\n const column = searchOption.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 * @param page 第一页\r\n */\r\nconst search = (page = 1) => {\r\n if (searchOption.value.column && searchOption.value.column.length) {\r\n formRef.value?.validate((valid) => {\r\n if (valid) {\r\n // 搜索从第一页开始搜索,也支持传入页码\r\n if (proxys.page) {\r\n proxys.page = page\r\n }\r\n // emit搜索事件 如果非第一页,自动重置第一页\r\n emit('search', proxys)\r\n }\r\n })\r\n } else {\r\n // 搜索从第一页开始搜索,也支持传入页码\r\n if (proxys.page) {\r\n proxys.page = page\r\n }\r\n // emit搜索事件 如果非第一页,自动重置第一页\r\n emit('search', proxys)\r\n }\r\n}\r\n\r\n/**\r\n * 重置搜索\r\n */\r\nconst reset = () => {\r\n // 重置分页参数\r\n if (proxys.page) {\r\n proxys.page = 1\r\n }\r\n if (proxys.limit) {\r\n proxys.limit = 10\r\n }\r\n // 清空搜索表单的字段\r\n formRef.value?.resetFields()\r\n // emit重置事件\r\n emit('reset')\r\n}\r\n\r\n/**\r\n * 展开/折叠搜索\r\n */\r\nconst toggleCol = () => {\r\n searchCol.value = !searchCol.value\r\n}\r\n\r\n/**\r\n * 处理需要远程获取字典的配置\r\n */\r\nconst getAllRemoteDics = () => {\r\n const hasDicUrl = searchOption.value?.column?.some((column) => column.dicUrl)\r\n if (hasDicUrl && !globalConfig.value?.httpGet) {\r\n debugWarn('MSearch', '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: ISearchColumn) => {\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 < (searchOption.value?.column || []).length; i++) {\r\n // @ts-ignore\r\n const column = searchOption.value.column[i]\r\n if (column.dicUrl) {\r\n if (!column.dicFormatter) {\r\n debugWarn('MSearch', '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 arr 下拉框数据\r\n */\r\nconst wrapSelectData = (arr: any) => {\r\n if (!arr) {\r\n return []\r\n }\r\n return [{ label: '全部', value: '' }, ...arr]\r\n}\r\n\r\n\r\n/**\r\n * @description 监听搜索列的变化\r\n */\r\nwatch(\r\n () => props.option as ISearchOption,\r\n (newVal: ISearchOption) => {\r\n if (newVal) {\r\n searchOption.value = Object.assign({}, searchOption.value, newVal)\r\n if (newVal.column) {\r\n searchOption.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 // 处理远程字典的配置\r\n getAllRemoteDics()\r\n // 初始化搜索表单的值\r\n initValue()\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 search,\r\n /**\r\n * @description 重置方法\r\n */\r\n reset,\r\n})\r\n</script>\r\n\r\n<template>\r\n <div\r\n v-if=\"searchOption.column && searchOption.column.length\"\r\n class=\"m-search\"\r\n >\r\n <el-form\r\n ref=\"formRef\"\r\n :inline=\"true\"\r\n :model=\"proxys\"\r\n :size=\"size || globalConfig.size\"\r\n :disabled=\"loading\"\r\n :label-width=\"searchOption.labelWidth\"\r\n @submit.prevent\r\n >\r\n <el-row :gutter=\"0\">\r\n <template\r\n v-for=\"(column, columnIndex) in searchOption.column\"\r\n :key=\"columnIndex\"\r\n >\r\n <el-col\r\n v-if=\"\r\n !searchOption.col ||\r\n !searchCol ||\r\n columnIndex < (searchOption.colIndex || 3)\r\n \"\r\n :span=\"column.span || 6\"\r\n >\r\n <el-form-item\r\n style=\"width: 100%\"\r\n :label-width=\"column.labelWidth || searchOption.labelWidth\"\r\n :label=\"column.label + ':'\"\r\n :prop=\"column.prop\"\r\n :rules=\"column.rules\"\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 <template\r\n v-else-if=\"!column.type || INPUT_TYPES.includes(column.type)\"\r\n >\r\n <el-input\r\n v-model.trim=\"proxys[column.prop || '']\"\r\n :placeholder=\"column.placeholder\"\r\n style=\"width: 100%\"\r\n type=\"text\"\r\n @keyup.enter=\"search(1)\"\r\n />\r\n </template>\r\n <!---->\r\n <!--单选/多选-->\r\n <template\r\n v-else-if=\"SELECT_TYPES.includes(column.type as string)\"\r\n >\r\n <el-select\r\n v-model=\"proxys[column.prop || '']\"\r\n style=\"width: 100%\"\r\n :placeholder=\"column.placeholder\"\r\n :multiple=\"column.multiple || column.type === 'checkbox'\"\r\n :clearable=\"column.clearable\"\r\n >\r\n <el-option\r\n v-for=\"(dicItem, dicIndex) in wrapSelectData(column.dicData)\"\r\n :key=\"dicIndex\"\r\n :label=\"dicItem.label\"\r\n :value=\"dicItem.value\"\r\n />\r\n </el-select>\r\n </template>\r\n <!---->\r\n <!--时间选择-->\r\n <template v-else-if=\"DATE_TYPES.includes(column.type as string)\">\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 />\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 />\r\n </template>\r\n </el-form-item>\r\n </el-col>\r\n </template>\r\n <el-col :span=\"6\">\r\n <el-form-item class=\"m-search-btns\" style=\"width: 100%\">\r\n <el-button\r\n type=\"primary\"\r\n :icon=\"searchOption.searchBtnIcon\"\r\n :loading=\"loading\"\r\n @click=\"search(1)\"\r\n >\r\n {{ searchOption.searchBtnText }}\r\n </el-button>\r\n <el-button\r\n type=\"default\"\r\n :icon=\"searchOption.resetBtnIcon\"\r\n :loading=\"loading\"\r\n @click=\"reset\"\r\n >\r\n {{ searchOption.resetBtnText }}\r\n </el-button>\r\n <el-link\r\n v-if=\"searchOption.col\"\r\n style=\"width: 54px; margin-left: 12px\"\r\n underline=\"never\"\r\n :disabled=\"loading\"\r\n type=\"default\"\r\n @click=\"toggleCol\"\r\n >\r\n <el-icon style=\"margin-right: 6px\">\r\n <ArrowDown v-if=\"searchCol\" />\r\n <ArrowUp v-else />\r\n </el-icon>\r\n {{ searchCol ? t('m.search.expandBtn') : t('m.search.colBtn') }}\r\n </el-link>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n </div>\r\n</template>\r\n"],"names":["DO_defineComponent","useSlots","useLocale","ref","useGlobalConfig","get","set","debugWarn","watch","cloneDeep"],"mappings":"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"}
1
+ {"version":3,"file":"search2.js","sources":["../../../../../../../packages/components/search/src/search.ts"],"sourcesContent":["import { ICommonColumn } from '@m-eleplus-crud/components/common'\r\nimport { useSizeProp } from '@m-eleplus-crud/hooks'\r\nimport { buildProps, definePropType, isObject } from '@m-eleplus-crud/utils'\r\n\r\nimport { ColumnType } from '../../common'\r\nimport type { ExtractPropTypes } from 'vue'\r\nimport type { FormItemRule } from 'element-plus'\r\n\r\n/**\r\n * @description 公开的search column配置\r\n */\r\nexport interface ISearchCommonColumn {\r\n /**\r\n * @description label宽度\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 rules?: FormItemRule[]\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 搜索默认值\r\n */\r\n value?: any\r\n /**\r\n * @description 输入框占位文本\r\n */\r\n placeholder?: string\r\n /**\r\n * @description 可清除\r\n */\r\n clearable?: boolean\r\n}\r\n\r\n/**\r\n * @description 搜索列配置\r\n */\r\nexport interface ISearchColumn extends ICommonColumn, ISearchCommonColumn {\r\n /**\r\n * @description 类型\r\n */\r\n type?: ColumnType\r\n}\r\n\r\n/**\r\n * @description 公开的search配置\r\n */\r\nexport interface ISearchCommonOption {\r\n /**\r\n * @description 搜索按钮文本\r\n */\r\n searchBtnText?: string\r\n /**\r\n * @description 重置按钮文本\r\n */\r\n resetBtnText?: string\r\n /**\r\n * @description 搜索按钮icon\r\n */\r\n searchBtnIcon?: string\r\n /**\r\n * @description 重置按钮icon\r\n */\r\n resetBtnIcon?: string\r\n /**\r\n * @description label宽度\r\n */\r\n labelWidth?: string\r\n /**\r\n * @description 收缩展示个数\r\n */\r\n colIndex?: number\r\n /**\r\n * @description 是否开启收缩\r\n */\r\n col?: boolean\r\n}\r\n\r\n/**\r\n * @description 搜索信息配置\r\n */\r\nexport interface ISearchOption extends ISearchCommonOption {\r\n /**\r\n * @description 搜索列配置\r\n */\r\n column: ISearchColumn[]\r\n}\r\n\r\nexport const searchProps = 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 permission: {\r\n type: Object,\r\n default: {},\r\n },\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 option: {\r\n type: definePropType<ISearchOption>(Object),\r\n required: false,\r\n },\r\n} as const)\r\nexport type SearchProps = ExtractPropTypes<typeof searchProps>\r\n\r\nexport const searchEmits = {\r\n /**\r\n * 搜索\r\n * @param model 搜索表单数据\r\n * @returns\r\n */\r\n search: (model: any) => isObject(model),\r\n /**\r\n * 重置\r\n * @returns\r\n */\r\n reset: () => true,\r\n}\r\nexport type SearchEmits = typeof searchEmits\r\n"],"names":["buildProps","useSizeProp","definePropType","isObject"],"mappings":";;;;;;;;AAoGO,MAAM,cAAcA,kBAAW,CAAA;AAAA,EAIpC,IAAM,EAAAC,iBAAA;AAAA,EAIN,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,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EAIA,MAAQ,EAAA;AAAA,IACN,IAAA,EAAMC,uBAA8B,MAAM,CAAA;AAAA,IAC1C,QAAU,EAAA,KAAA;AAAA,GACZ;AACF,CAAU,EAAA;AAGH,MAAM,WAAc,GAAA;AAAA,EAMzB,MAAQ,EAAA,CAAC,KAAe,KAAAC,eAAA,CAAS,KAAK,CAAA;AAAA,EAKtC,OAAO,MAAM,IAAA;AACf;;;;;"}
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var table$1 = require('./src/table.js');
6
- var table = require('./src/table2.js');
5
+ var table$1 = require('./src/table2.js');
6
+ var table = require('./src/table.js');
7
7
  var install = require('../../utils/vue/install.js');
8
8
 
9
9
  const MTable = install.withInstall(table$1["default"]);