diandi-ele-form
Version:
基于 element-ui 的数据驱动表单组件
47 lines (44 loc) • 1.43 kB
JavaScript
/**
* @Author: Wang chunsheng email:2192138785@qq.com
* @Date: 2021-12-01 09:44:50
* @Last Modified by: Wang chunsheng email:2192138785@qq.com
* @Last Modified time: 2021-12-10 15:04:03
*/
export function loadMockJs() {
if (!window.Mock) {
const secScript = document.createElement('script')
secScript.setAttribute('type', 'text/javascript')
secScript.setAttribute('src', 'https://unpkg.com/mockjs@1.1.0/dist/mock.js')
document.body.insertBefore(secScript, document.body.lastChild)
}
}
export default function mock() {
const Mock = window.Mock
if (window.Mock) {
// 自定义扩展
Mock.Random.extend({
multiple(data) {
const count = Mock.Random.integer(0, data.length)
return [...new Set(Array.from({ length: count }, () => Mock.Random.pick(data)))]
},
checkbox(data, valueKey = 'value') {
if (Array.isArray(data)) {
const values = data.map((item) => item[valueKey])
const count = Mock.Random.integer(0, data.length)
return [...new Set(Array.from({ length: count }, () => Mock.Random.pick(values)))]
} else {
return []
}
},
radio(data, valueKey = 'value') {
if (Array.isArray(data)) {
const values = data.map((item) => item[valueKey])
return Mock.Random.pick(values)
} else {
return null
}
}
})
}
return Mock
}