index.js 4.23 KB
/*
 * @Descripttion: 主文件
 * @version:
 * @Author: qianlishi
 * @Date: 2021-08-29 06:43:07
 * @LastEditors: qianlishi qianlishi@anji-plus.com
 * @LastEditTime: 2022-11-07 15:35:42
 */
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: 'data-source-select',
        label: '主数据源',
        name: 'master',
        required: false,
        placeholder: '主数据源[List:sName、sValue] ',/**LIST sName、sValue 后台代码自动转成 sName:sValue Map形式*/
        value: ''
      },
      {
        type: 'el-input-number',
        label: '刷新时间(毫秒)',
        name: 'refreshMasterTime',
        value: '600000',
        required: false,
        placeholder: '毫秒',
      },
      {
        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: [],
    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: 600000
          },
          {
            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: [],
  }
}

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 }