diff --git a/apps/vue/build/vite/plugin/styleImport.ts b/apps/vue/build/vite/plugin/styleImport.ts index 4384583b1..4ad9db3d6 100644 --- a/apps/vue/build/vite/plugin/styleImport.ts +++ b/apps/vue/build/vite/plugin/styleImport.ts @@ -2,7 +2,7 @@ * Introduces component library styles on demand. * https://github.com/anncwb/vite-plugin-style-import */ -import { createStyleImportPlugin } from 'vite-plugin-style-import'; +import { createStyleImportPlugin, VxeTableResolve } from 'vite-plugin-style-import'; export function configStyleImportPlugin(_isBuild: boolean) { // if (!isBuild) { @@ -77,6 +77,7 @@ export function configStyleImportPlugin(_isBuild: boolean) { }, }, ], + resolves: [VxeTableResolve()], }); return styleImportPlugin; } diff --git a/apps/vue/package.json b/apps/vue/package.json index 6793ae97b..d8fbd8acb 100644 --- a/apps/vue/package.json +++ b/apps/vue/package.json @@ -53,6 +53,7 @@ "czg": "^1.3.9", "dayjs": "^1.11.1", "echarts": "^5.3.2", + "exceljs": "^4.3.0", "intro.js": "^5.1.0", "lodash-es": "^4.17.21", "mockjs": "^1.1.0", @@ -67,15 +68,18 @@ "showdown": "^2.1.0", "simple-uploader.js": "^0.5.6", "sortablejs": "^1.15.0", - "tinymce": "^5.10.3", + "tinymce": "^5.10.7", "vditor": "^3.8.13", - "vue": "^3.2.33", + "vue": "^3.2.45", "vue-cookies": "^1.8.1", "vue-i18n": "^9.1.9", "vue-json-pretty": "^2.0.6", "vue-router": "^4.0.14", "vue-types": "^4.1.1", "vue3-colorpicker": "^2.0.4", + "vxe-table": "^4.3.9", + "vxe-table-plugin-export-xlsx": "^3.0.4", + "xe-utils": "^3.5.7", "xlsx": "^0.18.5" }, "devDependencies": { @@ -127,6 +131,7 @@ "rimraf": "^3.0.2", "rollup": "^2.70.2", "rollup-plugin-visualizer": "^5.6.0", + "sass": "^1.57.1", "stylelint": "^14.7.1", "stylelint-config-prettier": "^9.0.3", "stylelint-config-recommended": "^7.0.0", diff --git a/apps/vue/src/components/Cropper/src/CopperModal.vue b/apps/vue/src/components/Cropper/src/CopperModal.vue index f3a971ca9..5546291af 100644 --- a/apps/vue/src/components/Cropper/src/CopperModal.vue +++ b/apps/vue/src/components/Cropper/src/CopperModal.vue @@ -132,9 +132,10 @@ uploadApi: { type: Function as PropType<(params: apiFunParams) => Promise>, }, + src: { type: String }, }); let filename = ''; - const src = ref(''); + const src = ref(props.src || ''); const previewSource = ref(''); const cropper = ref(); const fileList = ref([]); diff --git a/apps/vue/src/components/Dropdown/src/Dropdown.vue b/apps/vue/src/components/Dropdown/src/Dropdown.vue index c70a99ef3..afc2b7941 100644 --- a/apps/vue/src/components/Dropdown/src/Dropdown.vue +++ b/apps/vue/src/components/Dropdown/src/Dropdown.vue @@ -57,7 +57,7 @@ * @type string[] */ trigger: { - type: [Array] as PropType<('contextmenu' | 'click' | 'hover')[]>, + type: Array as PropType<('contextmenu' | 'click' | 'hover')[]>, default: () => { return ['contextmenu']; }, diff --git a/apps/vue/src/components/Form/src/BasicForm.vue b/apps/vue/src/components/Form/src/BasicForm.vue index b9a8c9ee9..99702e5af 100644 --- a/apps/vue/src/components/Form/src/BasicForm.vue +++ b/apps/vue/src/components/Form/src/BasicForm.vue @@ -63,6 +63,7 @@ import { basicProps } from './props'; import { useDesign } from '/@/hooks/web/useDesign'; + import { isFunction, isArray } from '/@/utils/is'; export default defineComponent({ name: 'BasicForm', @@ -90,6 +91,7 @@ // Get the basic configuration of the form const getProps = computed((): FormProps => { + // @ts-ignore return { ...props, ...unref(propsRef) } as FormProps; }); @@ -239,8 +241,11 @@ propsRef.value = deepMerge(unref(propsRef) || {}, formProps); } - function setFormModel(key: string, value: any) { + function setFormModel(key: string, value: any, schema: FormSchema) { formModel[key] = value; + if (isFunction(schema.dynamicRules) || isArray(schema.rules)) { + return; + } const { validateTrigger } = unref(getBindValue); if (!validateTrigger || validateTrigger === 'change') { validateFields([key]).catch((_) => {}); diff --git a/apps/vue/src/components/Form/src/components/ApiCascader.vue b/apps/vue/src/components/Form/src/components/ApiCascader.vue index 0d8cf6354..948386a7c 100644 --- a/apps/vue/src/components/Form/src/components/ApiCascader.vue +++ b/apps/vue/src/components/Form/src/components/ApiCascader.vue @@ -170,7 +170,7 @@ ); function handleChange(keys, args) { - emitData.value = keys; + emitData.value = args; emit('defaultChange', keys, args); } diff --git a/apps/vue/src/components/Form/src/components/ApiRadioGroup.vue b/apps/vue/src/components/Form/src/components/ApiRadioGroup.vue index 712cfba81..e0d1c4d22 100644 --- a/apps/vue/src/components/Form/src/components/ApiRadioGroup.vue +++ b/apps/vue/src/components/Form/src/components/ApiRadioGroup.vue @@ -2,12 +2,12 @@ * @Description:It is troublesome to implement radio button group in the form. So it is extracted independently as a separate component -->