UNPKG

gxd-vue-library

Version:

依赖与element Ui插件库,聚福宝福利PC端插件库

1,751 lines 61.1 kB
'use strict';
import axios from 'axios';
import cityData from './cityData';
import router from "@/dome/base/form/router";
import testData from './testData';
import gxdHelper from 'gxd-helper';
let {pinyin, helper, cookie, storage} = gxdHelper;
let helperObj = helper({});
window.$xdHelper = helperObj;

let config = {
  token: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9zYW5kYm94LWMuanVmdWJhby5jbiIsImlhdCI6MTY0MDE0NDI0MywiZXhwIjoxNjQwMjMwNjQzLCJhY2NvdW50X2lkIjo4LCJtZXJjaGFudF9pZCI6IjBfb05ua2M2SHVtd1JqV0Nja3c3WFBxdmNpbWJyWSIsInBsYXRmb3JtX2NvZGUiOiJ3eCIsImlwIjoiMTAuMC4yLjQiLCJjaGVja3N1bSI6ImFhYmNkNzJhNTRlYmE0MjI3MGMyODYzNzI1MTk5ODEyIn0.e7AgEQKtj_Ju7-_FQbTEdqZTpKs1DtX2RVe8ZH-MKoE',
  getCity: 'http://sandbox-c.jufubao.cn/api/pb/city/getsub',
};

 /**
 * @description 获取配送区域
 * @param node 上级城市对象
 * @param resolve 回调地址
 */
function getDataRegionList(node, resolve) {
  let city = {
    0: [{"city_code":"1","name":"\u5317\u4eac","parent_id":"0"},{"city_code":"31","name":"\u65b0\u7586","parent_id":"0"},{"city_code":"4","name":"\u91cd\u5e86","parent_id":"0"},{"city_code":"19","name":"\u5e7f\u4e1c","parent_id":"0"},{"city_code":"3","name":"\u5929\u6d25","parent_id":"0"},{"city_code":"15","name":"\u6d59\u6c5f","parent_id":"0"},{"city_code":"52993","name":"\u6e2f\u6fb3","parent_id":"0"},{"city_code":"20","name":"\u5e7f\u897f","parent_id":"0"},{"city_code":"11","name":"\u5185\u8499\u53e4","parent_id":"0"},{"city_code":"30","name":"\u5b81\u590f","parent_id":"0"},{"city_code":"21","name":"\u6c5f\u897f","parent_id":"0"},{"city_code":"32","name":"\u53f0\u6e7e","parent_id":"0"},{"city_code":"14","name":"\u5b89\u5fbd","parent_id":"0"},{"city_code":"24","name":"\u8d35\u5dde","parent_id":"0"},{"city_code":"27","name":"\u9655\u897f","parent_id":"0"},{"city_code":"8","name":"\u8fbd\u5b81","parent_id":"0"},{"city_code":"6","name":"\u5c71\u897f","parent_id":"0"},{"city_code":"29","name":"\u9752\u6d77","parent_id":"0"},{"city_code":"22","name":"\u56db\u5ddd","parent_id":"0"},{"city_code":"12","name":"\u6c5f\u82cf","parent_id":"0"},{"city_code":"5","name":"\u6cb3\u5317","parent_id":"0"},{"city_code":"26","name":"\u897f\u85cf","parent_id":"0"},{"city_code":"84","name":"\u9493\u9c7c\u5c9b","parent_id":"0"},{"city_code":"16","name":"\u798f\u5efa","parent_id":"0"},{"city_code":"9","name":"\u5409\u6797","parent_id":"0"},{"city_code":"2","name":"\u4e0a\u6d77","parent_id":"0"},{"city_code":"17","name":"\u6e56\u5317","parent_id":"0"},{"city_code":"23","name":"\u6d77\u5357","parent_id":"0"},{"city_code":"25","name":"\u4e91\u5357","parent_id":"0"},{"city_code":"28","name":"\u7518\u8083","parent_id":"0"},{"city_code":"18","name":"\u6e56\u5357","parent_id":"0"},{"city_code":"13","name":"\u5c71\u4e1c","parent_id":"0"},{"city_code":"7","name":"\u6cb3\u5357","parent_id":"0"},{"city_code":"10","name":"\u9ed1\u9f99\u6c5f","parent_id":"0"}],
    1: [{"city_code":"jfb1","name":"\u5317\u4eac","parent_id":"1"},{"city_code":"bj-test1","name":"\u5317\u4eac-\u6d4b\u8bd5","parent_id":"1"}],
    jfb1: [{"city_code":"2812","name":"\u987a\u4e49\u533a","parent_id":"jfb1"},{"city_code":"2807","name":"\u95e8\u5934\u6c9f","parent_id":"jfb1"},{"city_code":"2803","name":"\u5d07\u6587\u533a","parent_id":"jfb1"},{"city_code":"2810","name":"\u5927\u5174\u533a","parent_id":"jfb1"},{"city_code":"2814","name":"\u6000\u67d4\u533a","parent_id":"jfb1"},{"city_code":"2801","name":"\u897f\u57ce\u533a","parent_id":"jfb1"},{"city_code":"2804","name":"\u5ba3\u6b66\u533a","parent_id":"jfb1"},{"city_code":"2953","name":"\u5e73\u8c37\u533a","parent_id":"jfb1"},{"city_code":"2816","name":"\u5bc6\u4e91\u533a","parent_id":"jfb1"},{"city_code":"3065","name":"\u5ef6\u5e86\u533a","parent_id":"jfb1"},{"city_code":"2802","name":"\u4e1c\u57ce\u533a","parent_id":"jfb1"},{"city_code":"2901","name":"\u660c\u5e73\u533a","parent_id":"jfb1"},{"city_code":"2805","name":"\u4e30\u53f0\u533a","parent_id":"jfb1"},{"city_code":"72","name":"\u671d\u9633\u533a","parent_id":"jfb1"},{"city_code":"2806","name":"\u77f3\u666f\u5c71\u533a","parent_id":"jfb1"},{"city_code":"2808","name":"\u623f\u5c71\u533a","parent_id":"jfb1"},{"city_code":"2800","name":"\u6d77\u6dc0\u533a","parent_id":"jfb1"},{"city_code":"2809","name":"\u901a\u5dde\u533a","parent_id":"jfb1"}],
    2812: [{"city_code":"51130","name":"\u5149\u660e\u8857\u9053","parent_id":"2812"},{"city_code":"51125","name":"\u5317\u77f3\u69fd\u9547","parent_id":"2812"},{"city_code":"51147","name":"\u6768\u9547\u5730\u533a","parent_id":"2812"},{"city_code":"51126","name":"\u5317\u52a1\u9547","parent_id":"2812"},{"city_code":"51141","name":"\u4ec1\u548c\u5730\u533a","parent_id":"2812"},{"city_code":"51139","name":"\u5357\u6cd5\u4fe1\u5730\u533a","parent_id":"2812"},{"city_code":"51134","name":"\u674e\u9042\u9547","parent_id":"2812"},{"city_code":"51138","name":"\u5357\u5f69\u9547","parent_id":"2812"},{"city_code":"51127","name":"\u5317\u5c0f\u8425\u9547","parent_id":"2812"},{"city_code":"51136","name":"\u9a6c\u5761\u5730\u533a","parent_id":"2812"},{"city_code":"51135","name":"\u9f99\u6e7e\u5c6f\u9547","parent_id":"2812"},{"city_code":"51140","name":"\u725b\u680f\u5c71\u5730\u533a","parent_id":"2812"},{"city_code":"51142","name":"\u80dc\u5229\u8857\u9053","parent_id":"2812"},{"city_code":"51146","name":"\u65fa\u6cc9\u8857\u9053","parent_id":"2812"},{"city_code":"51131","name":"\u540e\u6c99\u5cea\u5730\u533a","parent_id":"2812"},{"city_code":"51133","name":"\u674e\u6865\u9547","parent_id":"2812"},{"city_code":"51128","name":"\u5927\u5b59\u5404\u5e84\u9547","parent_id":"2812"},{"city_code":"51149","name":"\u8d75\u5168\u8425\u9547","parent_id":"2812"},{"city_code":"51137","name":"\u6728\u6797\u9547","parent_id":"2812"},{"city_code":"51143","name":"\u77f3\u56ed\u8857\u9053","parent_id":"2812"},{"city_code":"51132","name":"\u7a7a\u6e2f\u8857\u9053","parent_id":"2812"},{"city_code":"51129","name":"\u9ad8\u4e3d\u8425\u9547","parent_id":"2812"},{"city_code":"51144","name":"\u53cc\u4e30\u8857\u9053","parent_id":"2812"},{"city_code":"51145","name":"\u5929\u7afa\u5730\u533a","parent_id":"2812"},{"city_code":"51148","name":"\u5f20\u9547","parent_id":"2812"},{"city_code":"qweq123","name":"\u5e73\u65b9\u8857\u9053","parent_id":"2812"}]
  };
  let params = {city_code: 0, page_size: 10000};
  if (node.level > 0) {
    params['city_code'] = node['value'];
  }
  if (city[params['city_code']]) {
    let res = city[params['city_code']];
    if (node['level'] === 0) {
      res.splice(0, 0, {
        name: '全国',
        city_code: '0',
        leaf: true
      })
    }
    let temp = $xdHelper.idToSelectData(res, 'name', 'city_code', false);
    console.log('getDataRegionList',temp);
    temp.filter(item => {
      if (!item['leaf']) {
        item['leaf'] = false;
        //街道下无子节点
        if (node.level === 3) {
          item['leaf'] = true;
        }
      }
      return item;
    });
    console.log('resolve', temp);
    resolve(temp)
  }
  else {
    resolve([]);
  }
}

/**
 * @description 获取模糊搜索测试数据列表
 * @param query
 * @param resolve
 */
function getListTestRemoteSearch(query, resolve) {
  let data = ["Alabama", "Alaska", "Arizona",
    "Arkansas", "California", "Colorado",
    "Connecticut", "Delaware", "Florida",
    "Georgia", "Hawaii", "Idaho", "Illinois",
    "Indiana", "Iowa", "Kansas", "Kentucky",
    "Louisiana", "Maine", "Maryland",
    "Massachusetts", "Michigan", "Minnesota",
    "Mississippi", "Missouri", "Montana",
    "Nebraska", "Nevada", "New Hampshire",
    "New Jersey", "New Mexico", "New York",
    "North Carolina", "North Dakota", "Ohio",
    "Oklahoma", "Oregon", "Pennsylvania",
    "Rhode Island", "South Carolina",
    "South Dakota", "Tennessee", "Texas",
    "Utah", "Vermont", "Virginia",
    "Washington", "West Virginia", "Wisconsin",
    "Wyoming"];
  data = data.map(item => {
    return {value: `value:${item}`, label: `label:${item}`};
  });

  setTimeout(() => {
    let list = data.filter(item => {
      console.log(item, item.label.toLocaleLowerCase())
      return item.label.toLocaleLowerCase().indexOf(query.toLocaleLowerCase()) > -1;
    });
    resolve(list)
  }, 500);
}

function getPagesTreeToPathArr(data) {
  return [{
    label: '',
    value: '',
    children: data.filter(item => {
      return item.children && item.children.length > 0
    }).map(item => {
      return {
        label: item.name,
        value: item.value,
        children: item.children.map(it => {
          return {
            label: it.name,
            value: it.route
          }
        })
      };
    }),
  }];
}



export default [
  {
    label: '值显示',
    key: 'el-html',
    value: {
      ele: 'el-html',
      label: '基础信息',
      value: '基础信息', //default/mini/small
    },
    id: 1
  },
  {
    label: '标题显示',
    key: 'title',
    value: {
      ele: 'title',
      label: '基础信息',
      size: 'mini', //default/mini/small
    },
    id: 2
  },
  {
    label: '插槽',
    key: 'slot',
    value: {
      label: '', //label
      ele: 'slot', //package 名称
      slot: 'time',
    },
    id: 3
  },
  {
    label: '输入内容',
    key: 'el-input',
    value: {
      label: '输入内容:', //label
      ele: 'el-input', //package 名称
      //text,textarea 和其他 原生 input 的 type 值
      type: 'text',
      valueKey: '@key@', //form[valueKey]
      value: '', //v-model
      placeholder: '请输入内容',
      className: 'input40', //样式名称 //input100,input80,input70,input60,input50,input40,input30,input20,
      rules: [
        {required: true, message: '请输入内容', trigger: 'blur'},
      ]
    },
    id: 4
  },
  {
    label: '区间输入',
    key: 'xd-range',
    value: {
      label: '区间输入:', //label
      ele: 'xd-range', //package 名称
      valueKey: ['start_@key@', 'end_@key@'], //form[valueKey]
      value: [200, 300], //v-model
      placeholder: ['开始卡号', '结束卡号'],
      width: 450, //插件宽度
      rules: [
        {required: true, message: '请输入区间内容', trigger: ['blur', 'change']},
      ]
    },
    id: 6
  },
  {
    label: '卡号组',
    key: 'xd-upload',
    value: {
      label: '卡号组:', //label
      tips: '注意:开始和结束卡号段必须填写,并且开始卡号必须小于结束开号.',
      ele: 'xd-range-group', //package 名称
      keys: ['start_number-@key@', 'end_number-@key@'], //返回数组字段名称
      defaultValue: [ //默认组值
        // {"start_number": 20, "end_number": 23},
        // {"start_number": 451202, "end_number": 4512300},
        // {"start_number": 1545512121, "end_number": 1545512123}
      ],
      valueKey: 'xd_range_group', //form[valueKey]
      placeholder: ['开始卡号', '结束卡号'],
      disabled: false,
      rules: [
        {
          required: true,
          validator(rule, value, callback) {
            let flag = true, index = null, message = '';
            value.map((item, idx) => {
              if (index === null) {

                //检查卡号填写为空
                Object.keys(item).map(k => {
                  if (item[k] === null) {
                    index = idx;
                    flag = false;
                    message = '卡号输入不能为空!'
                  }
                });

                //检查开始卡号不能大于等于结束卡号
                if (index === null) {
                  if (item['start_number'] >= item['end_number']) {
                    index = idx;
                    flag = false;
                    message = '输入开始卡号不能大于等于结束卡号'
                  }
                }
              }
            });

            if (flag) callback();
            else callback(`第【${index + 1}】条数据有误,错误:${message}`);

            // let temp = false;
            // if (!value['week_day'] || value['week_day'].length === 0) temp = true;
            // if (!value['week_start'] || !value['week_end']) temp = true;
            // if (temp) callback('请设置规则')
            // else callback();
          },
          trigger: ['blur', 'change']
        },
      ]
    },
    id: 7
  },
  {
    label: '时间区间',
    key: 'xd-date-range',
    value: {
      label: '时间区间:', //label
      ele: 'xd-date-range', //package 名称
      valueKey: ['start_time_@key@', 'end_time_@key@'], //form[valueKey]
      value: [1636128000000, 1638720000000], //v-model timestamp=>必须时间戳 毫秒
      format: 'yyyy/MM/dd HH:mm:ss',//时间显示格式
      formatValue: 'timestamp', //输出时间格式
      placeholder: ['活动开始时间', '活动结束时间'],
      rules: [
        {required: true, message: '请选择时间区间', trigger: ['blur', 'change']},
      ]
    },
    id: 8
  },
  {
    label: '时间选择',
    key: 'xd-date-range',
    value: {
      label: '时间选择:', //label
      ele: 'xd-date', //package 名称
      valueKey: 'xd-date-@key@', //form[valueKey]
      value: 1636128000000, //v-model timestamp=>必须时间戳 毫秒
      format: 'yyyy/MM/dd HH:mm:ss',//时间显示格式
      formatValue: 'timestamp', //输出时间格式
      placeholder: '请选择时间',
      rules: [
        {required: true, message: '请选择时间', trigger: ['blur', 'change']}
      ]
    },
    id: 9
  },
  {
    label: '请选择(多选)',
    key: 'xd-select-list',
    value: {
      label: '请选择(多选):', //label
      ele: 'xd-select-list', //package 名称
      valueKey: '@key@', //form[valueKey]
      value: [1, 2], //v-model
      placeholder: '请选择内容',
      multiple: true, //多选
      list: [
        {"label": "万利达集团", "value": 1},
        {"label": "中国联通", "value":2},
        {"label": "中国移动", "value": 3},
        {"label": "味多美", "value": 4},
      ]
    },
    id: 10
  },
  {
    label: '请选择(单选)',
    key: 'xd-select-list',
    value: {
      label: '请选择(单选):', //label
      ele: 'xd-select-list', //package 名称
      valueKey: '@key@', //form[valueKey]
      value: 1, //v-model
      placeholder: '请选择内容',
      multiple: false, //多选
      list: [
        {"label": "万利达集团", "value": 1},
        {"label": "中国联通", "value": 2},
        {"label": "中国移动", "value": 3},
        {"label": "味多美", "value": 4},
      ]
    },
    id: 11
  },
  {
    label: '远程搜索选择框(单选)',
    key: 'xd-remote-select',
    value: {
      label: '按品牌:',
      ele: 'xd-remote-select',
      valueKey: 'remote-select-@key@',
      //值必须为{value: '', label: ''}
      value: [
        {value: 'value:Alaska', label: 'label:Alaska'}
      ],
      className: 'input40',
      placeholder: '请选择品牌',
      multiple: false, //是否为多选
      collapseTags: false, //是否折叠显示
      //搜索方法
      remoteSearch: (query, resolve) => {
        getListTestRemoteSearch(query, resolve)
      },
      rules: [
        {required: true, message: '请选择品牌', trigger: 'change'},
      ]
    },
    id: 12
  },
  {
    label: '远程搜索选择框(多选)',
    key: 'xd-remote-select',
    value: {
      label: '按品牌:',
      ele: 'xd-remote-select',
      valueKey: 'remote-select-@key@',
      //值必须为{value: '', label: ''}
      value: [
        {value: 'value:Alaska', label: 'label:Alaska'}
      ],
      className: 'input40',
      placeholder: '请选择品牌',
      multiple: true, //是否为多选
      collapseTags: false, //是否折叠显示
      //搜索方法
      remoteSearch: (query, resolve) => {
        getListTestRemoteSearch(query, resolve)
      },
      rules: [
        {required: true, message: '请选择品牌', trigger: 'change'},
      ]
    },
    id: 13
  },
  {
    label: `选择框 - 系统集成选项
<br>集成状态:status=>状态  best=>推荐  associate=>关联 yes=>是否 open=> 是否开启  check=>审核
<br>返回值类型: 1=>返回(Y,N)2=> [true|false] 3=>[1,0] 4=>[1,2], 默认值:1`,
    key: 'xd-select-status',
    value: {
      label: '状态:', //label
      ele: 'xd-select-status', //package 名称
      valueKey: 'select-status-@key@', //form[valueKey]
      value: 'Y', //v-model
      isAll: true,
      backValueType: 1, //返回值类型 1=>返回(Y,N)2=> [true|false] 3=>[1,0] 4=>[1,2]
      placeholder: '请选择',
      list: 'status', //status=>状态  best=>推荐  associate=>关联 yes=>是否 open=> 是否开启  check=>审核
    },
    id: 14
  },
  {
    label: `单选 - 系统集成选项
<br>集成状态:status=>状态  best=>推荐  associate=>关联 yes=>是否 open=> 是否开启  check=>审核
<br>返回值类型: 1=>返回(Y,N)2=> [true|false] 3=>[1,0] 4=>[1,2], 默认值:1`,
    key: 'xd-radio',
    value: {
      label: '状态:', //label
      ele: 'xd-radio-status', //package 名称
      valueKey: 'status-radio-@key@', //form[valueKey]
      value: 'Y', //v-model
      backValueType: 1, //返回值类型 1=>返回(Y,N)2=> [true|false] 3=>[1,0] 4=>[1,2]
      placeholder: '请选择',
      list: 'status', //status=>状态  best=>推荐  associate=>关联 yes=>是否 open=> 是否开启  check=>审核
    },
    id: 15
  },
  {
    label: '单选 - 自定义选项',
    key: 'xd-radio',
    value: {
      label: '单选:', //label
      ele: 'xd-radio', //package 名称
      valueKey: 'radio-status-@key@', //form[valueKey]
      value: 1, //v-model
      rules: [
        {required: true, message: '请选择', trigger: ['blur', 'change']}
      ],
      list: [
        {"label": "万利达集团", "value": 1},
        {"label": "中国联通", "value": 2},
        {"label": "中国移动", "value": 3},
        {"label": "味多美", "value": 4},
      ]
    },
    id: 16
  },
  {
    label: '复选框',
    key: 'xd-check',
    value: {
      label: '复选框:', //label
      ele: 'xd-check', //package 名称
      valueKey: '@key@', //form[valueKey]
      value: [1, 2], //v-model
      list: [
        {"label": "万利达集团", "value": 1},
        {"label": "中国联通", "value": 2},
        {"label": "中国移动", "value": 3},
        {"label": "味多美", "value": 4},
      ],
      rules: [
        {required: true, message: '请选择内容', trigger: ['blur', 'change']},
      ]
    },
    id: 17
  },
  {
    label: `Switch
<br>返回值类型: 1=>返回(Y,N)2=> [true|false] 3=>[1,0] 4=>[1,2], 默认值:1`,
    key: 'xd-switch',
    value: {
      label: 'Switch:', //label
      ele: 'xd-switch', //package 名称
      valueKey: 'switch_status_tips', //form[valueKey]
      value: 'Y', //v-model
      list: ['否', '是'], //左右文本
      color: ['green', '#999'], //文本颜色
      showTips: true, //是否显示文本
      backValueType: 1, //返回值类型 1=>返回(Y,N)2=> [true|false] 3=>[1,0] 4=>[1,2]
    },
    id: 18
  },
  {
    label: '富文本',
    key: 'xd-tinymce',
    value: {
      label: '富文本:', //label
      ele: 'xd-tinymce', //package 名称
      valueKey: 'tinymce-@key@', //form[valueKey]
      value: '如:设置16:00前下单,最早可提前2小时;16:00后下单,最早可提前1天。<br />若:用户在16点前下单,最早可选择当前下单时间往后2小时的时间;16点后下单,最早只能选择第2天。',
      imageConfig: {
        sort: true,
        maxlen: 100,
        action: 'https://up-z1.qiniup.com',
        qiniuCdn: 'http://static.e56buy.com',
        size: 5,
        tipsformet: '上传文件格式:@imageType@,不超过@size@MB.',
        uploadType: 'qiniu', //aliyun , qiniu
        type: ['jpg', 'png', 'jpeg']
      },
      inline: false,
      notice: '如:设置16:00前下单,最早可提前2小时;16:00后下单,最早可提前1天。<br />若:用户在16点前下单,最早可选择当前下单时间往后2小时的时间;16点后下单,最早只能选择第2天。',
      rules: [
        {required: true, message: '请添加内容', trigger: 'change'},
      ],
    },
    id: 19
  },
  {
    label: '多级输入框',
    key: 'xd-multiple-input',
    value: {
      label: '多级输入框:', //label
      ele: 'xd-multiple-input', //package 名称
      valueKey: 'xd-multiple-input-@key@', //form[valueKey]
      //默认值
      value: {
        input: '多级输入框',
        price: 20000,
        select: '',
        selectbox: [],
      },
      disabled: false,
      setting: {
        inputs: [
          {type: 'input', key: 'input', unit: '%'},
          {type: 'input', key: 'price', unit: '元', isPrice: true},
          {
            type: 'select',
            key: 'select',
            list: [
              {"label": "万利达集团", "value": 1},
              {"label": "深圳万利达", "value": 2},
              {"label": "移动通信设备有限公司", "value": 3},
              {"label": "味多美", "value": 4},
            ],
            unit: '元',
            multiple: false
          },
          {
            type: 'select',
            key: 'selectbox',
            list: [
              {"label": "万利达集团", "value": 1},
              {"label": "深圳万利达", "value": 2},
              {"label": "移动通信设备有限公司", "value": 3},
              {"label": "味多美", "value": 4},
            ],
            multiple: true
          },
        ],
      },
      rules: [
        {required: true, message: '请添加内容', trigger: 'change'},
      ],
    },
    id: 20
  },
  {
    label: '远程选择无限级树(单选)',
    key: 'xd-cascade-select',
    value: {
      label: '远程选择树:', //label
      ele: 'xd-cascade-select', //package 名称
      valueKey: 'xd-cascade-select-@key@', //form[valueKey]
      //默认值
      value: ['22', '2016', '52607', '52622'], //v-model
      disabled: false,
      multiple: false,
      //获取子集列表方法

      handleChildren: ({level, select, item}, resolve) => {
        let placeholder = '请选择省份';
        if (level === 1) placeholder = '请选择城市';
        if (level === 2) placeholder = '请选择县/市';
        if (level === 3) placeholder = '请选择乡/街道';
        axios({
          method: 'get',
          url: config.getCity,
          params: {
            token: config.token,
            parent_code: level === 0 ? 0 : select.value
          }
        })
          .then((res) => {
            let temp = [];
            res.data.result.map((item) => {
              temp.push({...item, value: item['city_code'], label: item['name']});
            });
            resolve({
              list: temp, //数据列表(必选)
              isChildren: level < 3, //是否有子集(必选)
              placeholder: placeholder, //占位符(必选)
              custom: 1, //自定义字段
              params: {a: 1, b: 2} //自定义字段
            });
            loading.close();
          })
          .catch((error) => {
          });
      },
      rules: [
        {required: true, message: '请添加数据', trigger: 'change'},
      ],
    },
    id: 21
  },
  {
    label: '远程选择无限级树(多选)',
    key: 'xd-cascade-select',
    value: {
      label: '远程选择树:', //label
      ele: 'xd-cascade-select', //package 名称
      valueKey: 'xd-cascade-select-@key@', //form[valueKey]
      //默认值
      value: ['22', '2016', '52607', ['52622', '52619', '52621']], //v-model
      disabled: false,
      multiple: true,
      //获取子集列表方法
      handleChildren: ({level, select, item}, resolve) => {
        let placeholder = '请选择省份';
        if (level === 1) placeholder = '请选择城市';
        if (level === 2) placeholder = '请选择县/市';
        if (level === 3) placeholder = '请选择乡/街道';
        axios({
          method: 'get',
          url: config.getCity,
          params: {
            token: config.token,
            parent_code: level === 0 ? 0 : select.value
          }
        })
          .then((res) => {
            let temp = [];
            res.data.result.map((item) => {
              temp.push({...item, value: item['city_code'], label: item['name']});
            });
            resolve({
              list: temp, //数据列表(必选)
              isChildren: level < 3, //是否有子集(必选)
              placeholder: placeholder, //占位符(必选)
              custom: 1, //自定义字段
              params: {a: 1, b: 2} //自定义字段
            });
            loading.close();
          })
          .catch((error) => {
          });
      },
      rules: [
        {required: true, message: '请添加数据', trigger: 'change'},
      ],
    },
    id: 22
  },
  {
    label: '远程添加树无限级树(多选)',
    key: 'xd-remote-cascade',
    value: {
      label: '远程添加树(多选):', //label
      ele: 'xd-remote-cascader', //package 名称
      valueKey: 'xd-remote-cascade-@key@', //form[valueKey]
      //默认值
      value: [{
        value: ['5', '258'],
        label: "河北/唐山市"
      }], //v-model
      disabled: false,
      multiple: true,
      //获取子集列表方法

      handleChildren: ({level, select, item}, resolve) => {
        let placeholder = '请选择省份';
        if (level === 1) placeholder = '请选择城市';
        if (level === 2) placeholder = '请选择县/市';
        if (level === 3) placeholder = '请选择乡/街道';
        axios({
          method: 'get',
          url: config.getCity,
          params: {
            token: config.token,
            parent_code: level === 0 ? 0 : select.value
          }
        })
          .then((res) => {
            let temp = [];
            res.data.result.map((item) => {
              temp.push({...item, value: item['city_code'], label: item['name']});
            });
            resolve({
              list: temp, //数据列表(必选)
              isChildren: level < 3, //是否有子集(必选)
              placeholder: placeholder, //占位符(必选)
              custom: 1, //自定义字段
              params: {a: 1, b: 2} //自定义字段
            });
            loading.close();
            console.log('handleChildren', temp);
          })
          .catch((error) => {
          });
      },
      placeholder: '请添加数据',
      tips: '输入或选中操作后,请点击右侧"+"按钮进行添加操作',
      rules: [
        {required: true, message: '请添加数据', trigger: 'change'},
      ],
    },
    id: 23
  },
  {
    label: '远程添加无限级树(单选)',
    key: 'xd-cascade-select',
    value: {
      label: '远程添加树(单选):', //label
      ele: 'xd-remote-cascader', //package 名称
      valueKey: 'xd-remote-cascade-@key@', //form[valueKey]
      //默认值
      value: [{
        value: ['5', '258'],
        label: "河北/唐山市"
      }], //v-model
      disabled: false,
      multiple: true,
      //获取子集列表方法

      handleChildren: ({level, select, item}, resolve) => {
        let placeholder = '请选择省份';
        if (level === 1) placeholder = '请选择城市';
        if (level === 2) placeholder = '请选择县/市';
        if (level === 3) placeholder = '请选择乡/街道';
        axios({
          method: 'get',
          url: config.getCity,
          params: {
            token: config.token,
            parent_code: level === 0 ? 0 : select.value
          }
        })
          .then((res) => {
            let temp = [];
            res.data.result.map((item) => {
              temp.push({...item, value: item['city_code'], label: item['name']});
            });
            resolve({
              list: temp, //数据列表(必选)
              isChildren: level < 3, //是否有子集(必选)
              placeholder: placeholder, //占位符(必选)
              custom: 1, //自定义字段
              params: {a: 1, b: 2} //自定义字段
            });
            loading.close();
            console.log('handleChildren', temp);
          })
          .catch((error) => {
          });
      },
      placeholder: '请添加数据',
      tips: '输入或选中操作后,请点击右侧"+"按钮进行添加操作',
      rules: [
        {required: true, message: '请添加数据', trigger: 'change'},
      ],
    },
    id: 24
  },
  {
    label: '输入框下拉级联操作(单选) - 一次性给数据',
    key: 'xd-cascade',
    value: {
      label: '输入框级联:', //label
      ele: 'xd-cascade', //package 名称
      valueKey: 'cascade-@key@', //form[valueKey]

      //单选模式传值
      value: ['yizhi'], //v-model

      disabled: false,
      list: testData,
      className: 'input40',
      setting: {
        isGeRoot: true, //当子集合选择返回父节点选
        filterable: true, //是否过滤操作
        clearable: true, //是否清楚操作
        collapseTags: true, //多选是否清楚操作
        multiple: false, //是否多选
      },
      rules: [
        {required: true, message: '请选择数据', trigger: 'blur'},
      ],
      inline: false,
      notice: '如:设置16:00前下单,最早可提前2小时;16:00后下单,最早可提前1天。<br />若:用户在16点前下单,最早可选择当前下单时间往后2小时的时间;16点后下单,最早只能选择第2天。'
    },
    id: 25
  },
  {
    label: '输入框下拉级联操作(多选) - 一次性给数据',
    key: 'xd-cascade-select',
    value: {
      label: '输入框级联:', //label
      ele: 'xd-cascade', //package 名称
      valueKey: 'cascade-@key@', //form[valueKey]

      //多选模式传值
      value: [
        {express_label: "指南", express_value: 'zhinan'},
        {express_label: "导航", express_value: 'daohang'},
        {express_label: "资源", express_value: 'ziyuan'},
      ], //v-model

      disabled: false,
      list: testData,
      className: 'input40',
      setting: {
        isGeRoot: true, //当子集合选择返回父节点选
        filterable: true, //是否过滤操作
        clearable: true, //是否清楚操作
        collapseTags: true, //多选是否清楚操作
        multiple: true, //是否多选
      },
      maps: {
        label: 'express_label',
        value: 'express_value'
      },
      rules: [
        {required: true, message: '请选择数据', trigger: 'blur'},
      ],
      inline: false,
      notice: '如:设置16:00前下单,最早可提前2小时;16:00后下单,最早可提前1天。<br />若:用户在16点前下单,最早可选择当前下单时间往后2小时的时间;16点后下单,最早只能选择第2天。'
    },
    id: 26
  },
  {
    label: '面板级联操作(单选) - 一次性给数据',
    key: 'xd-cascade-panel',
    value: {
      label: '级联操作:', //label
      ele: 'xd-cascade-panel', //package 名称
      valueKey: 'xd-cascade-panel-@key@', //form[valueKey]
      value: ['yizhi'], //v-model 单选模式传值

      //多选模式传值
      //value: [
      //{express_label: "指南", express_value: 'zhinan'},
      // {express_label: "导航", express_value: 'daohang'},
      // {express_label: "一致", express_value: 'yizhi'},
      // {express_label: "资源", express_value: 'ziyuan'},
      //],
      list: testData,
      disabled: false,
      setting: {
        multiple: false,
        isGeRoot: true, //当子集合选择返回父节点选
        height: '260px',
        tips: '如:设置16:00前下单,最早可提前2小时;16:00后下单,最早可提前1天。<br />若:用户在16点前下单,最早可选择当前下单时间往后2小时的时间;16点后下单,最早只能选择第2天。'
      },
      rules: [
        {required: true, message: '请输入运费满减规则金额,并且订单金额大于运费减金额。', trigger: 'blur'},
      ],
    },
    id: 27
  },
  {
    label: '面板级联操作(多选) - 一次性给数据',
    key: 'xd-cascade-panel',
    value: {
      label: '级联操作:', //label
      ele: 'xd-cascade-panel', //package 名称
      valueKey: 'xd-cascade-panel-@key@', //form[valueKey]
      value: [
        {express_label: "指南", express_value: 'zhinan'},
        {express_label: "导航", express_value: 'daohang'},
        {express_label: "一致", express_value: 'yizhi'},
        {express_label: "资源", express_value: 'ziyuan'},
      ],
      list: testData,
      disabled: false,
      setting: {
        isGeRoot: true, //当子集合选择返回父节点选
        multiple: true,
        height: '260px',
        tips: '如:设置16:00前下单,最早可提前2小时;16:00后下单,最早可提前1天。<br />若:用户在16点前下单,最早可选择当前下单时间往后2小时的时间;16点后下单,最早只能选择第2天。'
      },
      maps: {
        label: 'express_label',
        value: 'express_value'
      },
      rules: [
        {required: true, message: '请输入运费满减规则金额,并且订单金额大于运费减金额。', trigger: 'blur'},
      ],
    },
    id: 28
  },
  {
    label: '面板级联添加操作 - 数据懒加载',
    key: 'remote-cascader-panel',
    value: {
      label: '级联添加:', //label
      ele: 'xd-remote-cascader-panel', //package 名称
      valueKey: 'remote-cascader-panel', //form[valueKey]
      //v-model
      value: [
        {express_label: "北京/北京", express_value: '1-jfb1'},
      ],
      disabled: false,
      maps: {
        label: 'express_label',
        value: 'express_value'
      },
      handleCustom: ({action, data}) => {

        //全选第一层时候进行过滤操作
        if (action === 'filter') {
          return data.value !== '0';
        }

        //获取数据树列表
        if (action === 'lazyLoad') getDataRegionList(data.node, data.resolve);
      },
      setting: {
        isInclude: true, //有包含关系提示
        allSelectName: '全部省/市',
        height: '260px',
        multiple: true,
        tips: '如:设置16:00前下单,最早可提前2小时;16:00后下单,最早可提前1天。<br />若:用户在16点前下单,最早可选择当前下单时间往后2小时的时间;16点后下单,最早只能选择第2天。'
      },
      rules: [
        {required: true, message: '请输入运费满减规则金额,并且订单金额大于运费减金额。', trigger: 'change'},
      ]
    },
    id: 29
  },
  {
    label: '输入框前后单位显示',
    key: 'xd-input-unit',
    value: {
      label: '输入框前后单位显示:', //label
      ele: 'xd-input-unit', //package 名称
      valueKey: 'input-unit-@key@', //form[valueKey]
      value: 12, //默认值
      disabled: false,
      setting: {
        unit: '%',
        pos: 'append', //前后插入单位 //prepend,append
        type: 'number', //值的类型
        tips: '深圳万利达移动通信设备有限公司',
        width: '150px',
        before: '最长',
      },
      rules: [
        {required: true, message: '请输入内容', trigger: 'blur'},
      ],
    },
    id: 30
  },
  {
    label: '输入框后有单位显示,单位为选择',
    key: 'xd-input-unit',
    value: {
      label: '单位显示:', //label
      ele: 'xd-input-unit', //package 名称
      valueKey: 'input-unit', //form[valueKey]
      //默认值
      value: { //v-model
        inputA: 20,
        unitA: 1
      },
      disabled: false,
      setting: {
        /**单位选则**/
        select: [
          {"label": "小时", "value": 1},
          {"label": "分钟", "value": 2},
        ],
        pos: 'prepend', //prepend,append
        tips: '深圳万利达移动通信设备有限公司',
        type: 'number',
        width: '200px',
        selectWidth: "80px",
        before: '最长',

      },
      rules: [
        {required: true, message: '请输入内容', trigger: 'blur'},
      ],
      maps: {
        input: 'inputA',
        unit: 'unitA'
      },
    },
    id: 31
  },
  {
    label: '满减规则显示',
    key: 'xd-full-cut-rule',
    value: {
      label: '满减规则:', //label
      ele: 'xd-full-cut-rule', //package 名称
      valueKey: 'cut-full-rule-@key@', //form[valueKey]
      value: [
        {express_full_price: 200, express_cut_price: 30},
        {express_full_price: 500, express_cut_price: 80},
        {express_full_price: 1000, express_cut_price: 300},
      ], //v-model
      disabled: false,
      maps: {
        full_price: 'express_full_price',
        cut_price: 'express_cut_price'
      },
      rules: [
        {required: true, message: '请输入运费满减规则金额,并且订单金额大于运费减金额。', trigger: 'blur'},
      ]
    },
    id: 32
  },
  {
    label: '有单位输入区间数据',
    key: 'xd-input-range',
    value: {
      label: '按价格:', //label
      ele: 'xd-input-range', //package 名称
      valueKey: 'input-range-@key@', //form[valueKey]
      value: { //v-model
        startA: 1,
        endA: 10,
      },
      disabled: false,
      setting: {
        //icon优先与unit显示
        unit: '%',
        icon: 'xd_admin_iconfont xdicon_jiage',
      },
      rules: [
        {required: true, message: '输入的按价格规则不能为空。', trigger: 'change'},
      ],
      maps: {
        start: 'startA',
        end: 'endA',
      },
      notice: '市场价和分销价',
    },
    id: 33
  },
  {
    label: '按类型输入区间数据 - 可选类型操作',
    key: 'xd-input-range',
    value: {
      label: '按价格:', //label
      ele: 'xd-input-range', //package 名称
      valueKey: 'input-range-@key@', //form[valueKey]
      value: { //v-model
        startA: 1,
        endA: 10,
        select: 1,
      },
      disabled: false,
      setting: {
        /**单位显示**/
        unit: '%',
        icon: 'xd_admin_iconfont xdicon_jiage',

        /**选择条件显示**/
        selectWidth: '110px',
        selectMultiple: false,
        selectPlaceholder: '请选择',
        select: [
          {"label": "分销价", "value": 1},
          {"label": "市场价", "value": 2},
        ],
      },
      maps: {
        start: 'startA',
        end: 'endA',
        select: 'select'
      },
      notice: '市场价和分销价',
      rules: [
        {required: true, message: '输入的按价格规则不能为空。', trigger: 'change'},
      ],
    },
    id: 34
  },
  {
    label: '尺寸',
    key: 'xd-size',
    value: {
      label: '尺寸:', //label
      ele: 'xd-size', //package 名称
      valueKey: 'size-@key@', //form[valueKey]
      value: {
        height: 200,
        width: 750
      }, //v-model
      disabled: {
        wDisabled: true,
        hDisabled: false
      },
      setting: {
        height: null,
        width: 750,
      },
      placeholder: {
        width: '宽度px',
        height: '高度px'
      },
      rules: [
        {required: true, message: '请设置尺寸', trigger: 'change'},
      ],
    },
    id: 35
  },
  {
    label: '设置颜色',
    key: 'xd-color',
    value: {
      label: '颜色:', //label
      ele: 'xd-color', //package 名称
      valueKey: 'color-@key@', //form[valueKey]
      value: null, //v-model
      disabled: false,
      setting: {
        showAlpha: false,
      },
      placeholder: '请选择颜色值',
      rules: [
        {required: true, message: '请选择颜色值', trigger: 'change'},
      ],
    },
    id: 36
  },
  {
    label: '边距',
    key: 'xd-margin-padding',
    value: {
      label: '边距:', //label
      ele: 'xd-margin-padding', //package 名称
      valueKey: 'margin-@key@', //form[valueKey]
      //v-model
      value: {
        top: 1,
        right: 1,
        bottom: 1,
        left: 1,
      },
      disabled: false,
      setting: {
        type: 'margin',
      },
      placeholder: '请设置边距值',
      rules: [
        {required: true, message: '请设置边距值', trigger: 'change'},
      ],
    },
    id: 37
  },
  {
    label: '选择商品',
    key: 'xd-table-product',
    value: {
      label: '选择商品:', //label
      ele: 'xd-table-product', //package 名称
      valueKey: 'table-product-@key@', //form[valueKey]
      value: [
        {
          "id": "26",
          "package_name": "北京慈铭体检入职体检B",
          "price": "36000",
          "package_type": ["入职体检"],
          "updated": "2021-12-16",
          "created": "2021-12-17",
          "status": "Y",
          "image": 'https://jfbcake.oss-cn-beijing.aliyuncs.com/uploads/20200710/6e6e8d3be52ec622216e667620ee9634.jpg'
        },
        {
          "id": "27",
          "package_name": "廊坊大健康医院",
          "price": "72000",
          "package_type": ["老年体检"],
          "updated": "2021-12-17",
          "created": "2021-12-18",
          "status": "N",
          "image": 'https://jfbcake.oss-cn-beijing.aliyuncs.com/uploads/20200710/6e6e8d3be52ec622216e667620ee9634.jpg'
        },
        {
          "id": "28",
          "package_name": "廊坊大健康医院",
          "price": "76000",
          "package_type": ["儿童体检"],
          "updated": "2021-12-18",
          "created": "2021-12-19",
          "status": "Y",
          "image": 'https://jfbcake.oss-cn-beijing.aliyuncs.com/uploads/20200710/6e6e8d3be52ec622216e667620ee9634.jpg'
        }
      ],
      disabled: false,
      handleCustom: ({action, data}) => {

        //处理点击链接按钮跳转
        if (action === 'link') {
          return `/editor/editor`
        }

        if (action === 'button') {
          console.log(action, data)
        }

        //当前搜索记录中的某条记录是否在已选中列表中
        if (action === 'disabled') {
          return data.list.filter(item => {
            return item.id === data.row.id;
          })
        }

        //搜索操作
        if (action === 'search') {
          console.log(data.params);
          let list = [1, 2, 3, 4, 5].map(item => {
            return {
              "id": item === 1 ? '26' : this.$xdHelper.random(1000, 999999),
              "package_name": "北京慈铭体检入职体检B",
              "price": this.$xdHelper.random(100000, 999999),
              "package_type": ["入职体检"],
              "updated": "2021-12-16",
              "created": "2021-12-17",
              "status": this.$xdHelper.random(1, 2) === 1 ? 'Y' : 'N',
              "image": 'https://jfbcake.oss-cn-beijing.aliyuncs.com/uploads/20200710/6e6e8d3be52ec622216e667620ee9634.jpg'
            }
          });
          setTimeout(() => {
            data.cb({
              total: this.$xdHelper.random(10, 50),
              list: list
            })
          }, 1000)
        }

        //选择城市操作
        if (action === 'select') {
          let list = data.list.map((item, index) => {
            return {
              "id": item.id,
              "package_name": item.package_name,
              "price": item.price,
              "package_type": ["入职体检"],
              "updated": `2021-12-${9 + index}`,
              "created": `2021-12-${10 + index}`,
              "status": index % 2 === 0 ? 'Y' : 'N',
              "image": 'https://jfbcake.oss-cn-beijing.aliyuncs.com/uploads/20200710/6e6e8d3be52ec622216e667620ee9634.jpg'
            }
          });
          data.cb(list)
        }

        //记录返回数据进行过滤处理
        if (action === 'filter') {
          let list = data.filter(item => {
            return Object.keys(item).filter(key => {
              let temp = true;
              //首件数量必须大于0
              if (key === 'product_num' && Number(item[key]) === 0) temp = false;
              //首件运费必须大于0
              //if (key === 'freight' && Number(item[key]) === 0) temp = false;
              return !temp;
            }).length === 0;
          });
          if (list.length === data.length) return data;
          else return []
        }

      },
      setting: {
        btnName: '指定商品',
        border: true,
        headers: [
          {type: 'normal', prop: 'id', align: 'center', minWidth: 100, label: 'ID'},
          {type: 'normal', sort: true, prop: 'package_name', align: 'center', minWidth: 200, label: '商品名称'},
          {type: 'image', sort: true, prop: 'image', align: 'center', width: 100, height: 100, label: 'icon'},
          {type: 'price', sort: true, prop: 'price', align: 'center', width: 200, label: '价格'},
          {type: 'tag', prop: 'package_type', align: 'center', width: 100, label: '类型'},
          {type: 'status', prop: 'status', align: 'center', width: 100, label: '状态', message: ['正常', '禁用']},
          {type: 'normal', sort: true, prop: 'updated', align: 'center', width: 150, label: '更新时间'},
          {type: 'normal', sort: true, prop: 'created', align: 'center', width: 150, label: '创建时间'},
          {
            type: 'operate',
            align: 'center',
            prop: 'operate',
            width: 130,
            label: '操作',
            values: [
              {ui: 'text-link', name: '查看', type: 'primary', target: '_blank'},
              {ui: 'text-button', name: '删除', type: 'danger', pos: 'delete'},
            ]
          }
        ],
        searchForm: [
          {
            label: '商品ID:', //label
            ele: 'el-input', //package 名称
            valueKey: 'id', //form[valueKey]
            value: '', //v-model
            placeholder: '请输入商品ID'
          },
          {
            label: '商品名称:', //label
            ele: 'el-input', //package 名称
            valueKey: 'order_id', //form[valueKey]
            value: '', //v-model
            placeholder: '请输入订商品名称'
          },
        ],
        width: '900px',
        maxHeight: '600px',
        title: '选择商品',
        selectList: testData,
      },
      rules: [
        {required: true, message: '请选择指定的商品。', trigger: 'change'},
      ],
      inline: false,
      notice: '如:设置16:00前下单,最早可提前2小时;16:00后下单,最早可提前1天。<br />若:用户在16点前下单,最早可选择当前下单时间往后2小时的时间;16点后下单,最早只能选择第2天。',
    },
    id: 38
  },
  {
    label: '选择城市',
    key: 'xd-table-cascade',
    value: {
      label: '选择城市:', //label
      ele: 'xd-table-cascade', //package 名称
      valueKey: 'table-cascade-@key@', //form[valueKey]
      value: [
        {
          value: ['dingbudaohang'], //
          label: '指南/导航/顶部导航',
          product_num: 1,
          freight: 18900,
          regions: [
            {
              value: "dingbudaohang",
              label: "指南/导航/顶部导航"
            }
          ]
        },
        {
          value: ['shejiyuanze'], //
          label: '指南/设计原则',
          product_num: 1,
          freight: 18900,
          regions: [
            {
              value: "shejiyuanze",
              label: "指南/设计原则",
            }
          ]
        },
      ],
      disabled: false,
      handleCustom: ({action, data}) => {

        //处理点击链接按钮跳转
        if (action === 'link') {
          return `/editor/editor`
        }

        //选择城市操作
        if (action === 'select') {
          let value = [];
          let label = [];
          let list = data.list.map(item => {
            value.push(item.value);
            label.push(item.labelAll.join('/'));
            return {
              value: item.value,
              label: item.labelAll.join('/'),
            }
          });
          data.cb({
            value,
            label: label.join(','),
            regions: list,
            freight: 0,
            product_num: 0
          })
        }

        //记录返回数据进行过滤处理
        if (action === 'filter') {
          let list = data.filter(item => {
            return Object.keys(item).filter(key => {
              let xx = '';
              let temp = true;
              //首件数量必须大于0
              if (key === 'product_num' && Number(item[key]) === 0) temp = false;
              //首件运费必须大于0
              //if (key === 'freight' && Number(item[key]) === 0) temp = false;
              return !temp;
            }).length === 0;
          });
          if (list.length === data.length) return data;
          else return []
        }

      },
      setting: {
        btnName: '指定同城区域',
        border: true,
        isOne: false,
        headers: [
          //{type: 'normal', sort: true, prop: 'label', align: 'center', minWidth: 200, label: '可配送区域'},
          {type: 'tag', prop: 'regions', align: 'center', minWidth: 200, label: '可配送区域'},
          {type: 'input', prop: 'product_num', align: 'center', width: 100, label: '首件(个)'},
          {type: 'input', prop: 'freight', align: 'center', width: 100, label: '运费(元)', isPrice: true},
          {
            type: 'operate',
            align: 'center',
            prop: 'operate',
            minWidth: 200,
            label: '操作',
            values: [
              {ui: 'text-button', name: '修改', type: 'primary'},
              {ui: 'text-button', name: '删除', type: 'danger'},
            ]
          }
        ],
        width: '600px',
        maxHeight: '400px',
        title: '选择同城配送区域',
        selectList: testData,
      },
      rules: [
        {required: true, message: '请选择同城配送区域。', trigger: 'change'},
      ],
      inline: false,
      notice: '如:设置16:00前下单,最早可提前2小时;16:00后下单,最早可提前1天。<br />若:用户在16点前下单,最早可选择当前下单时间往后2小时的时间;16点后下单,最早只能选择第2天。',
    },
    id: 39
  },
  {
    label: '商品参数',
    key: 'xd-product-params',
    value: {
      label: '商品参数:', //label
      ele: 'xd-product-params', //package 名称
      valueKey: 'product-params-@key@', //form[valueKey]
      value: [
        {
          "attr_id": "xI-1p0qSY1roS2Z5LxA-S",
          "name": "用户选择",
          "value": 'sed',
        },
        {
          "attr_id": "xI-1p0qSY1roS2Z5LxA-C",
          "name": "复选框",
          "value": ['Excepteur', 'sed'],
        },
        {
          "attr_id": "xI-1p0qSY1roS2Z5LxA-R",
          "name": "单选",
          "value": "女",
        },
        {
          "attr_id": "xI-1p0qSY1roS2Z5LxA-I",
          "name": "输入框",
          "value": "大师兄",
        },
        {
          "attr_id": "",
          "name": "key1",
          "value": "value1",
        },
        {
          "attr_id": "",
          "name": "key2",
          "value": "value2",
        },
      ],
      setting: {
        parameters: [
          {
            "attr_id": "xI-1p0qSY1roS2Z5LxA-S",
            "name": "用户选择",
            "input_type": "SELECT",
            "is_required": false,
            "options": [
              {
                "label": "sed",
                "value": "sed"
              },
              {
                "label": "Excepteur",
                "value": "Excepteur"
              },
              {
                "label": "nostru",
                "value": "nostru"
              },
              {
                "label": "proident",
                "value": "proident"
              }
            ],
          },
          {
            "attr_id": "xI-1p0qSY1roS2Z5LxA-C",
            "name": "复选框",
            "input_type": "CHECKBOX",
            "is_required": false,
            "options": [
              {
                "label": "sed",
                "value": "sed"
              },
              {
                "label": "Excepteur",
                "value": "Excepteur"
              },
              {
                "label": "nostru",
                "value": "nostru"
              },
              {
                "label": "proident",
                "value": "proident"
              }
            ],
          },
          {
            "attr_id": "xI-1p0qSY1roS2Z5LxA-R",
            "name": "单选",
            "input_type": "RADIO",
            "is_required": false,
            "options": [
              {
                "label": "男",
                "value": "男"
              },
              {
                "label": "女",
                "value": "女"
              }
            ],
          },
          {
            "attr_id": "xI-1p0qSY1roS2Z5LxA-I",
            "name": "输入框",
            "input_type": "INPUT",
            "is_required": false,
          },
        ],
        can_add_param: true, //是否启用自定义参数
        is_required: false, //自定义参数必须
      },
      inline: false,
      notice: '如:设置16:00前下单,最早可提前2小时;16:00后下单,最早可提前1天。<br />若:用户在16点前下单,最早可选择当前下单时间往后2小时的时间;16点后下单,最早只能选择第2天。',
      rules: [
        {required: true, message: '请添加内容', trigger: 'change'},
      ],
    },
    id: 40
  },
  {
    label: '证件照上传',
    key: 'xd-upload',
    value: {
      label: '证件照上传:',
      ele: 'xd-upload',
      valueKey: 'upload-@key@',
      value: {},
      defaultValue: [
        {
          url: "Xduu7PusltEYKa3RVPhhuDYiElP2rQzU",
        },
        {
          url: "Xduu7PusltEYKa3RVPhhuDYiElP2rQzU",
        }
      ],
      tipsformet: '上传文件格式:@imageType@,不超过@size@MB.',
      type: ['jpg', 'png', 'jpeg'],
      //其值:one=>单文件上传 auth=>证件正反面上传 list=>多文件上传
      styleType: 'auth',
      //''=>API服务上传  qiniu=>七牛云OSS上传  aliyun=> 阿里云OSS上传
      uploadType: 'qiniu',
      name: 'file',
      size: 5,
      //上传地址,
      //本地上传 设置本地地址即可
      //qiniu上传 设置:https://up-z1.qiniup.com
      //使用aliyun上传设置为aliyun
      action: 'https://up-z1.qiniup.com',
      rules: [
        {required: true, message: '请上传图片', trigger: ['blur', 'change']},
      ]
    },
    id: 41
  },
  {
    label: '单张图上传(图标)',
    key: 'xd-upload',
    value: {
      label: '单张:',
      ele: 'xd-upload',
      //绑定键值
      valueKey: 'upload-@key@',
      value: {},
      //设置模式默认值
      defaultValue: {
        url: "Xduu7PusltEYKa3RVPhhuDYiElP2rQzU",
      },
      slot: true, //true插槽模式  false输入框模式
      oneWidth: 130, //插槽模式图片显示高度
      oneHeight: 100,//插槽模式图片显示宽度
      tipsformet: '上传文件格式:@imageType@,不超过@size@MB.',
      type: ['jpg', 'png', 'jpeg'],
      //其值:one=>单文件上传 auth=>证件正反面上传 list=>多文件上传
      styleType: 'one',
      //''=>API服务上传  qiniu=>七牛云OSS上传  aliyun=> 阿里云OSS上传
      uploadType: 'qiniu',
      size: 5,
      //上传地址,
      //本地上传 设置本地地址即可
      //qiniu上传 设置:https://up-z1.qiniup.com
      //使用aliyun上传设置为aliyun
      action: 'https://up-z1.qiniup.com',
      name: 'file',
      rules: [
        {required: true, message: '请上传图片', trigger: ['blur', 'change']},
      ]
    },
    id: 42
  },
  {
    label: '单张图上传(输入框)',
    key: 'xd-upload',
    value: {
      label: '单张:',
      ele: 'xd-upload',
      //绑定键值
      valueKey: 'upload-@key@',
      value: {},
      //设置模式默认值
      defaultValue: {
        url: "Xduu7PusltEYKa3RVPhhuDYiElP2rQzU",
      },
      slot: false, //true插槽模式  false输入框模式
      tipsformet: '上传文件格式:@imageType@,不超过@size@MB.',
      type: ['jpg', 'png', 'jpeg'],
      //其值:one=>单文件上传 auth=>证件正反面上传 list=>多文件上传
      styleType: 'one',
      //''=>API服务上传  qiniu=>七牛云OSS上传  aliyun=> 阿里云OSS上传
      uploadType: 'qiniu',
      size: 5,
      //上传地址,
      //本地上传 设置本地地址即可
      //qiniu上传 设置:https://up-z1.qiniup.com
      //使用aliyun上传设置为aliyun
      action: 'https://up-z1.qiniup.com',
      name: 'file',
      rules: [
        {required: true, message: '请上传图片', trigger: ['blur', 'change']},
      ]
    },
    id: 43
  },
  {
    label: '多张图上传',
    key: 'xd-upload',
    value: {
      label: '多张图上传:',
      ele: 'xd-upload',
      valueKey: 'upload-@key@',
      value: {},
      defaultValue: [
        {url: "Xduu7PusltEYKa3RVPhhuDYiElP2rQzU",}
      ],
      tipsformet: '上传文件格式:@imageType@,不超过@size@MB.',
      type: ['jpg', 'png', 'jpeg'],
      //其值:one=>单文件上传 auth=>证件正反面上传 list=>多文件上传
      styleType: 'list',
      //''=>API服务上传  qiniu=>七牛云OSS上传  aliyun=> 阿里云OSS上传
      uploadType: 'qiniu',
      sort: true,
      name: 'file',
      size: 5,
      //上传地址,
      //本地上传 设置本地地址即可
      //qiniu上传 设置:https://up-z1.qiniup.com
      //使用aliyun上传设置为aliyun
      action: 'https://up-z1.qiniup.com',
      listSize: '160*120', //列表图片对象高和宽
      maxlen: 100, //当上传图片列表时候,最大数量数量
      rules: [
        {required: true, message: '请上传图片', trigger: ['blur', 'change']},
      ]
    },
    id: 44
  },
  {
    label: 'Transfer',
    key: 'xd-transfer',
    value: {
      label: 'Transfer:', //label
      ele: 'xd-transfer', //package 名称
      valueKey: 'transfer-@key@', //form[valueKey]
      value: [1, 2, 3], //v-model
      placeholder: '输入城市名称',
      title: ['Source', 'Target'],
      left: [], //左侧选中值
      right: [], //右边选中值
      list: null, //[] => 数组列表 null=>使用测试数据
      rules: [
        {required: true, message: '请选择穿越的值', trigger: ['blur', 'change']},
      ]
    },
    id: 45
  },
  {
    label: '自定义Radio',
    key: 'xd-radio-custom',
    value: {
      label: '自定义Radio:', //label
      ele: 'xd-radio-custom', //package 名称
      valueKey: 'radio-custom-@key@', //form[valueKey]
      value: 1,
      setting: {
        list: [
          {value: 1, label: '实物商品', desc: '通过物流或<span class="red">自提方式</span>发货'},
          {value: 2, label: '电子票券', desc: ''},
          {value: 3, label: '生活服务', desc: '自动生成券码,到店核销'},
          {value: 4, label: '线上显示', desc: '自动生成券码,到店核销'},
        ]
      },
      inline: false,
      notice: '如:设置16:00前下单,最早可提前2小时;16:00后下单,最早可提前1天。<br />若:用户在16点前下单,最早可选择当前下单时间往后2小时的时间;16点后下单,最早只能选择第2天。',
      rules: [
        {required: true, message: '请添加内容', trigger: 'change'},
      ],
    },
    id: 46
  },
  {
    label: '输入域框',
    key: 'el-input',
    value: {
      label: '输入域框:', //label
      ele: 'el-input', //package 名称
      //text,textarea 和其他 原生 input 的 type 值
      type: 'textarea',
      valueKey: '@key@', //form[valueKey]
      value: '', //v-model
      placeholder: '请输入内容',
      className: 'input40', //样式名称 //input100,input80,input70,input60,input50,input40,input30,input20,
      rules: [
        {required: true, message: '请输入内容', trigger: 'blur'},
      ]
    },
    id: 47
  },
  {
    label: '选中路径',
    key: 'el-input',
    value: {
      label: '选中路径:', //label
      ele: 'xd-select-pages-path', //package 名称
      valueKey: 'select-pages-path', //form[valueKey]
      value: null,
      setting: {
        router: getPagesTreeToPathArr(router.data)
      },
      inline: false,
      notice: '如:设置16:00前下单,最早可提前2小时;16:00后下单,最早可提前1天。<br />若:用户在16点前下单,最早可选择当前下单时间往后2小时的时间;16点后下单,最早只能选择第2天。',
      rules: [
        {required: true, message: '请添加内容', trigger: 'change'},
      ],
    },
    id: 48
  },

]