console
var maker = formCreate.maker;
let vm = new Vue({
el: '#app',
data() {
return {
form: {},
rule: {},
option: {},
};
},
created() {
this.form.tableData = [
{ name: "John Doe", age: 30, gender: "Male" },
{ name: "Jane Smith", age: 25, gender: "Female" },
{ name: "John Doe", age: 35, gender: "Male" },
];
this.rule = {
name: [{ required: true, message: "请输入名称", trigger: "blur" }],
age: [{ required: true, message: "请输入年龄", trigger: "blur" }],
gender: [{ required: true, message: "请选择性别", trigger: "change" }],
};
this.option = {
rowHandle: true,
showSummary: false,
items: [
{
type: "table",
field: "tableData",
title: "自定义表格",
columns: [
{ title: "名称", key: "name", align: "center" },
{ title: "年龄", key: "age", align: "center" },
{ title: "性别", key: "gender", align: "center" },
],
},
],
};
},
methods: {
addRow() {
this.form.tableData.push({ name: "", age: 0, gender: "" });
},
},
mounted: function() {
this.$nextTick(() => {
this.$formCreate(this);
});
}
});
function mock() {
return [{
type: 'hidden',
field: 'id',
value: '14'
},
{
type: "cascader",
title: "所在区域",
field: "address",
value: ['陕西省', '西安市', '新城区'],
props: {
data: province_city_area,
renderFormat: label => label.join(' / '),
disabled: false,
clearable: true,
placeholder: '请选择',
trigger: 'click',
changeOnSelect: false,
size: undefined,
loadData: () => {},
filterable: false,
notFoundText: '无匹配数据',
transfer: false,
},
validate: [],
},
{
type: "input",
title: "商品名称",
field: "goods_name",
value: "",
props: {
"type": "text",
"clearable": false,
"disabled": false,
"readonly": false,
"rows": 4,
"autosize": false,
"number": false,
"autofocus": false,
"autocomplete": "off",
"placeholder": "请输入商品名称",
"size": "default",
"spellcheck": false,
"required": false,
},
validate: [{
required: true,
message: '请输入商品名称',
trigger: 'blur'
},
],
},
{
type: "radio",
title: "是否包邮",
field: "is_postage",
value: "0",
options: [{
value: "0",
label: "不包邮",
disabled: false
},
{
value: "1",
label: "包邮",
disabled: false
},
{
value: "1",
label: "未知",
disabled: true
},
],
props: {
"type": undefined,
"size": "default",
"vertical": false,
},
},
{
type: "checkbox",
title: "标签",
field: "label",
value: ["1", "2", "3"],
options: [{
value: "1",
label: "好用",
disabled: true
},
{
value: "2",
label: "方便",
disabled: false
},
{
value: "3",
label: "实用",
disabled: false
},
{
value: "4",
label: "有效",
disabled: false
},
],
props: {
"size": "default",
},
},
{
type: "switch",
title: "是否上架",
field: "is_show",
value: "1",
props: {
"size": "default",
"disabled": false,
"trueValue": "1",
"falseValue": "0",
},
slot: {
open: "上架",
close: "下架",
},
},
{
type: "select",
field: "cate_id",
title: "产品分类",
value: ["104", "105"],
props: {
"multiple": true,
"clearable": false,
"filterable": true,
"size": "default",
"placeholder": "请选择",
"not-found-text": "无匹配数据",
"placement": "bottom",
"disabled": false,
},
options: [{
"value": "104",
"label": "生态蔬菜",
"disabled": false
},
{
"value": "105",
"label": "新鲜水果",
"disabled": false
},
],
},
{
type: "DatePicker",
field: "section_day",
title: "活动日期",
value: ['2018-02-20', new Date()],
props: {
"type": "datetimerange",
"format": "yyyy-MM-dd HH:mm:ss",
"placement": "bottom-start",
"placeholder": "请选择获得时间",
"confirm": false,
"size": "default",
"disabled": false,
"clearable": true,
"readonly": false,
"editable": false,
},
},
{
type: "TimePicker",
field: "section_time",
title: "活动时间",
value: [],
props: {
"type": "timerange",
"format": "HH:mm:ss",
"steps": [],
"placement": "bottom-start",
"placeholder": "请选择获得时间",
"confirm": false,
"size": "default",
"disabled": false,
"clearable": true,
"readonly": false,
"editable": false,
},
},
{
type: "InputNumber",
field: "sort",
title: "排序",
value: 0,
props: {
"max": undefined,
"min": undefined,
"step": 1,
"size": "default",
"disabled": false,
"readonly": false,
"editable": true,
"precision": 0,
},
},
{
type: "ColorPicker",
field: "color",
title: "颜色",
value: '#ff7271',
props: {
"alpha": false,
"hue": true,
"recommend": false,
"size": "default",
"colors": [],
"format": "hex",
},
},
{
type: "rate",
field: "rate",
title: "推荐级别",
value: 3.5,
props: {
"count": 10,
"allowHalf": true,
"disabled": false,
"showText": true,
"clearable": true,
},
validate: [{
required: true,
type: 'number',
min: 3,
message: '请大于3颗星',
trigger: 'change'
}]
},
{
type: "slider",
field: "slider",
title: "滑块",
value: [0, 50],
props: {
"min": 0,
"max": 100,
"step": 1,
"disabled": false,
"range": true,
"showInput": false,
"showStops": true,
"showTip": "hover",
"tipFormat": undefined,
"inputSize": "small",
},
},
{
type: "Upload",
field: "pic",
title: "轮播图",
value: ['http://img1.touxiang.cn/uploads/20131030/30-075657_191.jpg'],
props: {
"type": "select",
"uploadType": "image",
"action": "",
"headers": {},
"multiple": true,
"data": {},
"name": "",
"withCredentials": false,
"accept": "",
"format": [],
"maxSize": undefined,
"maxLength": 4,
"beforeUpload": () => {},
"onProgress": () => {},
"onSuccess": function() {
return 'http://img1.touxiang.cn/uploads/20131030/30-075657_191.jpg';
},
"onError": (error, file, fileList) => {},
"onPreview": () => {},
"onRemove": () => {},
"onFormatError": () => {},
"onExceededSize": () => {},
handleIcon: 'ios-eye-outline',
allowRemove: true,
},
validate: [{
required: true,
type: 'array',
min: 3,
message: '请上传3张图片',
trigger: 'change'
}]
},
{
type: "checkbox",
title: "",
field: "checked",
value: "0",
options: [{
value: "1",
label: "同意****用户协议",
disabled: false
},
],
props: {
"type": undefined,
"size": "default",
"vertical": false,
},
},
{
type: "frame",
title: "素材",
field: "fodder",
value: ["http://img1.touxiang.cn/uploads/20131030/30-075657_191.jpg"],
props: {
type: "image",
src: "iframe.html",
maxLength: 2,
icon: 'folder',
height: "220px",
width: "350px",
spin: false,
title: "请选择",
handleIcon: true,
allowRemove: true,
onHandle: undefined,
onRemove: () => {
return false;
}
},
validate: [{
required: true,
type: 'array',
min: 5,
message: '请选择5张图片',
trigger: 'change'
}],
},
]
}
$r = maker.upload('产品主图', 'logo', 'http://img1.touxiang.cn/uploads/20131030/30-075657_191.jpg').props({
"action": "",
"maxLength": 1,
"multiple": false,
"max": 0,
"type": "select",
"uploadType": "image",
"name": "file",
"onSuccess": function() {
return 'http://img1.touxiang.cn/uploads/20131030/30-075657_191.jpg';
}
}).validate({
required: true,
type: 'array',
min: 1,
message: '请上传1张图片',
trigger: 'change'
});
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.min.js">
</script>
<script src="https://cdn.jsdelivr.net/npm/iview/dist/iview.min.js">
</script>
<script src="https://cdn.jsdelivr.net/npm/@form-create/iview/dist/form-create.min.js">
</script>
<script src="https://cdn.jsdelivr.net/npm/form-create@1.4.4/district/province_city_area.js">
</script>
<div id="app">
<fc :form="form" :rule="rule" :option="option"></fc>
</div>
@import url("//cdn.jsdelivr.net/npm/iview/dist/styles/iview.css");