mirror of
https://github.com/vbenjs/vben-admin-thin-next.git
synced 2025-02-03 02:18:40 +08:00
feat: integrate upload components into form by default
This commit is contained in:
parent
99303a9987
commit
be2b8a7e17
@ -8,6 +8,7 @@
|
|||||||
- 新增个人页
|
- 新增个人页
|
||||||
- 新增表单页
|
- 新增表单页
|
||||||
- 新增详情页
|
- 新增详情页
|
||||||
|
- 将上传组件默认集成到 form
|
||||||
|
|
||||||
### 🎫 Chores
|
### 🎫 Chores
|
||||||
|
|
||||||
|
@ -158,7 +158,7 @@ export default defineComponent({
|
|||||||
) {
|
) {
|
||||||
rule.type = 'object';
|
rule.type = 'object';
|
||||||
}
|
}
|
||||||
if (component.includes('RangePicker')) {
|
if (component.includes('RangePicker') || component.includes('Upload')) {
|
||||||
rule.type = 'array';
|
rule.type = 'array';
|
||||||
}
|
}
|
||||||
if (component.includes('InputNumber')) {
|
if (component.includes('InputNumber')) {
|
||||||
|
@ -18,6 +18,7 @@ import {
|
|||||||
TreeSelect,
|
TreeSelect,
|
||||||
} from 'ant-design-vue';
|
} from 'ant-design-vue';
|
||||||
import RadioButtonGroup from './components/RadioButtonGroup.vue';
|
import RadioButtonGroup from './components/RadioButtonGroup.vue';
|
||||||
|
import { BasicUpload } from '/@/components/Upload';
|
||||||
|
|
||||||
const componentMap = new Map<ComponentType, any>();
|
const componentMap = new Map<ComponentType, any>();
|
||||||
|
|
||||||
@ -48,6 +49,8 @@ componentMap.set('RangePicker', DatePicker.RangePicker);
|
|||||||
componentMap.set('WeekPicker', DatePicker.WeekPicker);
|
componentMap.set('WeekPicker', DatePicker.WeekPicker);
|
||||||
componentMap.set('TimePicker', TimePicker);
|
componentMap.set('TimePicker', TimePicker);
|
||||||
|
|
||||||
|
componentMap.set('Upload', BasicUpload);
|
||||||
|
|
||||||
export function add(compName: ComponentType, component: Component) {
|
export function add(compName: ComponentType, component: Component) {
|
||||||
componentMap.set(compName, component);
|
componentMap.set(compName, component);
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
|
import type { BasicColumn, ActionItem } from '/@/components/Table';
|
||||||
|
|
||||||
|
import { FileItem, PreviewFileItem, UploadResultStatus } from './types';
|
||||||
import { checkImgType, isImgTypeByName } from './utils';
|
import { checkImgType, isImgTypeByName } from './utils';
|
||||||
import { Progress, Tag } from 'ant-design-vue';
|
import { Progress, Tag } from 'ant-design-vue';
|
||||||
import { FileItem, PreviewFileItem, UploadResultStatus } from './types';
|
|
||||||
import { BasicColumn, ActionItem, TableAction } from '/@/components/Table/index';
|
import TableAction from '/@/components/Table/src/components/TableAction';
|
||||||
|
|
||||||
// 文件上传列表
|
// 文件上传列表
|
||||||
export function createTableColumns(): BasicColumn[] {
|
export function createTableColumns(): BasicColumn[] {
|
||||||
|
@ -9,31 +9,24 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent, h } from 'vue';
|
import { defineComponent } from 'vue';
|
||||||
import { BasicUpload } from '/@/components/Upload';
|
import { BasicUpload } from '/@/components/Upload';
|
||||||
import { useMessage } from '/@/hooks/web/useMessage';
|
import { useMessage } from '/@/hooks/web/useMessage';
|
||||||
import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
|
import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
|
||||||
|
|
||||||
import { uploadApi } from '/@/api/sys/upload';
|
import { uploadApi } from '/@/api/sys/upload';
|
||||||
// import { Alert } from 'ant-design-vue';
|
|
||||||
|
|
||||||
const schemas: FormSchema[] = [
|
const schemas: FormSchema[] = [
|
||||||
{
|
{
|
||||||
field: 'field1',
|
field: 'field1',
|
||||||
component: 'Input',
|
component: 'Upload',
|
||||||
label: '字段1',
|
label: '字段1',
|
||||||
colProps: {
|
colProps: {
|
||||||
span: 8,
|
span: 8,
|
||||||
},
|
},
|
||||||
rules: [{ required: true, type: 'array', message: '请选择上传文件' }],
|
rules: [{ required: true, message: '请选择上传文件' }],
|
||||||
render: ({ model, field }) => {
|
componentProps: {
|
||||||
return h(BasicUpload, {
|
|
||||||
value: model[field],
|
|
||||||
api: uploadApi,
|
api: uploadApi,
|
||||||
onChange: (val: string[]) => {
|
|
||||||
model[field] = val;
|
|
||||||
},
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
Loading…
Reference in New Issue
Block a user