index.js 3.38 KB
/*
 * @Descripttion: 主文件
 */
import { widgetTool } from "./main"
const screenConfig = {
  code: 'screen',
  type: 'screen',
  label: '大屏设置',
  icon: '',
  options: {
    setup: [
      {
        type: 'el-input-number',
        label: '大屏宽度',
        name: 'width',
        required: false,
        placeholder: 'px',
        value: '1920',
      },
      {
        type: 'el-input-number',
        label: '大屏高度',
        name: 'height',
        required: false,
        placeholder: 'px',
        value: '1080',
      },
      {
        type: 'el-input-text',
        label: '标题',
        name: 'title',
        require: false,
        placeholder: '',
        value: '大屏',
      },
      {
        type: 'el-input-textarea',
        label: '大屏简介',
        name: 'description',
        required: false,
        placeholder: '',
        value: ''
      },
      {
        type: 'vue-color',
        label: '背景颜色',
        name: 'backgroundColor',
        required: false,
        placeholder: '',
        value: 'rgba(45, 86, 126, 1)',
      },
      {
        type: 'custom-upload-new',
        label: '图片地址',
        name: 'backgroundImage',
        required: false,
        placeholder: '',
        value: '',
      }
    ],
    data: [{
      type: 'el-radio-group',
      label: '数据类型',
      name: 'dataType',
      require: false,
      placeholder: '',
      selectValue: true,
      selectOptions: [
        {
          code: 'staticData',
          name: '静态数据',
        },
        {
          code: 'dynamicData',
          name: '动态数据',
        },
      ],
      value: 'staticData',
    },
      {
        type: 'el-input-number',
        label: '刷新时间(毫秒)',
        name: 'refreshTime',
        relactiveDom: 'dataType',
        relactiveDomValue: 'dynamicData',
        value: 3600000
      },
      {
        type: 'el-button',
        label: '静态数据',
        name: 'staticData',
        required: false,
        placeholder: '',
        relactiveDom: 'dataType',
        relactiveDomValue: 'staticData',
        value: {'title':'标题', 'name': '测试名字', 'address': '上海市普陀区金沙江路 1518 弄0001','dProductQty':100,'dProductRate':13},
      },
      {
        type: 'dycustComponents',
        label: '',
        name: 'dynamicData',
        required: false,
        placeholder: '',
        relactiveDom: 'dataType',
        relactiveDomValue: 'dynamicData',
        chartType: 'master-data',
        dictKey: 'MASTER_PROPERTIES',
        value: '',
      }],
    position: [],
    selectMore:[]
  }
}

export const converArr = (data) => {
  let tempArr = [], newArr = []
  for (let i = 0; i < data.length; i++) {
    const item = data[i]
    if (tempArr.indexOf(item.type) === -1) {
      newArr.push({
        name: item.tabName,
        type: item.type,
        list: [item]
      })
      tempArr.push(item.type);
    } else {
      for (let j = 0; j < newArr.length; j++) {
        if (newArr[j].type == item.type) {
          newArr[j].list.push(item)
        }
      }
    }
  }
  return newArr
}

const widgetTools = converArr([...widgetTool])

const getToolByCode = function (code) {
  // 获取大屏底层设置属性
  if (code == 'screen') {
    return screenConfig
  }
  // 获取组件
  return [...widgetTool].find((item) => {
    return item.code == code
  })
}
export { widgetTools, getToolByCode}