SOURCE

console 命令行工具 X clear

                    
>
console
var maker = formCreate.maker;

vm = new Vue({
  el: '#app',
  data: {
    formData: {},
    rule: mock(),
    option: {
      //显示表单重置按钮
      resetBtn: true,
      //表单提交事件
      onSubmit: function(formData) {
        alert(JSON.stringify(formData));
        //按钮进入提交状态
        $f.btn.loading();
        //重置按钮禁用
        $f.resetBtn.disabled();
        //按钮进入可点击状态
        //                    $f.btn.finish();
        //创建第二个表单
        $f = that.$formCreate(mock, root);
      }
    }
  },
  watch: {
    'formData.address': {
      handler: function(n) {
        console.log(n);
      },
      deep: true
    }
  },
  methods: {
    change: function(...arg) {
      console.log(arg);
    }
  },
  mounted: function() {
    $f = this.$refs.fc.$f;
    this.formData = $f.model();

    //动态添加表单元素
    //$f.append($r, 'pic');
  }
});

function mock() {
  return [
  {
    type: 'hidden',
    field: 'id',
    value: '14'
  },

  {
    type: "cascader",
    title: "所在区域",
    field: "address",
    value: ['陕西省', '西安市', '新城区'],
    props: {
      data: province_city_area,
    },
  },
  {
    type: "input",
    title: "商品名称",
    field: "goods_name",
    value: "",
    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
    },
    ]
  },

  {
    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
    },
    ]
  },
  {
    type: "switch",
    title: "是否上架",
    field: "is_show",
    value: "1",
    props: {
      "trueValue": "1",
      "falseValue": "0",
    }
  },
  {
    type: "select",
    field: "cate_id",
    title: "产品分类",
    value: ["104", "105"],
    props: {
      "multiple": true
    },
    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"
    },
  },
  {
    type: "TimePicker",
    field: "section_time",
    title: "活动时间",
    value: [],
    props: {
      "type": "timerange"
    },
  },
  {
    type: "InputNumber",
    field: "sort",
    title: "排序",
    value: 0,
  },
  {
    type: "ColorPicker",
    field: "color",
    title: "颜色",
    value: '#ff7271',
  },
  {
    type: "rate",
    field: "rate",
    title: "推荐级别",
    value: 3.5,
    props: {
      "count": 10,
    },
    validate: [{
      required: true,
      type: 'number',
      min: 3,
      message: '请大于3颗星',
      trigger: 'change'
    }]
  },
  {
    type: "slider",
    field: "slider",
    title: "滑块",
    value: [0, 50],
    props: {
      "min": 0,
      "max": 100,
      "range": true,
    },
  },
  {
    type: "Upload",
    field: "pic",
    title: "轮播图",
    value: ['http://img1.touxiang.cn/uploads/20131030/30-075657_191.jpg'],
    props: {
      "type": "select",
      "uploadType": "image",
      "action": "",
    },
    validate: [{
      required: true,
      type: 'array',
      min: 3,
      message: '请上传3张图片',
      trigger: 'change'
    }]
  },
  {
    type: "checkbox",
    title: "",
    field: "checked",
    value: "0",
    options: [{
      value: "1",
      label: "同意****用户协议",
      disabled: 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,
      height: "220px",
      width: "350px",
    },
    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">
  <form-create ref="fc" :rule="rule" :option="option" @goods-name-change="change"
  />
</div>
@import url("//cdn.jsdelivr.net/npm/iview/dist/styles/iview.css");