hot-form
Version:
A project developed based on ant-design-vue and vant whitch do some things on create/render/modify and etc. for forms. Also can custom some component on the form items if you want. 一个基于antdv/vant开发的创建表单组件,包含表单渲染、表单编辑页面、以及植入自定义附加内容的组件
88 lines (83 loc) • 2.32 kB
JavaScript
import {
imgCustomRequest,
fileCustomRequest,
fileProxy,
} from '@/components/form/props.config.js';
// 检测平台的颜色方案是是否为暗色
// const PLATFORM_IS_DARK = window.matchMedia('(prefers-color-scheme: dark)').matches;
const PLATFORM_IS_DARK = false;
export default {
value: [String, Number],
// 是否可见
visible: {
type: Boolean,
default: true,
},
// 模式 'classic' | 'inline'
mode: {
type: String,
validator: value => ['inline', 'classic'].includes(value),
default: 'classic',
},
// 内容区显示模式,对应 `config.content_css` 字段
contentMode: {
type: String,
validator: value => ['dark', 'document', 'writer', 'default'].includes(value),
default: PLATFORM_IS_DARK ? 'dark' : 'default',
},
// 皮肤,可选 'light' | 'dark'
skin: {
type: String,
validator: value => ['light', 'dark'].includes(value),
default: PLATFORM_IS_DARK ? 'dark' : 'light',
},
// 富文本配置项,会覆盖和并默认配置
config: Object,
// 图片上传方法
...imgCustomRequest,
// 文件上传方法
...fileCustomRequest,
// 文件代理
...fileProxy,
/* // 上传 http 方法
http: {
type: Function,
default: upload,
}, */
// 上传接受类型
accept: {
type: Object,
default: () => ({
image: ['image/*'],
file: ['.txt', '.docx', '.doc', '.xlsx', '.xls', '.csv', '.pptx', '.ppt', '.pdf', '.zip', '.rar', '.md'],
media: ['video/*', 'audio/*'],
}),
},
// 图片大小上限
maxSize: {
// 图片大小
type: Number,
default: 52428800,
},
// 图片验证规则
imageRules: {
type: Array,
validator: rules => Array.isArray(rules) && rules.every(rule => typeof rule.validator === 'function'),
},
// 文件验证规则
fileRules: {
type: Array,
validator: rules => Array.isArray(rules) && rules.every(rule => typeof rule.validator === 'function'),
},
// 文本自动保存到 localStorage 的键名前缀
autoSavePrefix: {
type: String,
default: 'tinymce-autosave-{path}{query}-{id}-',
},
// 富文本所需的静态资源
baseURL: {
type: String,
default: './tinymce',
},
documentURL: String,
};