el-plus 0.0.63 → 0.0.65
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.
- package/CHANGELOG.md +12 -0
- package/dist/index.css +1 -1
- package/dist/index.full.js +30 -22
- package/dist/index.full.min.js +4 -4
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +4 -4
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +30 -22
- package/es/components/search-list-page/src/use-search-list-page.mjs +1 -5
- package/es/components/search-list-page/src/use-search-list-page.mjs.map +1 -1
- package/es/components/uni-vue/src/use-uni-vue.mjs +9 -13
- package/es/components/uni-vue/src/use-uni-vue.mjs.map +1 -1
- package/es/hooks/dialog/use-form-dialog.mjs +12 -1
- package/es/hooks/dialog/use-form-dialog.mjs.map +1 -1
- package/es/package.json.mjs +1 -1
- package/es/utils/http/core/request-client.d.ts +1 -1
- package/es/utils/http/core/request-client.mjs +6 -2
- package/es/utils/http/core/request-client.mjs.map +1 -1
- package/lib/components/search-list-page/src/use-search-list-page.js +1 -5
- package/lib/components/search-list-page/src/use-search-list-page.js.map +1 -1
- package/lib/components/uni-vue/src/use-uni-vue.js +9 -13
- package/lib/components/uni-vue/src/use-uni-vue.js.map +1 -1
- package/lib/hooks/dialog/use-form-dialog.js +12 -1
- package/lib/hooks/dialog/use-form-dialog.js.map +1 -1
- package/lib/package.json.js +1 -1
- package/lib/utils/http/core/request-client.d.ts +1 -1
- package/lib/utils/http/core/request-client.js +6 -2
- package/lib/utils/http/core/request-client.js.map +1 -1
- package/package.json +1 -1
- package/theme-chalk/custom-column.css +1 -1
- package/theme-chalk/dialog.css +1 -1
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/src/custom-column.scss +23 -2
- package/theme-chalk/src/dialog.scss +2 -2
- package/theme-chalk/src/table.scss +4 -3
- package/theme-chalk/table.css +1 -1
package/dist/index.full.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! ElPlus v0.0.
|
|
1
|
+
/*! ElPlus v0.0.65 */
|
|
2
2
|
|
|
3
3
|
import { useAttrs, getCurrentInstance, inject, provide, ref, nextTick, defineComponent, computed, createVNode, Fragment, withDirectives, resolveComponent, mergeProps, resolveDirective, useTemplateRef, createTextVNode, h, mergeModels, useModel, createElementBlock, openBlock, normalizeStyle, normalizeClass, unref, createCommentVNode, withCtx, renderSlot, renderList, createBlock, vShow, toDisplayString, reactive, useSlots, watch, onMounted, createSlots, normalizeProps, guardReactiveProps, markRaw, Transition, shallowReactive, isVNode, render, createElementVNode, toRaw } from 'vue';
|
|
4
4
|
import { buttonProps, useLocale as useLocale$1, ElLoading, ElMessage, ElMessageBox, formProps as formProps$1, formEmits as formEmits$1, ElTooltip, formItemProps as formItemProps$1, ElFormItem, ElForm, ElRow, ElCol, inputProps as inputProps$1, inputEmits as inputEmits$1, configProviderContextKey, ElConfigProvider, ElDialog, ElButton, ElTable, ElIcon, selectProps as selectProps$1, selectEmits as selectEmits$1, ElPageHeader, datePickerProps, linkProps as linkProps$1, ElSkeleton } from 'element-plus';
|
|
@@ -494,8 +494,12 @@ class RequestClient {
|
|
|
494
494
|
/**
|
|
495
495
|
* GET请求方法
|
|
496
496
|
*/
|
|
497
|
-
get(url, config) {
|
|
498
|
-
return this.request(url, {
|
|
497
|
+
get(url, params, config) {
|
|
498
|
+
return this.request(url, {
|
|
499
|
+
...config,
|
|
500
|
+
method: "GET",
|
|
501
|
+
params
|
|
502
|
+
});
|
|
499
503
|
}
|
|
500
504
|
/**
|
|
501
505
|
* 获取基础URL
|
|
@@ -1919,7 +1923,7 @@ const useFormDialog = (options = {}) => {
|
|
|
1919
1923
|
const formRef = ref();
|
|
1920
1924
|
const isUseComFormData = !formProps.formData;
|
|
1921
1925
|
let formData;
|
|
1922
|
-
|
|
1926
|
+
const Dialog = useDialog({
|
|
1923
1927
|
class: bem$2.b(),
|
|
1924
1928
|
width,
|
|
1925
1929
|
title,
|
|
@@ -1950,6 +1954,17 @@ const useFormDialog = (options = {}) => {
|
|
|
1950
1954
|
},
|
|
1951
1955
|
...dialogProps
|
|
1952
1956
|
});
|
|
1957
|
+
const open = Dialog.open;
|
|
1958
|
+
Dialog.open = async (...args) => {
|
|
1959
|
+
if (!dialogProps?.destroyOnClose) {
|
|
1960
|
+
setTimeout(() => {
|
|
1961
|
+
formRef.value?.clearValidate();
|
|
1962
|
+
}, 0);
|
|
1963
|
+
}
|
|
1964
|
+
const res = await open(...args);
|
|
1965
|
+
return res;
|
|
1966
|
+
};
|
|
1967
|
+
return Dialog;
|
|
1953
1968
|
};
|
|
1954
1969
|
|
|
1955
1970
|
const useTable$1 = (props) => {
|
|
@@ -2612,10 +2627,7 @@ const useTable = (props, config) => {
|
|
|
2612
2627
|
if (tableProps.value.showPagination) {
|
|
2613
2628
|
paginationHeight = document.querySelector(".el-pagination").offsetHeight + 12;
|
|
2614
2629
|
}
|
|
2615
|
-
const frameDistance =
|
|
2616
|
-
// 82
|
|
2617
|
-
48 + 40
|
|
2618
|
-
) : 40;
|
|
2630
|
+
const frameDistance = window.openMenuSelect ? 40 : 48 + 40;
|
|
2619
2631
|
tableHeight.value = window.innerHeight - topHeight - middleHeight - paginationHeight - frameDistance - props.offsetTop;
|
|
2620
2632
|
}, 0);
|
|
2621
2633
|
};
|
|
@@ -4123,21 +4135,17 @@ const useUniVue = (props) => {
|
|
|
4123
4135
|
});
|
|
4124
4136
|
};
|
|
4125
4137
|
watch(
|
|
4126
|
-
() => attrs,
|
|
4127
|
-
() => {
|
|
4138
|
+
() => attrs.visible,
|
|
4139
|
+
(newVal) => {
|
|
4140
|
+
console.log(newVal, instance);
|
|
4128
4141
|
if (instance) {
|
|
4129
|
-
|
|
4130
|
-
|
|
4131
|
-
instance.$
|
|
4132
|
-
})
|
|
4133
|
-
|
|
4134
|
-
instance.$off(eventName);
|
|
4135
|
-
instance.$on(eventName, newEvents[eventName]);
|
|
4136
|
-
});
|
|
4137
|
-
instance.$forceUpdate();
|
|
4142
|
+
try {
|
|
4143
|
+
console.log(instance);
|
|
4144
|
+
instance.$children[0].visible = newVal;
|
|
4145
|
+
} catch (e) {
|
|
4146
|
+
}
|
|
4138
4147
|
}
|
|
4139
|
-
}
|
|
4140
|
-
{ deep: true }
|
|
4148
|
+
}
|
|
4141
4149
|
);
|
|
4142
4150
|
onMounted(() => {
|
|
4143
4151
|
setupInstance();
|
|
@@ -4196,7 +4204,7 @@ var components = [
|
|
|
4196
4204
|
EpUniVue
|
|
4197
4205
|
];
|
|
4198
4206
|
|
|
4199
|
-
var version = "0.0.
|
|
4207
|
+
var version = "0.0.65";
|
|
4200
4208
|
|
|
4201
4209
|
var globalProperties = {
|
|
4202
4210
|
install(app) {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { useTemplateRef, ref, computed, onMounted } from 'vue';
|
|
2
2
|
import { useLocale } from '../../../hooks/use-locale.mjs';
|
|
3
3
|
import { mergeListByKey } from '../../../utils/utils.mjs';
|
|
4
|
-
import { getEnv } from '../../../utils/env.mjs';
|
|
5
4
|
|
|
6
5
|
const useSearchListPage = (props, config = {}) => {
|
|
7
6
|
const { calcTableHeight, tableProps, tableRef } = useTable(props);
|
|
@@ -60,10 +59,7 @@ const useTable = (props, config) => {
|
|
|
60
59
|
if (tableProps.value.showPagination) {
|
|
61
60
|
paginationHeight = document.querySelector(".el-pagination").offsetHeight + 12;
|
|
62
61
|
}
|
|
63
|
-
const frameDistance =
|
|
64
|
-
// 82
|
|
65
|
-
48 + 40
|
|
66
|
-
) : 40;
|
|
62
|
+
const frameDistance = window.openMenuSelect ? 40 : 48 + 40;
|
|
67
63
|
tableHeight.value = window.innerHeight - topHeight - middleHeight - paginationHeight - frameDistance - props.offsetTop;
|
|
68
64
|
}, 0);
|
|
69
65
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-search-list-page.mjs","sources":["../../../../../../packages/components/search-list-page/src/use-search-list-page.ts"],"sourcesContent":["import { ref, onMounted, computed, useTemplateRef } from 'vue'\nimport type { SearchListPageProps } from './search-list-page'\nimport type { ButtonsProps } from '@el-plus/components/buttons'\nimport type { FormInstance } from '@el-plus/components/form'\nimport type { TableInstance } from '@el-plus/components/table'\nimport type { FormItemProp } from 'element-plus'\nimport { mergeListByKey, getEnv } from '@el-plus/utils'\nimport { useLocale } from '@el-plus/hooks/use-locale'\n\nexport const useSearchListPage = (props: SearchListPageProps, config = {}) => {\n const { calcTableHeight, tableProps, tableRef } = useTable(props, config)\n const { formProps, validate, resetFields, formRef } = useForm(props, {\n calcTableHeight,\n })\n const { buttonsProps, searchButtons, search, reset } = useButtons(props, {\n validate,\n resetFields,\n tableRef,\n })\n return {\n formProps,\n tableProps,\n buttonsProps,\n searchButtons,\n search,\n reset,\n tableRef,\n formRef,\n beforeSearch: validate,\n }\n}\nconst useTable = (props: SearchListPageProps, config) => {\n const instanceName = 'tableRef'\n const tableRef = useTemplateRef<TableInstance>(instanceName)\n const tableHeight = ref(window.innerHeight)\n const tableProps = computed(() => {\n return {\n ref: instanceName,\n columns: props.columns,\n showPagination: true,\n height: tableHeight.value,\n showIndexCol: props.showIndexCol,\n showSelectionCol: props.showSelectionCol,\n showSingleSelectionCol: props.showSingleSelectionCol,\n actionButtons: props.actionButtons,\n formatColumns: props.formatColumns,\n api: props.api,\n reqAfter: props.reqAfter,\n reqBefore: props.reqBefore,\n reqData: props.formData,\n customColumnModule: props.customColumnModule,\n customColumnApi: props.customColumnApi,\n customColumnSaveApi: props.customColumnSaveApi,\n minWidth: props.minWidth,\n actionColWidth: props.actionColWidth,\n ...props.tableProps,\n }\n })\n const calcTableHeight = () => {\n setTimeout(() => {\n const topHeight = (document.getElementById('top') as HTMLElement)\n .offsetHeight\n const middleHeight = (document.getElementById('middle') as HTMLElement)\n .offsetHeight\n let paginationHeight = 0\n if (tableProps.value.showPagination) {\n paginationHeight =\n (document.querySelector('.el-pagination') as HTMLElement)\n .offsetHeight + 12\n }\n const frameDistance = getEnv()\n ? // 82\n 48 + 40\n : 40\n \n tableHeight.value =\n window.innerHeight -\n topHeight -\n middleHeight -\n paginationHeight -\n frameDistance -\n props.offsetTop!\n }, 0)\n }\n\n onMounted(calcTableHeight)\n return {\n tableRef,\n tableProps,\n calcTableHeight,\n }\n}\nconst useForm = (props: SearchListPageProps, { calcTableHeight }) => {\n const instanceName = 'formRef'\n const formRef = useTemplateRef<FormInstance>(instanceName)\n const formProps = computed(() => {\n return {\n ref: instanceName,\n formItemList: props.formItemList,\n isShowFold: true,\n modelValue: props.formData,\n ...props.formProps,\n onToggleStatus: () => {\n calcTableHeight()\n },\n }\n })\n // 校验\n const validate = () => {\n return formRef.value!.validate()\n }\n // 重置校验\n const resetFields = (props: FormItemProp) => {\n return formRef.value!.resetFields(props)\n }\n // 清理某个字段的表单验证信息\n const clearValidate = (props: FormItemProp) => {\n return formRef.value!.clearValidate(props)\n }\n return {\n formProps,\n formRef,\n validate,\n resetFields,\n clearValidate,\n }\n}\nconst useButtons = (\n props: SearchListPageProps,\n { validate, resetFields, tableRef },\n) => {\n const { t } = useLocale()\n const defaultButtons: ButtonsProps['list'] = [\n {\n name: t('ep.searchListPage.add'),\n prop: 'add',\n permission: props.name ? `${props.name}:ADD` : '',\n show: () => {\n return !!props.add\n },\n onClick: () => {\n props.add?.()\n },\n },\n // {\n // name: t('ep.searchListPage.templateDownload'),\n // prop: 'templateDownload',\n // permission: props.name ? `${props.name}:TEMPLATEDOWNLOAD` : '',\n // show: !!props.templateDownloadApi,\n // },\n // {\n // name: t('ep.searchListPage.import'),\n // prop: 'import',\n // permission: props.name ? `${props.name}:IMPORT` : '',\n // show: !!props.importApi,\n // },\n // {\n // name: t('ep.searchListPage.export'),\n // prop: 'export',\n // permission: props.name ? `${props.name}:EXPORT` : '',\n // show: !!props.exportApi,\n // },\n ]\n const list = mergeListByKey(defaultButtons, props.leftButtons)\n if (props.customColumnModule) {\n list.push({\n name: t('ep.customColumn.columnSettings'),\n prop: 'customColumn',\n type: 'primary',\n onClick: () => {\n tableRef.value.openCustomColumnDialog()\n },\n })\n }\n list.forEach((item) => {\n if (item.onClick) {\n const clickFn = item.onClick\n item.onClick = () => {\n // 增加选中项\n const rows = tableRef.value.elTableRef.getSelectionRows()\n clickFn(rows)\n }\n }\n })\n\n const buttonsProps = computed(() => {\n return {\n list,\n ...props.buttonsProps,\n }\n })\n // 搜索\n const search = async (isInitSearch = false) => {\n // await validate()\n tableRef.value.search(isInitSearch)\n }\n // 清空\n const reset = async () => {\n resetFields()\n search(true)\n }\n const searchButtons: ButtonsProps['list'] = [\n {\n name: t('ep.searchListPage.search'),\n type: 'primary',\n onClick: search.bind(null, true),\n },\n {\n name: t('ep.searchListPage.clear'),\n onClick: reset,\n },\n ]\n return {\n buttonsProps,\n searchButtons,\n search,\n reset,\n }\n}\n"],"names":["props"],"mappings":";;;;;AASO,MAAM,iBAAA,GAAoB,CAAC,KAAA,EAA4B,MAAA,GAAS,EAAC,KAAM;AAC5E,EAAA,MAAM,EAAE,eAAA,EAAiB,UAAA,EAAY,UAAS,GAAI,QAAA,CAAS,KAAa,CAAA;AACxE,EAAA,MAAM,EAAE,SAAA,EAAW,QAAA,EAAU,aAAa,OAAA,EAAQ,GAAI,QAAQ,KAAA,EAAO;AAAA,IACnE;AAAA,GACD,CAAA;AACD,EAAA,MAAM,EAAE,YAAA,EAAc,aAAA,EAAe,QAAQ,KAAA,EAAM,GAAI,WAAW,KAAA,EAAO;AAAA,IACvE,QAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACD,CAAA;AACD,EAAA,OAAO;AAAA,IACL,SAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,aAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA,EAAc;AAAA,GAChB;AACF;AACA,MAAM,QAAA,GAAW,CAAC,KAAA,EAA4B,MAAA,KAAW;AACvD,EAAA,MAAM,YAAA,GAAe,UAAA;AACrB,EAAA,MAAM,QAAA,GAAW,eAA8B,YAAY,CAAA;AAC3D,EAAA,MAAM,WAAA,GAAc,GAAA,CAAI,MAAA,CAAO,WAAW,CAAA;AAC1C,EAAA,MAAM,UAAA,GAAa,SAAS,MAAM;AAChC,IAAA,OAAO;AAAA,MACL,GAAA,EAAK,YAAA;AAAA,MACL,SAAS,KAAA,CAAM,OAAA;AAAA,MACf,cAAA,EAAgB,IAAA;AAAA,MAChB,QAAQ,WAAA,CAAY,KAAA;AAAA,MACpB,cAAc,KAAA,CAAM,YAAA;AAAA,MACpB,kBAAkB,KAAA,CAAM,gBAAA;AAAA,MACxB,wBAAwB,KAAA,CAAM,sBAAA;AAAA,MAC9B,eAAe,KAAA,CAAM,aAAA;AAAA,MACrB,eAAe,KAAA,CAAM,aAAA;AAAA,MACrB,KAAK,KAAA,CAAM,GAAA;AAAA,MACX,UAAU,KAAA,CAAM,QAAA;AAAA,MAChB,WAAW,KAAA,CAAM,SAAA;AAAA,MACjB,SAAS,KAAA,CAAM,QAAA;AAAA,MACf,oBAAoB,KAAA,CAAM,kBAAA;AAAA,MAC1B,iBAAiB,KAAA,CAAM,eAAA;AAAA,MACvB,qBAAqB,KAAA,CAAM,mBAAA;AAAA,MAC3B,UAAU,KAAA,CAAM,QAAA;AAAA,MAChB,gBAAgB,KAAA,CAAM,cAAA;AAAA,MACtB,GAAG,KAAA,CAAM;AAAA,KACX;AAAA,EACF,CAAC,CAAA;AACD,EAAA,MAAM,kBAAkB,MAAM;AAC5B,IAAA,UAAA,CAAW,MAAM;AACf,MAAA,MAAM,SAAA,GAAa,QAAA,CAAS,cAAA,CAAe,KAAK,CAAA,CAC7C,YAAA;AACH,MAAA,MAAM,YAAA,GAAgB,QAAA,CAAS,cAAA,CAAe,QAAQ,CAAA,CACnD,YAAA;AACH,MAAA,IAAI,gBAAA,GAAmB,CAAA;AACvB,MAAA,IAAI,UAAA,CAAW,MAAM,cAAA,EAAgB;AACnC,QAAA,gBAAA,GACG,QAAA,CAAS,aAAA,CAAc,gBAAgB,CAAA,CACrC,YAAA,GAAe,EAAA;AAAA,MACtB;AACA,MAAA,MAAM,gBAAgB,MAAA,EAAO;AAAA;AAAA,QAEzB,EAAA,GAAK;AAAA,UACL,EAAA;AAEJ,MAAA,WAAA,CAAY,QACV,MAAA,CAAO,WAAA,GACP,YACA,YAAA,GACA,gBAAA,GACA,gBACA,KAAA,CAAM,SAAA;AAAA,IACV,GAAG,CAAC,CAAA;AAAA,EACN,CAAA;AAEA,EAAA,SAAA,CAAU,eAAe,CAAA;AACzB,EAAA,OAAO;AAAA,IACL,QAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACF;AACF,CAAA;AACA,MAAM,OAAA,GAAU,CAAC,KAAA,EAA4B,EAAE,iBAAgB,KAAM;AACnE,EAAA,MAAM,YAAA,GAAe,SAAA;AACrB,EAAA,MAAM,OAAA,GAAU,eAA6B,YAAY,CAAA;AACzD,EAAA,MAAM,SAAA,GAAY,SAAS,MAAM;AAC/B,IAAA,OAAO;AAAA,MACL,GAAA,EAAK,YAAA;AAAA,MACL,cAAc,KAAA,CAAM,YAAA;AAAA,MACpB,UAAA,EAAY,IAAA;AAAA,MACZ,YAAY,KAAA,CAAM,QAAA;AAAA,MAClB,GAAG,KAAA,CAAM,SAAA;AAAA,MACT,gBAAgB,MAAM;AACpB,QAAA,eAAA,EAAgB;AAAA,MAClB;AAAA,KACF;AAAA,EACF,CAAC,CAAA;AAED,EAAA,MAAM,WAAW,MAAM;AACrB,IAAA,OAAO,OAAA,CAAQ,MAAO,QAAA,EAAS;AAAA,EACjC,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,CAACA,MAAAA,KAAwB;AAC3C,IAAA,OAAO,OAAA,CAAQ,KAAA,CAAO,WAAA,CAAYA,MAAK,CAAA;AAAA,EACzC,CAAA;AAEA,EAAA,MAAM,aAAA,GAAgB,CAACA,MAAAA,KAAwB;AAC7C,IAAA,OAAO,OAAA,CAAQ,KAAA,CAAO,aAAA,CAAcA,MAAK,CAAA;AAAA,EAC3C,CAAA;AACA,EAAA,OAAO;AAAA,IACL,SAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACF;AACF,CAAA;AACA,MAAM,aAAa,CACjB,KAAA,EACA,EAAE,QAAA,EAAU,WAAA,EAAa,UAAS,KAC/B;AACH,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,SAAA,EAAU;AACxB,EAAA,MAAM,cAAA,GAAuC;AAAA,IAC3C;AAAA,MACE,IAAA,EAAM,EAAE,uBAAuB,CAAA;AAAA,MAC/B,IAAA,EAAM,KAAA;AAAA,MACN,YAAY,KAAA,CAAM,IAAA,GAAO,CAAA,EAAG,KAAA,CAAM,IAAI,CAAA,IAAA,CAAA,GAAS,EAAA;AAAA,MAC/C,MAAM,MAAM;AACV,QAAA,OAAO,CAAC,CAAC,KAAA,CAAM,GAAA;AAAA,MACjB,CAAA;AAAA,MACA,SAAS,MAAM;AACb,QAAA,KAAA,CAAM,GAAA,IAAM;AAAA,MACd;AAAA;AACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAmBF;AACA,EAAA,MAAM,IAAA,GAAO,cAAA,CAAe,cAAA,EAAgB,KAAA,CAAM,WAAW,CAAA;AAC7D,EAAA,IAAI,MAAM,kBAAA,EAAoB;AAC5B,IAAA,IAAA,CAAK,IAAA,CAAK;AAAA,MACR,IAAA,EAAM,EAAE,gCAAgC,CAAA;AAAA,MACxC,IAAA,EAAM,cAAA;AAAA,MACN,IAAA,EAAM,SAAA;AAAA,MACN,SAAS,MAAM;AACb,QAAA,QAAA,CAAS,MAAM,sBAAA,EAAuB;AAAA,MACxC;AAAA,KACD,CAAA;AAAA,EACH;AACA,EAAA,IAAA,CAAK,OAAA,CAAQ,CAAC,IAAA,KAAS;AACrB,IAAA,IAAI,KAAK,OAAA,EAAS;AAChB,MAAA,MAAM,UAAU,IAAA,CAAK,OAAA;AACrB,MAAA,IAAA,CAAK,UAAU,MAAM;AAEnB,QAAA,MAAM,IAAA,GAAO,QAAA,CAAS,KAAA,CAAM,UAAA,CAAW,gBAAA,EAAiB;AACxD,QAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,MACd,CAAA;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AAED,EAAA,MAAM,YAAA,GAAe,SAAS,MAAM;AAClC,IAAA,OAAO;AAAA,MACL,IAAA;AAAA,MACA,GAAG,KAAA,CAAM;AAAA,KACX;AAAA,EACF,CAAC,CAAA;AAED,EAAA,MAAM,MAAA,GAAS,OAAO,YAAA,GAAe,KAAA,KAAU;AAE7C,IAAA,QAAA,CAAS,KAAA,CAAM,OAAO,YAAY,CAAA;AAAA,EACpC,CAAA;AAEA,EAAA,MAAM,QAAQ,YAAY;AACxB,IAAA,WAAA,EAAY;AACZ,IAAA,MAAA,CAAO,IAAI,CAAA;AAAA,EACb,CAAA;AACA,EAAA,MAAM,aAAA,GAAsC;AAAA,IAC1C;AAAA,MACE,IAAA,EAAM,EAAE,0BAA0B,CAAA;AAAA,MAClC,IAAA,EAAM,SAAA;AAAA,MACN,OAAA,EAAS,MAAA,CAAO,IAAA,CAAK,IAAA,EAAM,IAAI;AAAA,KACjC;AAAA,IACA;AAAA,MACE,IAAA,EAAM,EAAE,yBAAyB,CAAA;AAAA,MACjC,OAAA,EAAS;AAAA;AACX,GACF;AACA,EAAA,OAAO;AAAA,IACL,YAAA;AAAA,IACA,aAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GACF;AACF,CAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"use-search-list-page.mjs","sources":["../../../../../../packages/components/search-list-page/src/use-search-list-page.ts"],"sourcesContent":["import { ref, onMounted, computed, useTemplateRef } from 'vue'\nimport type { SearchListPageProps } from './search-list-page'\nimport type { ButtonsProps } from '@el-plus/components/buttons'\nimport type { FormInstance } from '@el-plus/components/form'\nimport type { TableInstance } from '@el-plus/components/table'\nimport type { FormItemProp } from 'element-plus'\nimport { mergeListByKey, getEnv } from '@el-plus/utils'\nimport { useLocale } from '@el-plus/hooks/use-locale'\n\nexport const useSearchListPage = (props: SearchListPageProps, config = {}) => {\n const { calcTableHeight, tableProps, tableRef } = useTable(props, config)\n const { formProps, validate, resetFields, formRef } = useForm(props, {\n calcTableHeight,\n })\n const { buttonsProps, searchButtons, search, reset } = useButtons(props, {\n validate,\n resetFields,\n tableRef,\n })\n return {\n formProps,\n tableProps,\n buttonsProps,\n searchButtons,\n search,\n reset,\n tableRef,\n formRef,\n beforeSearch: validate,\n }\n}\nconst useTable = (props: SearchListPageProps, config) => {\n const instanceName = 'tableRef'\n const tableRef = useTemplateRef<TableInstance>(instanceName)\n const tableHeight = ref(window.innerHeight)\n const tableProps = computed(() => {\n return {\n ref: instanceName,\n columns: props.columns,\n showPagination: true,\n height: tableHeight.value,\n showIndexCol: props.showIndexCol,\n showSelectionCol: props.showSelectionCol,\n showSingleSelectionCol: props.showSingleSelectionCol,\n actionButtons: props.actionButtons,\n formatColumns: props.formatColumns,\n api: props.api,\n reqAfter: props.reqAfter,\n reqBefore: props.reqBefore,\n reqData: props.formData,\n customColumnModule: props.customColumnModule,\n customColumnApi: props.customColumnApi,\n customColumnSaveApi: props.customColumnSaveApi,\n minWidth: props.minWidth,\n actionColWidth: props.actionColWidth,\n ...props.tableProps,\n }\n })\n const calcTableHeight = () => {\n setTimeout(() => {\n const topHeight = (document.getElementById('top') as HTMLElement)\n .offsetHeight\n const middleHeight = (document.getElementById('middle') as HTMLElement)\n .offsetHeight\n let paginationHeight = 0\n if (tableProps.value.showPagination) {\n paginationHeight =\n (document.querySelector('.el-pagination') as HTMLElement)\n .offsetHeight + 12\n }\n const frameDistance = window.openMenuSelect ? 40 : 48 + 40\n\n tableHeight.value =\n window.innerHeight -\n topHeight -\n middleHeight -\n paginationHeight -\n frameDistance -\n props.offsetTop!\n }, 0)\n }\n\n onMounted(calcTableHeight)\n return {\n tableRef,\n tableProps,\n calcTableHeight,\n }\n}\nconst useForm = (props: SearchListPageProps, { calcTableHeight }) => {\n const instanceName = 'formRef'\n const formRef = useTemplateRef<FormInstance>(instanceName)\n const formProps = computed(() => {\n return {\n ref: instanceName,\n formItemList: props.formItemList,\n isShowFold: true,\n modelValue: props.formData,\n ...props.formProps,\n onToggleStatus: () => {\n calcTableHeight()\n },\n }\n })\n // 校验\n const validate = () => {\n return formRef.value!.validate()\n }\n // 重置校验\n const resetFields = (props: FormItemProp) => {\n return formRef.value!.resetFields(props)\n }\n // 清理某个字段的表单验证信息\n const clearValidate = (props: FormItemProp) => {\n return formRef.value!.clearValidate(props)\n }\n return {\n formProps,\n formRef,\n validate,\n resetFields,\n clearValidate,\n }\n}\nconst useButtons = (\n props: SearchListPageProps,\n { validate, resetFields, tableRef },\n) => {\n const { t } = useLocale()\n const defaultButtons: ButtonsProps['list'] = [\n {\n name: t('ep.searchListPage.add'),\n prop: 'add',\n permission: props.name ? `${props.name}:ADD` : '',\n show: () => {\n return !!props.add\n },\n onClick: () => {\n props.add?.()\n },\n },\n // {\n // name: t('ep.searchListPage.templateDownload'),\n // prop: 'templateDownload',\n // permission: props.name ? `${props.name}:TEMPLATEDOWNLOAD` : '',\n // show: !!props.templateDownloadApi,\n // },\n // {\n // name: t('ep.searchListPage.import'),\n // prop: 'import',\n // permission: props.name ? `${props.name}:IMPORT` : '',\n // show: !!props.importApi,\n // },\n // {\n // name: t('ep.searchListPage.export'),\n // prop: 'export',\n // permission: props.name ? `${props.name}:EXPORT` : '',\n // show: !!props.exportApi,\n // },\n ]\n const list = mergeListByKey(defaultButtons, props.leftButtons)\n if (props.customColumnModule) {\n list.push({\n name: t('ep.customColumn.columnSettings'),\n prop: 'customColumn',\n type: 'primary',\n onClick: () => {\n tableRef.value.openCustomColumnDialog()\n },\n })\n }\n list.forEach((item) => {\n if (item.onClick) {\n const clickFn = item.onClick\n item.onClick = () => {\n // 增加选中项\n const rows = tableRef.value.elTableRef.getSelectionRows()\n clickFn(rows)\n }\n }\n })\n\n const buttonsProps = computed(() => {\n return {\n list,\n ...props.buttonsProps,\n }\n })\n // 搜索\n const search = async (isInitSearch = false) => {\n // await validate()\n tableRef.value.search(isInitSearch)\n }\n // 清空\n const reset = async () => {\n resetFields()\n search(true)\n }\n const searchButtons: ButtonsProps['list'] = [\n {\n name: t('ep.searchListPage.search'),\n type: 'primary',\n onClick: search.bind(null, true),\n },\n {\n name: t('ep.searchListPage.clear'),\n onClick: reset,\n },\n ]\n return {\n buttonsProps,\n searchButtons,\n search,\n reset,\n }\n}\n"],"names":["props"],"mappings":"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"}
|
|
@@ -160,21 +160,17 @@ const useUniVue = (props) => {
|
|
|
160
160
|
});
|
|
161
161
|
};
|
|
162
162
|
watch(
|
|
163
|
-
() => attrs,
|
|
164
|
-
() => {
|
|
163
|
+
() => attrs.visible,
|
|
164
|
+
(newVal) => {
|
|
165
|
+
console.log(newVal, instance);
|
|
165
166
|
if (instance) {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
instance.$
|
|
169
|
-
})
|
|
170
|
-
|
|
171
|
-
instance.$off(eventName);
|
|
172
|
-
instance.$on(eventName, newEvents[eventName]);
|
|
173
|
-
});
|
|
174
|
-
instance.$forceUpdate();
|
|
167
|
+
try {
|
|
168
|
+
console.log(instance);
|
|
169
|
+
instance.$children[0].visible = newVal;
|
|
170
|
+
} catch (e) {
|
|
171
|
+
}
|
|
175
172
|
}
|
|
176
|
-
}
|
|
177
|
-
{ deep: true }
|
|
173
|
+
}
|
|
178
174
|
);
|
|
179
175
|
onMounted(() => {
|
|
180
176
|
setupInstance();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-uni-vue.mjs","sources":["../../../../../../packages/components/uni-vue/src/use-uni-vue.ts"],"sourcesContent":["import { onMounted, ref, useAttrs, useTemplateRef, watch } from 'vue'\nimport { http } from '@el-plus/utils/http'\nimport Vue2 from 'vue2'\nimport VueRouter3 from 'vue-router3'\nimport { componentType } from './uni-vue'\nimport axios from 'axios'\nimport { ElMessage, ElLoading } from 'element-plus'\nexport const useUniVue = (props) => {\n const uniVue = useTemplateRef<HTMLElement>('uniVue')\n const { type } = props\n const loading = ref(true)\n const isAddress = type === 'address'\n const isBpm = type === 'bpm'\n // 是否需要加载静态资源\n const isLoadStatic = componentType.indexOf(type) > -1\n const attrs = useAttrs()\n const setupWindow = () => {\n Vue2.use(VueRouter3)\n if (!window.Vue) {\n window.Vue = Vue2\n }\n // 地址\n if (isAddress) {\n if (!window.axios) {\n window.axios = axios\n }\n if (!window.ElementUI) {\n window.ElementUI = {\n Message: ElMessage,\n Loading: ElLoading,\n }\n }\n }\n }\n setupWindow()\n const prepareVueAttributes = () => {\n const events = {}\n const _props = {}\n Object.keys(attrs).forEach((key) => {\n if (key.startsWith('on')) {\n let eventName = key.slice(2) // 去掉 'on' 前缀\n if (eventName.startsWith('Update:')) {\n // 处理 v-model:xxx 事件,转换为 update:xxx\n // 例如:onUpdate:modelValue -> update:modelValue\n eventName = 'update:' + eventName.slice(7)\n } else {\n // 将驼峰命名转换为短横线命名\n // 例如:onClick -> click\n eventName = eventName.replace(/([A-Z])/g, '-$1').toLowerCase()\n // 删除第一位的-\n eventName = eventName.slice(1)\n }\n events[eventName] = attrs[key]\n } else {\n _props[key] = attrs[key]\n }\n })\n return {\n on: events,\n props: _props,\n }\n }\n\n const cdn = '//j01.hongxinshop.com/'\n const getStaticJsUrl = () => {\n switch (type) {\n case 'bpm':\n return `${cdn}bpm-common/common/index.umd.min.js`\n case 'address':\n return `${cdn}address/static/hx-address-full.js`\n default:\n return ''\n }\n }\n const getStaticCssUrl = () => {\n switch (type) {\n case 'bpm':\n return `/bpm-common/common/index.css`\n case 'address':\n return `/address/static/hx-address.css`\n default:\n return ''\n }\n }\n const loadStaticJsResource = async () => {\n const promises: Promise<void>[] = []\n\n // 检查并加载element-ui.js(非bpm类型)\n if (!isBpm && !window.ElementUIComponents) {\n await new Promise((resolve, reject) => {\n const script = document.createElement('script')\n script.src = '/element-ui.js'\n script.onload = resolve\n script.onerror = reject\n document.body.appendChild(script)\n })\n }\n\n // 检查并加载原有的JS资源\n let globalName\n if (isAddress) {\n globalName = 'hxAddress'\n }\n if (isBpm) {\n globalName = 'index'\n }\n\n if (globalName && !window[globalName]) {\n promises.push(\n new Promise((resolve, reject) => {\n const script = document.createElement('script')\n script.src = getStaticJsUrl()\n script.onload = () => resolve()\n script.onerror = reject\n document.body.appendChild(script)\n }),\n )\n }\n\n return Promise.all(promises)\n }\n const loadStaticCssResource = async () => {\n const cssPromises: Promise<string>[] = []\n\n // 为非bpm类型加载element-ui.css\n if (!isBpm) {\n cssPromises.push(\n http\n .request<string>('/element-ui.css', {\n responseReturn: 'raw',\n baseURL: '',\n })\n .then((res) => res.data),\n )\n }\n\n // 加载原有的CSS资源\n const staticCssUrl = getStaticCssUrl()\n if (staticCssUrl) {\n cssPromises.push(\n http\n .request<string>(staticCssUrl, {\n responseReturn: 'raw',\n })\n .then((res) => res.data),\n )\n }\n\n const cssContents = await Promise.all(cssPromises)\n return cssContents.join('\\n')\n }\n let instance\n const setupInstance = async () => {\n if (instance) {\n return\n }\n // if (import.meta.hot) return // 每次热更新都会执行,在这里阻止,防止每次热更新页面都会重复插入组件\n const el = uniVue.value // 选择一个宿主元素\n const shadowRoot = el!.attachShadow({ mode: 'open' }) // 创建一个开放模式的 shadow root\n const container = document.createElement('div')\n if (isLoadStatic) {\n try {\n loading.value = true\n const [_res1, css] = await Promise.all([\n loadStaticJsResource(),\n loadStaticCssResource(),\n ])\n const style = document.createElement('style')\n style.textContent = css\n shadowRoot.appendChild(style)\n } catch (error) {\n console.log(error)\n } finally {\n loading.value = false\n }\n }\n shadowRoot.appendChild(container)\n instance = new Vue2({\n el: container,\n // @ts-expect-error 缺少类型定义\n router: new VueRouter3(),\n render: (h) => h(props.name, prepareVueAttributes()),\n })\n }\n\n // 监听 attrs 变化,更新 Vue 2 组件\n watch(\n () => attrs,\n () => {\n if (instance) {\n const { props: newProps, on: newEvents } = prepareVueAttributes()\n // 更新 props\n Object.keys(newProps).forEach((key) => {\n instance.$props[key] = newProps[key]\n })\n // 更新事件\n Object.keys(newEvents).forEach((eventName) => {\n instance.$off(eventName)\n instance.$on(eventName, newEvents[eventName])\n })\n // 强制重新渲染\n instance.$forceUpdate()\n }\n },\n { deep: true },\n )\n onMounted(() => {\n setupInstance()\n })\n\n return {\n loading,\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-uni-vue.mjs","sources":["../../../../../../packages/components/uni-vue/src/use-uni-vue.ts"],"sourcesContent":["import { onMounted, ref, useAttrs, useTemplateRef, watch } from 'vue'\nimport { http } from '@el-plus/utils/http'\nimport Vue2 from 'vue2'\nimport VueRouter3 from 'vue-router3'\nimport { componentType } from './uni-vue'\nimport axios from 'axios'\nimport { ElMessage, ElLoading } from 'element-plus'\nexport const useUniVue = (props) => {\n const uniVue = useTemplateRef<HTMLElement>('uniVue')\n const { type } = props\n const loading = ref(true)\n const isAddress = type === 'address'\n const isBpm = type === 'bpm'\n // 是否需要加载静态资源\n const isLoadStatic = componentType.indexOf(type) > -1\n const attrs = useAttrs()\n const setupWindow = () => {\n Vue2.use(VueRouter3)\n if (!window.Vue) {\n window.Vue = Vue2\n }\n // 地址\n if (isAddress) {\n if (!window.axios) {\n window.axios = axios\n }\n if (!window.ElementUI) {\n window.ElementUI = {\n Message: ElMessage,\n Loading: ElLoading,\n }\n }\n }\n }\n setupWindow()\n const prepareVueAttributes = () => {\n const events = {}\n const _props = {}\n Object.keys(attrs).forEach((key) => {\n if (key.startsWith('on')) {\n let eventName = key.slice(2) // 去掉 'on' 前缀\n if (eventName.startsWith('Update:')) {\n // 处理 v-model:xxx 事件,转换为 update:xxx\n // 例如:onUpdate:modelValue -> update:modelValue\n eventName = 'update:' + eventName.slice(7)\n } else {\n // 将驼峰命名转换为短横线命名\n // 例如:onClick -> click\n eventName = eventName.replace(/([A-Z])/g, '-$1').toLowerCase()\n // 删除第一位的-\n eventName = eventName.slice(1)\n }\n events[eventName] = attrs[key]\n } else {\n _props[key] = attrs[key]\n }\n })\n return {\n on: events,\n props: _props,\n }\n }\n\n const cdn = '//j01.hongxinshop.com/'\n const getStaticJsUrl = () => {\n switch (type) {\n case 'bpm':\n return `${cdn}bpm-common/common/index.umd.min.js`\n case 'address':\n return `${cdn}address/static/hx-address-full.js`\n default:\n return ''\n }\n }\n const getStaticCssUrl = () => {\n switch (type) {\n case 'bpm':\n return `/bpm-common/common/index.css`\n case 'address':\n return `/address/static/hx-address.css`\n default:\n return ''\n }\n }\n const loadStaticJsResource = async () => {\n const promises: Promise<void>[] = []\n\n // 检查并加载element-ui.js(非bpm类型)\n if (!isBpm && !window.ElementUIComponents) {\n await new Promise((resolve, reject) => {\n const script = document.createElement('script')\n script.src = '/element-ui.js'\n script.onload = resolve\n script.onerror = reject\n document.body.appendChild(script)\n })\n }\n\n // 检查并加载原有的JS资源\n let globalName\n if (isAddress) {\n globalName = 'hxAddress'\n }\n if (isBpm) {\n globalName = 'index'\n }\n\n if (globalName && !window[globalName]) {\n promises.push(\n new Promise((resolve, reject) => {\n const script = document.createElement('script')\n script.src = getStaticJsUrl()\n script.onload = () => resolve()\n script.onerror = reject\n document.body.appendChild(script)\n }),\n )\n }\n\n return Promise.all(promises)\n }\n const loadStaticCssResource = async () => {\n const cssPromises: Promise<string>[] = []\n\n // 为非bpm类型加载element-ui.css\n if (!isBpm) {\n cssPromises.push(\n http\n .request<string>('/element-ui.css', {\n responseReturn: 'raw',\n baseURL: '',\n })\n .then((res) => res.data),\n )\n }\n\n // 加载原有的CSS资源\n const staticCssUrl = getStaticCssUrl()\n if (staticCssUrl) {\n cssPromises.push(\n http\n .request<string>(staticCssUrl, {\n responseReturn: 'raw',\n })\n .then((res) => res.data),\n )\n }\n\n const cssContents = await Promise.all(cssPromises)\n return cssContents.join('\\n')\n }\n let instance\n const setupInstance = async () => {\n if (instance) {\n return\n }\n // if (import.meta.hot) return // 每次热更新都会执行,在这里阻止,防止每次热更新页面都会重复插入组件\n const el = uniVue.value // 选择一个宿主元素\n const shadowRoot = el!.attachShadow({ mode: 'open' }) // 创建一个开放模式的 shadow root\n const container = document.createElement('div')\n if (isLoadStatic) {\n try {\n loading.value = true\n const [_res1, css] = await Promise.all([\n loadStaticJsResource(),\n loadStaticCssResource(),\n ])\n const style = document.createElement('style')\n style.textContent = css\n shadowRoot.appendChild(style)\n } catch (error) {\n console.log(error)\n } finally {\n loading.value = false\n }\n }\n shadowRoot.appendChild(container)\n instance = new Vue2({\n el: container,\n // @ts-expect-error 缺少类型定义\n router: new VueRouter3(),\n render: (h) => h(props.name, prepareVueAttributes()),\n })\n }\n\n // 监听 attrs 变化,更新 Vue 2 组件\n // watch(\n // () => attrs,\n // () => {\n // if (instance) {\n // const { props: newProps, on: newEvents } = prepareVueAttributes()\n // // 更新 props\n // Object.keys(newProps).forEach((key) => {\n // instance.$props[key] = newProps[key]\n // })\n // // 更新事件\n // Object.keys(newEvents).forEach((eventName) => {\n // instance.$off(eventName)\n // instance.$on(eventName, newEvents[eventName])\n // })\n // // 强制重新渲染\n // instance.$forceUpdate()\n // }\n // },\n // { deep: true },\n // )\n watch(\n () => attrs.visible,\n (newVal) => {\n console.log(newVal, instance)\n\n if (instance) {\n try {\n console.log(instance)\n\n instance.$children[0].visible = newVal\n } catch (e) {\n // 忽略更新异常\n }\n }\n },\n )\n\n onMounted(() => {\n setupInstance()\n })\n\n return {\n loading,\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ const useFormDialog = (options = {}) => {
|
|
|
16
16
|
const formRef = ref();
|
|
17
17
|
const isUseComFormData = !formProps.formData;
|
|
18
18
|
let formData;
|
|
19
|
-
|
|
19
|
+
const Dialog = useDialog({
|
|
20
20
|
class: bem.b(),
|
|
21
21
|
width,
|
|
22
22
|
title,
|
|
@@ -47,6 +47,17 @@ const useFormDialog = (options = {}) => {
|
|
|
47
47
|
},
|
|
48
48
|
...dialogProps
|
|
49
49
|
});
|
|
50
|
+
const open = Dialog.open;
|
|
51
|
+
Dialog.open = async (...args) => {
|
|
52
|
+
if (!dialogProps?.destroyOnClose) {
|
|
53
|
+
setTimeout(() => {
|
|
54
|
+
formRef.value?.clearValidate();
|
|
55
|
+
}, 0);
|
|
56
|
+
}
|
|
57
|
+
const res = await open(...args);
|
|
58
|
+
return res;
|
|
59
|
+
};
|
|
60
|
+
return Dialog;
|
|
50
61
|
};
|
|
51
62
|
|
|
52
63
|
export { useFormDialog };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-form-dialog.mjs","sources":["../../../../../packages/hooks/dialog/use-form-dialog.tsx"],"sourcesContent":["import type { DialogOptions } from './use-dialog'\nimport type { FormProps } from '@el-plus/components/form'\nimport EpForm from '@el-plus/components/form'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport { useDialog } from './use-dialog'\nimport { reactive, ref, toRaw } from 'vue'\nconst bem = createNameSpace('form-dialog')\n\ntype Options = {\n title?: string\n width?: string\n dialogProps?: DialogOptions\n formData?: FormProps['model']\n onBeforeConfirm?: (\n formData: FormProps['model'],\n resolve: (value: FormProps['model']) => void,\n ) => Promise<void>\n onBeforeCancel?: (\n formData: FormProps['model'],\n resolve: (value: string) => void,\n ) => Promise<void>\n} & FormProps\nexport const useFormDialog = (options: Options = {}) => {\n const {\n dialogProps,\n title,\n width = '80%',\n onBeforeConfirm,\n onBeforeCancel,\n ...formProps\n } = options\n const formRef = ref()\n const isUseComFormData = !formProps.formData\n let formData\n
|
|
1
|
+
{"version":3,"file":"use-form-dialog.mjs","sources":["../../../../../packages/hooks/dialog/use-form-dialog.tsx"],"sourcesContent":["import type { DialogOptions } from './use-dialog'\nimport type { FormProps } from '@el-plus/components/form'\nimport EpForm from '@el-plus/components/form'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport { useDialog } from './use-dialog'\nimport { nextTick, reactive, ref, toRaw } from 'vue'\nconst bem = createNameSpace('form-dialog')\n\ntype Options = {\n title?: string\n width?: string\n dialogProps?: DialogOptions\n formData?: FormProps['model']\n onBeforeConfirm?: (\n formData: FormProps['model'],\n resolve: (value: FormProps['model']) => void,\n ) => Promise<void>\n onBeforeCancel?: (\n formData: FormProps['model'],\n resolve: (value: string) => void,\n ) => Promise<void>\n} & FormProps\nexport const useFormDialog = (options: Options = {}) => {\n const {\n dialogProps,\n title,\n width = '80%',\n onBeforeConfirm,\n onBeforeCancel,\n ...formProps\n } = options\n const formRef = ref()\n const isUseComFormData = !formProps.formData\n let formData\n const Dialog = useDialog({\n class: bem.b(),\n width,\n title,\n render: () => {\n formData = isUseComFormData ? reactive({}) : formProps.formData // eslint-disable-line\n return (\n <EpForm\n ref={formRef}\n v-model={formData}\n {...{\n col: 1,\n 'label-width': 'auto',\n ...formProps,\n }}\n />\n )\n },\n onConfirm: async (resolve) => {\n await formRef.value.validate()\n if (onBeforeConfirm) {\n await onBeforeConfirm(formData, resolve)\n }\n return resolve(formData)\n },\n onCancel: async (resolve) => {\n if (onBeforeCancel) {\n await onBeforeCancel(formData, resolve)\n }\n resolve('cancel')\n },\n ...dialogProps,\n })\n const open = Dialog.open\n Dialog.open = async (...args) => {\n // 清除校验(fix: 不销毁且外面传递formData时, 再次打开校验不清除)\n if (!dialogProps?.destroyOnClose) {\n setTimeout(() => {\n formRef.value?.clearValidate()\n }, 0)\n }\n const res = await open(...args)\n return res\n }\n return Dialog\n}\n"],"names":["bem","createNameSpace","useFormDialog","options","dialogProps","title","width","onBeforeConfirm","onBeforeCancel","formProps","formRef","ref","isUseComFormData","formData","Dialog","useDialog","class","b","render","reactive","_createVNode","EpForm","_mergeProps","$event","col","onConfirm","resolve","value","validate","onCancel","open","args","destroyOnClose","setTimeout","clearValidate","res"],"mappings":";;;;;AAMA,MAAMA,GAAAA,GAAMC,gBAAgB,aAAa,CAAA;AAgBlC,MAAMC,aAAAA,GAAgBA,CAACC,OAAAA,GAAmB,EAAC,KAAM;AACtD,EAAA,MAAM;AAAA,IACJC,WAAAA;AAAAA,IACAC,KAAAA;AAAAA,IACAC,KAAAA,GAAQ,KAAA;AAAA,IACRC,eAAAA;AAAAA,IACAC,cAAAA;AAAAA,IACA,GAAGC;AAAAA,GACL,GAAIN,OAAAA;AACJ,EAAA,MAAMO,UAAUC,GAAAA,EAAI;AACpB,EAAA,MAAMC,gBAAAA,GAAmB,CAACH,SAAAA,CAAUI,QAAAA;AACpC,EAAA,IAAIA,QAAAA;AACJ,EAAA,MAAMC,SAASC,SAAAA,CAAU;AAAA,IACvBC,KAAAA,EAAOhB,IAAIiB,CAAAA,EAAE;AAAA,IACbX,KAAAA;AAAAA,IACAD,KAAAA;AAAAA,IACAa,QAAQA,MAAM;AACZL,MAAAA,QAAAA,GAAWD,gBAAAA,GAAmBO,QAAAA,CAAS,EAAE,IAAIV,SAAAA,CAAUI,QAAAA;AACvD,MAAA,OAAAO,WAAAA,CAAAC,QAAAC,UAAAA,CAAA;AAAA,QAAA,KAAA,EAESZ,OAAAA;AAAAA,QAAO,YAAA,EACHG,QAAAA;AAAAA,QAAQ,qBAAA,EAAAU,YAARV,QAAAA,GAAQU;AAAAA,OAAA,EAAA;AAAA,QAEfC,GAAAA,EAAK,CAAA;AAAA,QACL,aAAA,EAAe,MAAA;AAAA,QACf,GAAGf;AAAAA,OAAS,GAAA,IAAA,CAAA;AAAA,IAIpB,CAAA;AAAA,IACAgB,SAAAA,EAAW,OAAOC,OAAAA,KAAY;AAC5B,MAAA,MAAMhB,OAAAA,CAAQiB,MAAMC,QAAAA,EAAS;AAC7B,MAAA,IAAIrB,eAAAA,EAAiB;AACnB,QAAA,MAAMA,eAAAA,CAAgBM,UAAUa,OAAO,CAAA;AAAA,MACzC;AACA,MAAA,OAAOA,QAAQb,QAAQ,CAAA;AAAA,IACzB,CAAA;AAAA,IACAgB,QAAAA,EAAU,OAAOH,OAAAA,KAAY;AAC3B,MAAA,IAAIlB,cAAAA,EAAgB;AAClB,QAAA,MAAMA,cAAAA,CAAeK,UAAUa,OAAO,CAAA;AAAA,MACxC;AACAA,MAAAA,OAAAA,CAAQ,QAAQ,CAAA;AAAA,IAClB,CAAA;AAAA,IACA,GAAGtB;AAAAA,GACJ,CAAA;AACD,EAAA,MAAM0B,OAAOhB,MAAAA,CAAOgB,IAAAA;AACpBhB,EAAAA,MAAAA,CAAOgB,IAAAA,GAAO,UAAUC,IAAAA,KAAS;AAE/B,IAAA,IAAI,CAAC3B,aAAa4B,cAAAA,EAAgB;AAChCC,MAAAA,UAAAA,CAAW,MAAM;AACfvB,QAAAA,OAAAA,CAAQiB,OAAOO,aAAAA,EAAc;AAAA,MAC/B,GAAG,CAAC,CAAA;AAAA,IACN;AACA,IAAA,MAAMC,GAAAA,GAAM,MAAML,IAAAA,CAAK,GAAGC,IAAI,CAAA;AAC9B,IAAA,OAAOI,GAAAA;AAAAA,EACT,CAAA;AACA,EAAA,OAAOrB,MAAAA;AACT;;;;"}
|
package/es/package.json.mjs
CHANGED
|
@@ -7,7 +7,7 @@ declare class RequestClient {
|
|
|
7
7
|
addResponseInterceptor: InterceptorManager['addResponseInterceptor'];
|
|
8
8
|
constructor(options?: RequestClientOptions);
|
|
9
9
|
delete<T = any, R = HttpSuccessResponse<T>>(url: string, config?: RequestClientConfig): Promise<R>;
|
|
10
|
-
get<T = any, R = HttpSuccessResponse<T>>(url: string, config?: RequestClientConfig): Promise<R>;
|
|
10
|
+
get<T = any, R = HttpSuccessResponse<T>>(url: string, params?: any, config?: RequestClientConfig): Promise<R>;
|
|
11
11
|
getBaseUrl(): string | undefined;
|
|
12
12
|
post<T = any, R = HttpSuccessResponse<T>>(url: string, data?: any, config?: RequestClientConfig): Promise<R>;
|
|
13
13
|
put<T = any, R = HttpSuccessResponse<T>>(url: string, data?: any, config?: RequestClientConfig): Promise<R>;
|
|
@@ -30,8 +30,12 @@ class RequestClient {
|
|
|
30
30
|
/**
|
|
31
31
|
* GET请求方法
|
|
32
32
|
*/
|
|
33
|
-
get(url, config) {
|
|
34
|
-
return this.request(url, {
|
|
33
|
+
get(url, params, config) {
|
|
34
|
+
return this.request(url, {
|
|
35
|
+
...config,
|
|
36
|
+
method: "GET",
|
|
37
|
+
params
|
|
38
|
+
});
|
|
35
39
|
}
|
|
36
40
|
/**
|
|
37
41
|
* 获取基础URL
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-client.mjs","sources":["../../../../../../packages/utils/http/core/request-client.ts"],"sourcesContent":["import type { AxiosInstance, AxiosResponse } from 'axios'\nimport type {\n RequestClientConfig,\n RequestClientOptions,\n HttpSuccessResponse,\n} from './types'\nimport defu from 'defu'\nimport axios from 'axios'\n// import qs from 'qs'\nimport * as qs from 'qs'
|
|
1
|
+
{"version":3,"file":"request-client.mjs","sources":["../../../../../../packages/utils/http/core/request-client.ts"],"sourcesContent":["import type { AxiosInstance, AxiosResponse } from 'axios'\nimport type {\n RequestClientConfig,\n RequestClientOptions,\n HttpSuccessResponse,\n} from './types'\nimport defu from 'defu'\nimport axios from 'axios'\n// import qs from 'qs'\nimport * as qs from 'qs'\nimport { isString } from '@vue/shared'\nimport { bindMethods } from '@el-plus/utils/utils'\nimport { InterceptorManager } from './modules/interceptor'\nfunction getParamsSerializer(\n paramsSerializer: RequestClientOptions['paramsSerializer'],\n) {\n if (isString(paramsSerializer)) {\n switch (paramsSerializer) {\n case 'brackets': {\n return (params: any) =>\n qs.stringify(params, { arrayFormat: 'brackets' })\n }\n case 'comma': {\n return (params: any) => qs.stringify(params, { arrayFormat: 'comma' })\n }\n case 'indices': {\n return (params: any) => qs.stringify(params, { arrayFormat: 'indices' })\n }\n case 'repeat': {\n return (params: any) => qs.stringify(params, { arrayFormat: 'repeat' })\n }\n }\n }\n return paramsSerializer\n}\n\nclass RequestClient {\n public readonly instance: AxiosInstance\n // 拦截器\n public addRequestInterceptor: InterceptorManager['addRequestInterceptor']\n public addResponseInterceptor: InterceptorManager['addResponseInterceptor']\n constructor(options: RequestClientOptions = {}) {\n // 合并默认配置和传入的配置\n const defaultConfig: RequestClientOptions = {\n headers: {\n 'Content-Type': 'application/json;charset=utf-8',\n },\n responseReturn: 'raw',\n // 默认超时时间10s\n timeout: 10_000,\n }\n const { ...axiosConfig } = options\n const requestConfig = defu(axiosConfig, defaultConfig)\n // requestConfig.paramsSerializer = getParamsSerializer(\n // requestConfig.paramsSerializer,\n // )\n this.instance = axios.create(requestConfig)\n\n bindMethods(this)\n\n // 实例化拦截器管理器\n const interceptorManager = new InterceptorManager(this.instance)\n this.addRequestInterceptor =\n interceptorManager.addRequestInterceptor.bind(interceptorManager)\n this.addResponseInterceptor =\n interceptorManager.addResponseInterceptor.bind(interceptorManager)\n }\n\n /**\n * DELETE请求方法\n */\n public delete<T = any, R = HttpSuccessResponse<T>>(\n url: string,\n config?: RequestClientConfig,\n ): Promise<R> {\n return this.request<T>(url, { ...config, method: 'DELETE' }) as Promise<R>\n }\n\n /**\n * GET请求方法\n */\n public get<T = any, R = HttpSuccessResponse<T>>(\n url: string,\n params?: any,\n config?: RequestClientConfig,\n ): Promise<R> {\n return this.request<T>(url, {\n ...config,\n method: 'GET',\n params,\n }) as Promise<R>\n }\n\n /**\n * 获取基础URL\n */\n public getBaseUrl() {\n return this.instance.defaults.baseURL\n }\n\n /**\n * POST请求方法\n */\n public post<T = any, R = HttpSuccessResponse<T>>(\n url: string,\n data?: any,\n config?: RequestClientConfig,\n ): Promise<R> {\n return this.request(url, { ...config, data, method: 'POST' }) as Promise<R>\n }\n\n /**\n * PUT请求方法\n */\n public put<T = any, R = HttpSuccessResponse<T>>(\n url: string,\n data?: any,\n config?: RequestClientConfig,\n ): Promise<R> {\n return this.request(url, { ...config, data, method: 'PUT' }) as Promise<R>\n }\n\n /**\n * 通用的请求方法\n */\n public async request<T, R = HttpSuccessResponse<T>>(\n url: string,\n config: RequestClientConfig,\n ): Promise<R> {\n try {\n const response: AxiosResponse<R> = await this.instance({\n url,\n ...config,\n // ...(config.paramsSerializer\n // ? { paramsSerializer: getParamsSerializer(config.paramsSerializer) }\n // : {}),\n })\n return response as R\n } catch (error: any) {\n throw error.response ? error.response.data : error\n }\n }\n}\nexport { RequestClient }\n"],"names":[],"mappings":";;;;;AAoCA,MAAM,aAAA,CAAc;AAAA,EAKlB,WAAA,CAAY,OAAA,GAAgC,EAAC,EAAG;AAE9C,IAAA,MAAM,aAAA,GAAsC;AAAA,MAC1C,OAAA,EAAS;AAAA,QACP,cAAA,EAAgB;AAAA,OAClB;AAAA,MACA,cAAA,EAAgB,KAAA;AAAA;AAAA,MAEhB,OAAA,EAAS;AAAA,KACX;AACA,IAAA,MAAM,EAAE,GAAG,WAAA,EAAY,GAAI,OAAA;AAC3B,IAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,WAAA,EAAa,aAAa,CAAA;AAIrD,IAAA,IAAA,CAAK,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,aAAa,CAAA;AAE1C,IAAA,WAAA,CAAY,IAAI,CAAA;AAGhB,IAAA,MAAM,kBAAA,GAAqB,IAAI,kBAAA,CAAmB,IAAA,CAAK,QAAQ,CAAA;AAC/D,IAAA,IAAA,CAAK,qBAAA,GACH,kBAAA,CAAmB,qBAAA,CAAsB,IAAA,CAAK,kBAAkB,CAAA;AAClE,IAAA,IAAA,CAAK,sBAAA,GACH,kBAAA,CAAmB,sBAAA,CAAuB,IAAA,CAAK,kBAAkB,CAAA;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA,EAKO,MAAA,CACL,KACA,MAAA,EACY;AACZ,IAAA,OAAO,IAAA,CAAK,QAAW,GAAA,EAAK,EAAE,GAAG,MAAA,EAAQ,MAAA,EAAQ,UAAU,CAAA;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA,EAKO,GAAA,CACL,GAAA,EACA,MAAA,EACA,MAAA,EACY;AACZ,IAAA,OAAO,IAAA,CAAK,QAAW,GAAA,EAAK;AAAA,MAC1B,GAAG,MAAA;AAAA,MACH,MAAA,EAAQ,KAAA;AAAA,MACR;AAAA,KACD,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKO,UAAA,GAAa;AAClB,IAAA,OAAO,IAAA,CAAK,SAAS,QAAA,CAAS,OAAA;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKO,IAAA,CACL,GAAA,EACA,IAAA,EACA,MAAA,EACY;AACZ,IAAA,OAAO,IAAA,CAAK,QAAQ,GAAA,EAAK,EAAE,GAAG,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,MAAA,EAAQ,CAAA;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA,EAKO,GAAA,CACL,GAAA,EACA,IAAA,EACA,MAAA,EACY;AACZ,IAAA,OAAO,IAAA,CAAK,QAAQ,GAAA,EAAK,EAAE,GAAG,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,CAAA;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA,EAKA,MAAa,OAAA,CACX,GAAA,EACA,MAAA,EACY;AACZ,IAAA,IAAI;AACF,MAAA,MAAM,QAAA,GAA6B,MAAM,IAAA,CAAK,QAAA,CAAS;AAAA,QACrD,GAAA;AAAA,QACA,GAAG;AAAA;AAAA;AAAA;AAAA,OAIJ,CAAA;AACD,MAAA,OAAO,QAAA;AAAA,IACT,SAAS,KAAA,EAAY;AACnB,MAAA,MAAM,KAAA,CAAM,QAAA,GAAW,KAAA,CAAM,QAAA,CAAS,IAAA,GAAO,KAAA;AAAA,IAC/C;AAAA,EACF;AACF;;;;"}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
var vue = require('vue');
|
|
4
4
|
var useLocale = require('../../../hooks/use-locale.js');
|
|
5
5
|
var utils = require('../../../utils/utils.js');
|
|
6
|
-
var env = require('../../../utils/env.js');
|
|
7
6
|
|
|
8
7
|
const useSearchListPage = (props, config = {}) => {
|
|
9
8
|
const { calcTableHeight, tableProps, tableRef } = useTable(props);
|
|
@@ -62,10 +61,7 @@ const useTable = (props, config) => {
|
|
|
62
61
|
if (tableProps.value.showPagination) {
|
|
63
62
|
paginationHeight = document.querySelector(".el-pagination").offsetHeight + 12;
|
|
64
63
|
}
|
|
65
|
-
const frameDistance =
|
|
66
|
-
// 82
|
|
67
|
-
48 + 40
|
|
68
|
-
) : 40;
|
|
64
|
+
const frameDistance = window.openMenuSelect ? 40 : 48 + 40;
|
|
69
65
|
tableHeight.value = window.innerHeight - topHeight - middleHeight - paginationHeight - frameDistance - props.offsetTop;
|
|
70
66
|
}, 0);
|
|
71
67
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-search-list-page.js","sources":["../../../../../../packages/components/search-list-page/src/use-search-list-page.ts"],"sourcesContent":["import { ref, onMounted, computed, useTemplateRef } from 'vue'\nimport type { SearchListPageProps } from './search-list-page'\nimport type { ButtonsProps } from '@el-plus/components/buttons'\nimport type { FormInstance } from '@el-plus/components/form'\nimport type { TableInstance } from '@el-plus/components/table'\nimport type { FormItemProp } from 'element-plus'\nimport { mergeListByKey, getEnv } from '@el-plus/utils'\nimport { useLocale } from '@el-plus/hooks/use-locale'\n\nexport const useSearchListPage = (props: SearchListPageProps, config = {}) => {\n const { calcTableHeight, tableProps, tableRef } = useTable(props, config)\n const { formProps, validate, resetFields, formRef } = useForm(props, {\n calcTableHeight,\n })\n const { buttonsProps, searchButtons, search, reset } = useButtons(props, {\n validate,\n resetFields,\n tableRef,\n })\n return {\n formProps,\n tableProps,\n buttonsProps,\n searchButtons,\n search,\n reset,\n tableRef,\n formRef,\n beforeSearch: validate,\n }\n}\nconst useTable = (props: SearchListPageProps, config) => {\n const instanceName = 'tableRef'\n const tableRef = useTemplateRef<TableInstance>(instanceName)\n const tableHeight = ref(window.innerHeight)\n const tableProps = computed(() => {\n return {\n ref: instanceName,\n columns: props.columns,\n showPagination: true,\n height: tableHeight.value,\n showIndexCol: props.showIndexCol,\n showSelectionCol: props.showSelectionCol,\n showSingleSelectionCol: props.showSingleSelectionCol,\n actionButtons: props.actionButtons,\n formatColumns: props.formatColumns,\n api: props.api,\n reqAfter: props.reqAfter,\n reqBefore: props.reqBefore,\n reqData: props.formData,\n customColumnModule: props.customColumnModule,\n customColumnApi: props.customColumnApi,\n customColumnSaveApi: props.customColumnSaveApi,\n minWidth: props.minWidth,\n actionColWidth: props.actionColWidth,\n ...props.tableProps,\n }\n })\n const calcTableHeight = () => {\n setTimeout(() => {\n const topHeight = (document.getElementById('top') as HTMLElement)\n .offsetHeight\n const middleHeight = (document.getElementById('middle') as HTMLElement)\n .offsetHeight\n let paginationHeight = 0\n if (tableProps.value.showPagination) {\n paginationHeight =\n (document.querySelector('.el-pagination') as HTMLElement)\n .offsetHeight + 12\n }\n const frameDistance = getEnv()\n ? // 82\n 48 + 40\n : 40\n \n tableHeight.value =\n window.innerHeight -\n topHeight -\n middleHeight -\n paginationHeight -\n frameDistance -\n props.offsetTop!\n }, 0)\n }\n\n onMounted(calcTableHeight)\n return {\n tableRef,\n tableProps,\n calcTableHeight,\n }\n}\nconst useForm = (props: SearchListPageProps, { calcTableHeight }) => {\n const instanceName = 'formRef'\n const formRef = useTemplateRef<FormInstance>(instanceName)\n const formProps = computed(() => {\n return {\n ref: instanceName,\n formItemList: props.formItemList,\n isShowFold: true,\n modelValue: props.formData,\n ...props.formProps,\n onToggleStatus: () => {\n calcTableHeight()\n },\n }\n })\n // 校验\n const validate = () => {\n return formRef.value!.validate()\n }\n // 重置校验\n const resetFields = (props: FormItemProp) => {\n return formRef.value!.resetFields(props)\n }\n // 清理某个字段的表单验证信息\n const clearValidate = (props: FormItemProp) => {\n return formRef.value!.clearValidate(props)\n }\n return {\n formProps,\n formRef,\n validate,\n resetFields,\n clearValidate,\n }\n}\nconst useButtons = (\n props: SearchListPageProps,\n { validate, resetFields, tableRef },\n) => {\n const { t } = useLocale()\n const defaultButtons: ButtonsProps['list'] = [\n {\n name: t('ep.searchListPage.add'),\n prop: 'add',\n permission: props.name ? `${props.name}:ADD` : '',\n show: () => {\n return !!props.add\n },\n onClick: () => {\n props.add?.()\n },\n },\n // {\n // name: t('ep.searchListPage.templateDownload'),\n // prop: 'templateDownload',\n // permission: props.name ? `${props.name}:TEMPLATEDOWNLOAD` : '',\n // show: !!props.templateDownloadApi,\n // },\n // {\n // name: t('ep.searchListPage.import'),\n // prop: 'import',\n // permission: props.name ? `${props.name}:IMPORT` : '',\n // show: !!props.importApi,\n // },\n // {\n // name: t('ep.searchListPage.export'),\n // prop: 'export',\n // permission: props.name ? `${props.name}:EXPORT` : '',\n // show: !!props.exportApi,\n // },\n ]\n const list = mergeListByKey(defaultButtons, props.leftButtons)\n if (props.customColumnModule) {\n list.push({\n name: t('ep.customColumn.columnSettings'),\n prop: 'customColumn',\n type: 'primary',\n onClick: () => {\n tableRef.value.openCustomColumnDialog()\n },\n })\n }\n list.forEach((item) => {\n if (item.onClick) {\n const clickFn = item.onClick\n item.onClick = () => {\n // 增加选中项\n const rows = tableRef.value.elTableRef.getSelectionRows()\n clickFn(rows)\n }\n }\n })\n\n const buttonsProps = computed(() => {\n return {\n list,\n ...props.buttonsProps,\n }\n })\n // 搜索\n const search = async (isInitSearch = false) => {\n // await validate()\n tableRef.value.search(isInitSearch)\n }\n // 清空\n const reset = async () => {\n resetFields()\n search(true)\n }\n const searchButtons: ButtonsProps['list'] = [\n {\n name: t('ep.searchListPage.search'),\n type: 'primary',\n onClick: search.bind(null, true),\n },\n {\n name: t('ep.searchListPage.clear'),\n onClick: reset,\n },\n ]\n return {\n buttonsProps,\n searchButtons,\n search,\n reset,\n }\n}\n"],"names":["useTemplateRef","ref","computed","getEnv","onMounted","props","useLocale","mergeListByKey"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-search-list-page.js","sources":["../../../../../../packages/components/search-list-page/src/use-search-list-page.ts"],"sourcesContent":["import { ref, onMounted, computed, useTemplateRef } from 'vue'\nimport type { SearchListPageProps } from './search-list-page'\nimport type { ButtonsProps } from '@el-plus/components/buttons'\nimport type { FormInstance } from '@el-plus/components/form'\nimport type { TableInstance } from '@el-plus/components/table'\nimport type { FormItemProp } from 'element-plus'\nimport { mergeListByKey, getEnv } from '@el-plus/utils'\nimport { useLocale } from '@el-plus/hooks/use-locale'\n\nexport const useSearchListPage = (props: SearchListPageProps, config = {}) => {\n const { calcTableHeight, tableProps, tableRef } = useTable(props, config)\n const { formProps, validate, resetFields, formRef } = useForm(props, {\n calcTableHeight,\n })\n const { buttonsProps, searchButtons, search, reset } = useButtons(props, {\n validate,\n resetFields,\n tableRef,\n })\n return {\n formProps,\n tableProps,\n buttonsProps,\n searchButtons,\n search,\n reset,\n tableRef,\n formRef,\n beforeSearch: validate,\n }\n}\nconst useTable = (props: SearchListPageProps, config) => {\n const instanceName = 'tableRef'\n const tableRef = useTemplateRef<TableInstance>(instanceName)\n const tableHeight = ref(window.innerHeight)\n const tableProps = computed(() => {\n return {\n ref: instanceName,\n columns: props.columns,\n showPagination: true,\n height: tableHeight.value,\n showIndexCol: props.showIndexCol,\n showSelectionCol: props.showSelectionCol,\n showSingleSelectionCol: props.showSingleSelectionCol,\n actionButtons: props.actionButtons,\n formatColumns: props.formatColumns,\n api: props.api,\n reqAfter: props.reqAfter,\n reqBefore: props.reqBefore,\n reqData: props.formData,\n customColumnModule: props.customColumnModule,\n customColumnApi: props.customColumnApi,\n customColumnSaveApi: props.customColumnSaveApi,\n minWidth: props.minWidth,\n actionColWidth: props.actionColWidth,\n ...props.tableProps,\n }\n })\n const calcTableHeight = () => {\n setTimeout(() => {\n const topHeight = (document.getElementById('top') as HTMLElement)\n .offsetHeight\n const middleHeight = (document.getElementById('middle') as HTMLElement)\n .offsetHeight\n let paginationHeight = 0\n if (tableProps.value.showPagination) {\n paginationHeight =\n (document.querySelector('.el-pagination') as HTMLElement)\n .offsetHeight + 12\n }\n const frameDistance = window.openMenuSelect ? 40 : 48 + 40\n\n tableHeight.value =\n window.innerHeight -\n topHeight -\n middleHeight -\n paginationHeight -\n frameDistance -\n props.offsetTop!\n }, 0)\n }\n\n onMounted(calcTableHeight)\n return {\n tableRef,\n tableProps,\n calcTableHeight,\n }\n}\nconst useForm = (props: SearchListPageProps, { calcTableHeight }) => {\n const instanceName = 'formRef'\n const formRef = useTemplateRef<FormInstance>(instanceName)\n const formProps = computed(() => {\n return {\n ref: instanceName,\n formItemList: props.formItemList,\n isShowFold: true,\n modelValue: props.formData,\n ...props.formProps,\n onToggleStatus: () => {\n calcTableHeight()\n },\n }\n })\n // 校验\n const validate = () => {\n return formRef.value!.validate()\n }\n // 重置校验\n const resetFields = (props: FormItemProp) => {\n return formRef.value!.resetFields(props)\n }\n // 清理某个字段的表单验证信息\n const clearValidate = (props: FormItemProp) => {\n return formRef.value!.clearValidate(props)\n }\n return {\n formProps,\n formRef,\n validate,\n resetFields,\n clearValidate,\n }\n}\nconst useButtons = (\n props: SearchListPageProps,\n { validate, resetFields, tableRef },\n) => {\n const { t } = useLocale()\n const defaultButtons: ButtonsProps['list'] = [\n {\n name: t('ep.searchListPage.add'),\n prop: 'add',\n permission: props.name ? `${props.name}:ADD` : '',\n show: () => {\n return !!props.add\n },\n onClick: () => {\n props.add?.()\n },\n },\n // {\n // name: t('ep.searchListPage.templateDownload'),\n // prop: 'templateDownload',\n // permission: props.name ? `${props.name}:TEMPLATEDOWNLOAD` : '',\n // show: !!props.templateDownloadApi,\n // },\n // {\n // name: t('ep.searchListPage.import'),\n // prop: 'import',\n // permission: props.name ? `${props.name}:IMPORT` : '',\n // show: !!props.importApi,\n // },\n // {\n // name: t('ep.searchListPage.export'),\n // prop: 'export',\n // permission: props.name ? `${props.name}:EXPORT` : '',\n // show: !!props.exportApi,\n // },\n ]\n const list = mergeListByKey(defaultButtons, props.leftButtons)\n if (props.customColumnModule) {\n list.push({\n name: t('ep.customColumn.columnSettings'),\n prop: 'customColumn',\n type: 'primary',\n onClick: () => {\n tableRef.value.openCustomColumnDialog()\n },\n })\n }\n list.forEach((item) => {\n if (item.onClick) {\n const clickFn = item.onClick\n item.onClick = () => {\n // 增加选中项\n const rows = tableRef.value.elTableRef.getSelectionRows()\n clickFn(rows)\n }\n }\n })\n\n const buttonsProps = computed(() => {\n return {\n list,\n ...props.buttonsProps,\n }\n })\n // 搜索\n const search = async (isInitSearch = false) => {\n // await validate()\n tableRef.value.search(isInitSearch)\n }\n // 清空\n const reset = async () => {\n resetFields()\n search(true)\n }\n const searchButtons: ButtonsProps['list'] = [\n {\n name: t('ep.searchListPage.search'),\n type: 'primary',\n onClick: search.bind(null, true),\n },\n {\n name: t('ep.searchListPage.clear'),\n onClick: reset,\n },\n ]\n return {\n buttonsProps,\n searchButtons,\n search,\n reset,\n }\n}\n"],"names":["useTemplateRef","ref","computed","onMounted","props","useLocale","mergeListByKey"],"mappings":"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"}
|
|
@@ -162,21 +162,17 @@ const useUniVue = (props) => {
|
|
|
162
162
|
});
|
|
163
163
|
};
|
|
164
164
|
vue.watch(
|
|
165
|
-
() => attrs,
|
|
166
|
-
() => {
|
|
165
|
+
() => attrs.visible,
|
|
166
|
+
(newVal) => {
|
|
167
|
+
console.log(newVal, instance);
|
|
167
168
|
if (instance) {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
instance.$
|
|
171
|
-
})
|
|
172
|
-
|
|
173
|
-
instance.$off(eventName);
|
|
174
|
-
instance.$on(eventName, newEvents[eventName]);
|
|
175
|
-
});
|
|
176
|
-
instance.$forceUpdate();
|
|
169
|
+
try {
|
|
170
|
+
console.log(instance);
|
|
171
|
+
instance.$children[0].visible = newVal;
|
|
172
|
+
} catch (e) {
|
|
173
|
+
}
|
|
177
174
|
}
|
|
178
|
-
}
|
|
179
|
-
{ deep: true }
|
|
175
|
+
}
|
|
180
176
|
);
|
|
181
177
|
vue.onMounted(() => {
|
|
182
178
|
setupInstance();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-uni-vue.js","sources":["../../../../../../packages/components/uni-vue/src/use-uni-vue.ts"],"sourcesContent":["import { onMounted, ref, useAttrs, useTemplateRef, watch } from 'vue'\nimport { http } from '@el-plus/utils/http'\nimport Vue2 from 'vue2'\nimport VueRouter3 from 'vue-router3'\nimport { componentType } from './uni-vue'\nimport axios from 'axios'\nimport { ElMessage, ElLoading } from 'element-plus'\nexport const useUniVue = (props) => {\n const uniVue = useTemplateRef<HTMLElement>('uniVue')\n const { type } = props\n const loading = ref(true)\n const isAddress = type === 'address'\n const isBpm = type === 'bpm'\n // 是否需要加载静态资源\n const isLoadStatic = componentType.indexOf(type) > -1\n const attrs = useAttrs()\n const setupWindow = () => {\n Vue2.use(VueRouter3)\n if (!window.Vue) {\n window.Vue = Vue2\n }\n // 地址\n if (isAddress) {\n if (!window.axios) {\n window.axios = axios\n }\n if (!window.ElementUI) {\n window.ElementUI = {\n Message: ElMessage,\n Loading: ElLoading,\n }\n }\n }\n }\n setupWindow()\n const prepareVueAttributes = () => {\n const events = {}\n const _props = {}\n Object.keys(attrs).forEach((key) => {\n if (key.startsWith('on')) {\n let eventName = key.slice(2) // 去掉 'on' 前缀\n if (eventName.startsWith('Update:')) {\n // 处理 v-model:xxx 事件,转换为 update:xxx\n // 例如:onUpdate:modelValue -> update:modelValue\n eventName = 'update:' + eventName.slice(7)\n } else {\n // 将驼峰命名转换为短横线命名\n // 例如:onClick -> click\n eventName = eventName.replace(/([A-Z])/g, '-$1').toLowerCase()\n // 删除第一位的-\n eventName = eventName.slice(1)\n }\n events[eventName] = attrs[key]\n } else {\n _props[key] = attrs[key]\n }\n })\n return {\n on: events,\n props: _props,\n }\n }\n\n const cdn = '//j01.hongxinshop.com/'\n const getStaticJsUrl = () => {\n switch (type) {\n case 'bpm':\n return `${cdn}bpm-common/common/index.umd.min.js`\n case 'address':\n return `${cdn}address/static/hx-address-full.js`\n default:\n return ''\n }\n }\n const getStaticCssUrl = () => {\n switch (type) {\n case 'bpm':\n return `/bpm-common/common/index.css`\n case 'address':\n return `/address/static/hx-address.css`\n default:\n return ''\n }\n }\n const loadStaticJsResource = async () => {\n const promises: Promise<void>[] = []\n\n // 检查并加载element-ui.js(非bpm类型)\n if (!isBpm && !window.ElementUIComponents) {\n await new Promise((resolve, reject) => {\n const script = document.createElement('script')\n script.src = '/element-ui.js'\n script.onload = resolve\n script.onerror = reject\n document.body.appendChild(script)\n })\n }\n\n // 检查并加载原有的JS资源\n let globalName\n if (isAddress) {\n globalName = 'hxAddress'\n }\n if (isBpm) {\n globalName = 'index'\n }\n\n if (globalName && !window[globalName]) {\n promises.push(\n new Promise((resolve, reject) => {\n const script = document.createElement('script')\n script.src = getStaticJsUrl()\n script.onload = () => resolve()\n script.onerror = reject\n document.body.appendChild(script)\n }),\n )\n }\n\n return Promise.all(promises)\n }\n const loadStaticCssResource = async () => {\n const cssPromises: Promise<string>[] = []\n\n // 为非bpm类型加载element-ui.css\n if (!isBpm) {\n cssPromises.push(\n http\n .request<string>('/element-ui.css', {\n responseReturn: 'raw',\n baseURL: '',\n })\n .then((res) => res.data),\n )\n }\n\n // 加载原有的CSS资源\n const staticCssUrl = getStaticCssUrl()\n if (staticCssUrl) {\n cssPromises.push(\n http\n .request<string>(staticCssUrl, {\n responseReturn: 'raw',\n })\n .then((res) => res.data),\n )\n }\n\n const cssContents = await Promise.all(cssPromises)\n return cssContents.join('\\n')\n }\n let instance\n const setupInstance = async () => {\n if (instance) {\n return\n }\n // if (import.meta.hot) return // 每次热更新都会执行,在这里阻止,防止每次热更新页面都会重复插入组件\n const el = uniVue.value // 选择一个宿主元素\n const shadowRoot = el!.attachShadow({ mode: 'open' }) // 创建一个开放模式的 shadow root\n const container = document.createElement('div')\n if (isLoadStatic) {\n try {\n loading.value = true\n const [_res1, css] = await Promise.all([\n loadStaticJsResource(),\n loadStaticCssResource(),\n ])\n const style = document.createElement('style')\n style.textContent = css\n shadowRoot.appendChild(style)\n } catch (error) {\n console.log(error)\n } finally {\n loading.value = false\n }\n }\n shadowRoot.appendChild(container)\n instance = new Vue2({\n el: container,\n // @ts-expect-error 缺少类型定义\n router: new VueRouter3(),\n render: (h) => h(props.name, prepareVueAttributes()),\n })\n }\n\n // 监听 attrs 变化,更新 Vue 2 组件\n watch(\n () => attrs,\n () => {\n if (instance) {\n const { props: newProps, on: newEvents } = prepareVueAttributes()\n // 更新 props\n Object.keys(newProps).forEach((key) => {\n instance.$props[key] = newProps[key]\n })\n // 更新事件\n Object.keys(newEvents).forEach((eventName) => {\n instance.$off(eventName)\n instance.$on(eventName, newEvents[eventName])\n })\n // 强制重新渲染\n instance.$forceUpdate()\n }\n },\n { deep: true },\n )\n onMounted(() => {\n setupInstance()\n })\n\n return {\n loading,\n }\n}\n"],"names":["uniVue","useTemplateRef","ref","componentType","useAttrs","ElMessage","ElLoading","http","watch","onMounted"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-uni-vue.js","sources":["../../../../../../packages/components/uni-vue/src/use-uni-vue.ts"],"sourcesContent":["import { onMounted, ref, useAttrs, useTemplateRef, watch } from 'vue'\nimport { http } from '@el-plus/utils/http'\nimport Vue2 from 'vue2'\nimport VueRouter3 from 'vue-router3'\nimport { componentType } from './uni-vue'\nimport axios from 'axios'\nimport { ElMessage, ElLoading } from 'element-plus'\nexport const useUniVue = (props) => {\n const uniVue = useTemplateRef<HTMLElement>('uniVue')\n const { type } = props\n const loading = ref(true)\n const isAddress = type === 'address'\n const isBpm = type === 'bpm'\n // 是否需要加载静态资源\n const isLoadStatic = componentType.indexOf(type) > -1\n const attrs = useAttrs()\n const setupWindow = () => {\n Vue2.use(VueRouter3)\n if (!window.Vue) {\n window.Vue = Vue2\n }\n // 地址\n if (isAddress) {\n if (!window.axios) {\n window.axios = axios\n }\n if (!window.ElementUI) {\n window.ElementUI = {\n Message: ElMessage,\n Loading: ElLoading,\n }\n }\n }\n }\n setupWindow()\n const prepareVueAttributes = () => {\n const events = {}\n const _props = {}\n Object.keys(attrs).forEach((key) => {\n if (key.startsWith('on')) {\n let eventName = key.slice(2) // 去掉 'on' 前缀\n if (eventName.startsWith('Update:')) {\n // 处理 v-model:xxx 事件,转换为 update:xxx\n // 例如:onUpdate:modelValue -> update:modelValue\n eventName = 'update:' + eventName.slice(7)\n } else {\n // 将驼峰命名转换为短横线命名\n // 例如:onClick -> click\n eventName = eventName.replace(/([A-Z])/g, '-$1').toLowerCase()\n // 删除第一位的-\n eventName = eventName.slice(1)\n }\n events[eventName] = attrs[key]\n } else {\n _props[key] = attrs[key]\n }\n })\n return {\n on: events,\n props: _props,\n }\n }\n\n const cdn = '//j01.hongxinshop.com/'\n const getStaticJsUrl = () => {\n switch (type) {\n case 'bpm':\n return `${cdn}bpm-common/common/index.umd.min.js`\n case 'address':\n return `${cdn}address/static/hx-address-full.js`\n default:\n return ''\n }\n }\n const getStaticCssUrl = () => {\n switch (type) {\n case 'bpm':\n return `/bpm-common/common/index.css`\n case 'address':\n return `/address/static/hx-address.css`\n default:\n return ''\n }\n }\n const loadStaticJsResource = async () => {\n const promises: Promise<void>[] = []\n\n // 检查并加载element-ui.js(非bpm类型)\n if (!isBpm && !window.ElementUIComponents) {\n await new Promise((resolve, reject) => {\n const script = document.createElement('script')\n script.src = '/element-ui.js'\n script.onload = resolve\n script.onerror = reject\n document.body.appendChild(script)\n })\n }\n\n // 检查并加载原有的JS资源\n let globalName\n if (isAddress) {\n globalName = 'hxAddress'\n }\n if (isBpm) {\n globalName = 'index'\n }\n\n if (globalName && !window[globalName]) {\n promises.push(\n new Promise((resolve, reject) => {\n const script = document.createElement('script')\n script.src = getStaticJsUrl()\n script.onload = () => resolve()\n script.onerror = reject\n document.body.appendChild(script)\n }),\n )\n }\n\n return Promise.all(promises)\n }\n const loadStaticCssResource = async () => {\n const cssPromises: Promise<string>[] = []\n\n // 为非bpm类型加载element-ui.css\n if (!isBpm) {\n cssPromises.push(\n http\n .request<string>('/element-ui.css', {\n responseReturn: 'raw',\n baseURL: '',\n })\n .then((res) => res.data),\n )\n }\n\n // 加载原有的CSS资源\n const staticCssUrl = getStaticCssUrl()\n if (staticCssUrl) {\n cssPromises.push(\n http\n .request<string>(staticCssUrl, {\n responseReturn: 'raw',\n })\n .then((res) => res.data),\n )\n }\n\n const cssContents = await Promise.all(cssPromises)\n return cssContents.join('\\n')\n }\n let instance\n const setupInstance = async () => {\n if (instance) {\n return\n }\n // if (import.meta.hot) return // 每次热更新都会执行,在这里阻止,防止每次热更新页面都会重复插入组件\n const el = uniVue.value // 选择一个宿主元素\n const shadowRoot = el!.attachShadow({ mode: 'open' }) // 创建一个开放模式的 shadow root\n const container = document.createElement('div')\n if (isLoadStatic) {\n try {\n loading.value = true\n const [_res1, css] = await Promise.all([\n loadStaticJsResource(),\n loadStaticCssResource(),\n ])\n const style = document.createElement('style')\n style.textContent = css\n shadowRoot.appendChild(style)\n } catch (error) {\n console.log(error)\n } finally {\n loading.value = false\n }\n }\n shadowRoot.appendChild(container)\n instance = new Vue2({\n el: container,\n // @ts-expect-error 缺少类型定义\n router: new VueRouter3(),\n render: (h) => h(props.name, prepareVueAttributes()),\n })\n }\n\n // 监听 attrs 变化,更新 Vue 2 组件\n // watch(\n // () => attrs,\n // () => {\n // if (instance) {\n // const { props: newProps, on: newEvents } = prepareVueAttributes()\n // // 更新 props\n // Object.keys(newProps).forEach((key) => {\n // instance.$props[key] = newProps[key]\n // })\n // // 更新事件\n // Object.keys(newEvents).forEach((eventName) => {\n // instance.$off(eventName)\n // instance.$on(eventName, newEvents[eventName])\n // })\n // // 强制重新渲染\n // instance.$forceUpdate()\n // }\n // },\n // { deep: true },\n // )\n watch(\n () => attrs.visible,\n (newVal) => {\n console.log(newVal, instance)\n\n if (instance) {\n try {\n console.log(instance)\n\n instance.$children[0].visible = newVal\n } catch (e) {\n // 忽略更新异常\n }\n }\n },\n )\n\n onMounted(() => {\n setupInstance()\n })\n\n return {\n loading,\n }\n}\n"],"names":["uniVue","useTemplateRef","ref","componentType","useAttrs","ElMessage","ElLoading","http","watch","onMounted"],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ const useFormDialog = (options = {}) => {
|
|
|
18
18
|
const formRef = vue.ref();
|
|
19
19
|
const isUseComFormData = !formProps.formData;
|
|
20
20
|
let formData;
|
|
21
|
-
|
|
21
|
+
const Dialog = useDialog.useDialog({
|
|
22
22
|
class: bem.b(),
|
|
23
23
|
width,
|
|
24
24
|
title,
|
|
@@ -49,6 +49,17 @@ const useFormDialog = (options = {}) => {
|
|
|
49
49
|
},
|
|
50
50
|
...dialogProps
|
|
51
51
|
});
|
|
52
|
+
const open = Dialog.open;
|
|
53
|
+
Dialog.open = async (...args) => {
|
|
54
|
+
if (!dialogProps?.destroyOnClose) {
|
|
55
|
+
setTimeout(() => {
|
|
56
|
+
formRef.value?.clearValidate();
|
|
57
|
+
}, 0);
|
|
58
|
+
}
|
|
59
|
+
const res = await open(...args);
|
|
60
|
+
return res;
|
|
61
|
+
};
|
|
62
|
+
return Dialog;
|
|
52
63
|
};
|
|
53
64
|
|
|
54
65
|
exports.useFormDialog = useFormDialog;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-form-dialog.js","sources":["../../../../../packages/hooks/dialog/use-form-dialog.tsx"],"sourcesContent":["import type { DialogOptions } from './use-dialog'\nimport type { FormProps } from '@el-plus/components/form'\nimport EpForm from '@el-plus/components/form'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport { useDialog } from './use-dialog'\nimport { reactive, ref, toRaw } from 'vue'\nconst bem = createNameSpace('form-dialog')\n\ntype Options = {\n title?: string\n width?: string\n dialogProps?: DialogOptions\n formData?: FormProps['model']\n onBeforeConfirm?: (\n formData: FormProps['model'],\n resolve: (value: FormProps['model']) => void,\n ) => Promise<void>\n onBeforeCancel?: (\n formData: FormProps['model'],\n resolve: (value: string) => void,\n ) => Promise<void>\n} & FormProps\nexport const useFormDialog = (options: Options = {}) => {\n const {\n dialogProps,\n title,\n width = '80%',\n onBeforeConfirm,\n onBeforeCancel,\n ...formProps\n } = options\n const formRef = ref()\n const isUseComFormData = !formProps.formData\n let formData\n
|
|
1
|
+
{"version":3,"file":"use-form-dialog.js","sources":["../../../../../packages/hooks/dialog/use-form-dialog.tsx"],"sourcesContent":["import type { DialogOptions } from './use-dialog'\nimport type { FormProps } from '@el-plus/components/form'\nimport EpForm from '@el-plus/components/form'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport { useDialog } from './use-dialog'\nimport { nextTick, reactive, ref, toRaw } from 'vue'\nconst bem = createNameSpace('form-dialog')\n\ntype Options = {\n title?: string\n width?: string\n dialogProps?: DialogOptions\n formData?: FormProps['model']\n onBeforeConfirm?: (\n formData: FormProps['model'],\n resolve: (value: FormProps['model']) => void,\n ) => Promise<void>\n onBeforeCancel?: (\n formData: FormProps['model'],\n resolve: (value: string) => void,\n ) => Promise<void>\n} & FormProps\nexport const useFormDialog = (options: Options = {}) => {\n const {\n dialogProps,\n title,\n width = '80%',\n onBeforeConfirm,\n onBeforeCancel,\n ...formProps\n } = options\n const formRef = ref()\n const isUseComFormData = !formProps.formData\n let formData\n const Dialog = useDialog({\n class: bem.b(),\n width,\n title,\n render: () => {\n formData = isUseComFormData ? reactive({}) : formProps.formData // eslint-disable-line\n return (\n <EpForm\n ref={formRef}\n v-model={formData}\n {...{\n col: 1,\n 'label-width': 'auto',\n ...formProps,\n }}\n />\n )\n },\n onConfirm: async (resolve) => {\n await formRef.value.validate()\n if (onBeforeConfirm) {\n await onBeforeConfirm(formData, resolve)\n }\n return resolve(formData)\n },\n onCancel: async (resolve) => {\n if (onBeforeCancel) {\n await onBeforeCancel(formData, resolve)\n }\n resolve('cancel')\n },\n ...dialogProps,\n })\n const open = Dialog.open\n Dialog.open = async (...args) => {\n // 清除校验(fix: 不销毁且外面传递formData时, 再次打开校验不清除)\n if (!dialogProps?.destroyOnClose) {\n setTimeout(() => {\n formRef.value?.clearValidate()\n }, 0)\n }\n const res = await open(...args)\n return res\n }\n return Dialog\n}\n"],"names":["bem","createNameSpace","useFormDialog","options","dialogProps","title","width","onBeforeConfirm","onBeforeCancel","formProps","formRef","ref","isUseComFormData","formData","Dialog","useDialog","class","b","render","reactive","_createVNode","EpForm","_mergeProps","$event","col","onConfirm","resolve","value","validate","onCancel","open","args","destroyOnClose","setTimeout","clearValidate","res"],"mappings":";;;;;;;AAMA,MAAMA,GAAAA,GAAMC,sBAAgB,aAAa,CAAA;AAgBlC,MAAMC,aAAAA,GAAgBA,CAACC,OAAAA,GAAmB,EAAC,KAAM;AACtD,EAAA,MAAM;AAAA,IACJC,WAAAA;AAAAA,IACAC,KAAAA;AAAAA,IACAC,KAAAA,GAAQ,KAAA;AAAA,IACRC,eAAAA;AAAAA,IACAC,cAAAA;AAAAA,IACA,GAAGC;AAAAA,GACL,GAAIN,OAAAA;AACJ,EAAA,MAAMO,UAAUC,OAAAA,EAAI;AACpB,EAAA,MAAMC,gBAAAA,GAAmB,CAACH,SAAAA,CAAUI,QAAAA;AACpC,EAAA,IAAIA,QAAAA;AACJ,EAAA,MAAMC,SAASC,mBAAAA,CAAU;AAAA,IACvBC,KAAAA,EAAOhB,IAAIiB,CAAAA,EAAE;AAAA,IACbX,KAAAA;AAAAA,IACAD,KAAAA;AAAAA,IACAa,QAAQA,MAAM;AACZL,MAAAA,QAAAA,GAAWD,gBAAAA,GAAmBO,YAAAA,CAAS,EAAE,IAAIV,SAAAA,CAAUI,QAAAA;AACvD,MAAA,OAAAO,eAAAA,CAAAC,cAAAC,cAAAA,CAAA;AAAA,QAAA,KAAA,EAESZ,OAAAA;AAAAA,QAAO,YAAA,EACHG,QAAAA;AAAAA,QAAQ,qBAAA,EAAAU,YAARV,QAAAA,GAAQU;AAAAA,OAAA,EAAA;AAAA,QAEfC,GAAAA,EAAK,CAAA;AAAA,QACL,aAAA,EAAe,MAAA;AAAA,QACf,GAAGf;AAAAA,OAAS,GAAA,IAAA,CAAA;AAAA,IAIpB,CAAA;AAAA,IACAgB,SAAAA,EAAW,OAAOC,OAAAA,KAAY;AAC5B,MAAA,MAAMhB,OAAAA,CAAQiB,MAAMC,QAAAA,EAAS;AAC7B,MAAA,IAAIrB,eAAAA,EAAiB;AACnB,QAAA,MAAMA,eAAAA,CAAgBM,UAAUa,OAAO,CAAA;AAAA,MACzC;AACA,MAAA,OAAOA,QAAQb,QAAQ,CAAA;AAAA,IACzB,CAAA;AAAA,IACAgB,QAAAA,EAAU,OAAOH,OAAAA,KAAY;AAC3B,MAAA,IAAIlB,cAAAA,EAAgB;AAClB,QAAA,MAAMA,cAAAA,CAAeK,UAAUa,OAAO,CAAA;AAAA,MACxC;AACAA,MAAAA,OAAAA,CAAQ,QAAQ,CAAA;AAAA,IAClB,CAAA;AAAA,IACA,GAAGtB;AAAAA,GACJ,CAAA;AACD,EAAA,MAAM0B,OAAOhB,MAAAA,CAAOgB,IAAAA;AACpBhB,EAAAA,MAAAA,CAAOgB,IAAAA,GAAO,UAAUC,IAAAA,KAAS;AAE/B,IAAA,IAAI,CAAC3B,aAAa4B,cAAAA,EAAgB;AAChCC,MAAAA,UAAAA,CAAW,MAAM;AACfvB,QAAAA,OAAAA,CAAQiB,OAAOO,aAAAA,EAAc;AAAA,MAC/B,GAAG,CAAC,CAAA;AAAA,IACN;AACA,IAAA,MAAMC,GAAAA,GAAM,MAAML,IAAAA,CAAK,GAAGC,IAAI,CAAA;AAC9B,IAAA,OAAOI,GAAAA;AAAAA,EACT,CAAA;AACA,EAAA,OAAOrB,MAAAA;AACT;;;;"}
|