From b52d4f71e29c1e7f9c58f2f3fb26f95b926ff028 Mon Sep 17 00:00:00 2001 From: cKey <35512826+colinin@users.noreply.github.com> Date: Wed, 7 Dec 2022 13:31:07 +0800 Subject: [PATCH] synchronize vben admin changes --- apps/vue/build/vite/plugin/styleImport.ts | 1 + apps/vue/package.json | 2 +- apps/vue/src/components/Button/src/props.ts | 9 +- .../components/Cropper/src/CropperAvatar.vue | 4 +- .../src/components/Excel/src/Export2Excel.ts | 24 +- .../src/components/Excel/src/ImportExcel.vue | 4 +- .../vue/src/components/Form/src/BasicForm.vue | 12 +- apps/vue/src/components/Form/src/TabForm.vue | 4 +- .../Form/src/components/ApiSelect.vue | 9 +- .../Form/src/components/ApiTransfer.vue | 9 +- .../Form/src/components/FormItem.vue | 7 +- .../components/Form/src/hooks/useAdvanced.ts | 9 +- .../src/components/Form/src/hooks/useForm.ts | 4 +- .../Form/src/hooks/useFormEvents.ts | 24 +- .../Form/src/hooks/useFormValues.ts | 13 +- apps/vue/src/components/Form/src/props.ts | 4 +- .../vue/src/components/Form/src/types/form.ts | 7 +- apps/vue/src/components/Menu/src/props.ts | 2 +- .../src/components/Preview/src/Functional.vue | 10 +- .../src/components/Table/src/BasicTable.vue | 3 + .../src/components/Table/src/componentMap.ts | 6 +- .../Table/src/components/TableImg.vue | 12 +- .../src/components/editable/EditableCell.vue | 4 +- .../src/components/settings/ColumnSetting.vue | 485 ++++++++---------- .../Table/src/hooks/useCustomRow.ts | 2 +- .../Table/src/hooks/useRowSelection.ts | 4 +- .../components/Table/src/hooks/useTable.ts | 3 + .../Table/src/types/componentType.ts | 5 +- .../src/components/Table/src/types/table.ts | 3 +- .../vue/src/components/Tinymce/src/Editor.vue | 2 +- apps/vue/src/components/Tree/index.ts | 4 +- .../Tree/src/{Tree.vue => BasicTree.vue} | 78 +-- .../Tree/src/{ => components}/TreeHeader.vue | 16 +- .../Tree/src/{ => hooks}/useTree.ts | 2 +- apps/vue/src/components/Tree/src/props.ts | 108 ---- .../components/Tree/src/{ => types}/tree.ts | 3 +- apps/vue/src/components/Tree/src/typing.ts | 54 -- apps/vue/src/components/Upload/src/props.ts | 2 +- apps/vue/src/components/Verify/src/props.ts | 10 +- apps/vue/src/design/ant/index.less | 8 + apps/vue/src/design/ant/input.less | 5 +- apps/vue/src/hooks/web/useECharts.ts | 8 + .../default/header/components/FullScreen.vue | 7 + .../setting/components/ThemeColorPicker.vue | 2 +- .../default/setting/components/TypePicker.vue | 2 +- apps/vue/src/locales/lang/en/layout.ts | 2 +- apps/vue/src/router/constant.ts | 2 +- apps/vue/src/store/modules/multipleTab.ts | 1 + apps/vue/src/utils/dateUtil.ts | 11 +- apps/vue/src/utils/http/axios/index.ts | 6 + apps/vue/src/utils/index.ts | 6 +- apps/vue/src/utils/is.ts | 3 +- .../src/views/account/setting/BaseSetting.vue | 4 +- .../objects/components/FileList.vue | 3 - .../platform/menu/hooks/useMenuFormContext.ts | 2 +- 55 files changed, 452 insertions(+), 584 deletions(-) rename apps/vue/src/components/Tree/src/{Tree.vue => BasicTree.vue} (95%) rename apps/vue/src/components/Tree/src/{ => components}/TreeHeader.vue (98%) rename apps/vue/src/components/Tree/src/{ => hooks}/useTree.ts (99%) delete mode 100644 apps/vue/src/components/Tree/src/props.ts rename apps/vue/src/components/Tree/src/{ => types}/tree.ts (99%) delete mode 100644 apps/vue/src/components/Tree/src/typing.ts diff --git a/apps/vue/build/vite/plugin/styleImport.ts b/apps/vue/build/vite/plugin/styleImport.ts index 32b8f823a..4384583b1 100644 --- a/apps/vue/build/vite/plugin/styleImport.ts +++ b/apps/vue/build/vite/plugin/styleImport.ts @@ -49,6 +49,7 @@ export function configStyleImportPlugin(_isBuild: boolean) { // 这里是需要额外引入样式的子组件列表 // 单独引入子组件时需引入组件样式,否则会在打包后导致子组件样式丢失 const replaceList = { + textarea: 'input', 'typography-text': 'typography', 'typography-title': 'typography', 'typography-paragraph': 'typography', diff --git a/apps/vue/package.json b/apps/vue/package.json index b88d7b3b2..6793ae97b 100644 --- a/apps/vue/package.json +++ b/apps/vue/package.json @@ -149,7 +149,7 @@ "vite-plugin-vue-setup-extend": "^0.4.0", "vite-plugin-windicss": "^1.8.4", "vue-eslint-parser": "^8.3.0", - "vue-tsc": "^0.33.9" + "vue-tsc": "^1.0.9" }, "resolutions": { "bin-wrapper": "npm:bin-wrapper-china", diff --git a/apps/vue/src/components/Button/src/props.ts b/apps/vue/src/components/Button/src/props.ts index d79d378af..806d39577 100644 --- a/apps/vue/src/components/Button/src/props.ts +++ b/apps/vue/src/components/Button/src/props.ts @@ -1,5 +1,12 @@ +const validColors = ['error', 'warning', 'success', ''] as const; +type ButtonColorType = typeof validColors[number]; + export const buttonProps = { - color: { type: String, validator: (v) => ['error', 'warning', 'success', ''].includes(v) }, + color: { + type: String as PropType, + validator: (v) => validColors.includes(v), + default: '', + }, loading: { type: Boolean }, disabled: { type: Boolean }, /** diff --git a/apps/vue/src/components/Cropper/src/CropperAvatar.vue b/apps/vue/src/components/Cropper/src/CropperAvatar.vue index b34574fae..2d40cc6e0 100644 --- a/apps/vue/src/components/Cropper/src/CropperAvatar.vue +++ b/apps/vue/src/components/Cropper/src/CropperAvatar.vue @@ -92,9 +92,9 @@ }, ); - function handleUploadSuccess({ source }) { + function handleUploadSuccess({ source, data }) { sourceValue.value = source; - emits('change', source); + emits('change', { source, data }); createMessage.success(t('component.cropper.uploadSuccess')); } diff --git a/apps/vue/src/components/Excel/src/Export2Excel.ts b/apps/vue/src/components/Excel/src/Export2Excel.ts index 952ac45f1..24d05ec9b 100644 --- a/apps/vue/src/components/Excel/src/Export2Excel.ts +++ b/apps/vue/src/components/Excel/src/Export2Excel.ts @@ -6,6 +6,28 @@ const { utils, writeFile } = xlsx; const DEF_FILE_NAME = 'excel-list.xlsx'; +/** + * @param data source data + * @param worksheet worksheet object + * @param min min width + */ + function setColumnWidth(data, worksheet, min = 3) { + const obj = {}; + worksheet['!cols'] = []; + data.forEach((item) => { + Object.keys(item).forEach((key) => { + const cur = item[key]; + const length = cur?.length ?? min; + obj[key] = Math.max(length, obj[key] ?? min); + }); + }); + Object.keys(obj).forEach((key) => { + worksheet['!cols'].push({ + wch: obj[key], + }); + }); +} + export function jsonToSheetXlsx({ data, header, @@ -20,7 +42,7 @@ export function jsonToSheetXlsx({ } const worksheet = utils.json_to_sheet(arrData, json2sheetOpts); - + setColumnWidth(arrData, worksheet); /* add worksheet to workbook */ const workbook: WorkBook = { SheetNames: [filename], diff --git a/apps/vue/src/components/Excel/src/ImportExcel.vue b/apps/vue/src/components/Excel/src/ImportExcel.vue index f6f742525..fb3dc9d6b 100644 --- a/apps/vue/src/components/Excel/src/ImportExcel.vue +++ b/apps/vue/src/components/Excel/src/ImportExcel.vue @@ -137,8 +137,10 @@ * @description: 触发选择文件管理器 */ function handleInputClick(e: Event) { - const files = e && (e.target as HTMLInputElement).files; + const target = e && (e.target as HTMLInputElement); + const files = target?.files; const rawFile = files && files[0]; // only setting files[0] + target.value = ''; if (!rawFile) return; upload(rawFile); } diff --git a/apps/vue/src/components/Form/src/BasicForm.vue b/apps/vue/src/components/Form/src/BasicForm.vue index cb6daedd0..b9a8c9ee9 100644 --- a/apps/vue/src/components/Form/src/BasicForm.vue +++ b/apps/vue/src/components/Form/src/BasicForm.vue @@ -10,6 +10,7 @@