0.0.4 • Published 11 months ago

easy-gant-beta v0.0.4

Weekly downloads
-
License
MIT
Repository
-
Last release
11 months ago

项目说明

项目进度跟踪可视化插件

下载依赖

npm install easy-gant yarn add easy-gant

API及配置介绍

data

传入的数据

数据格式如下:

{
  title: 'V9E-MTN',            名称*
  level: 1,                    层级*
  expanded: true,              是否展开*
  key: '0',                    唯一键*
  taskStartTime: '2024-2-27',  开始时间*
  taskEndTime: '2024-3-2',     结束时间*
  children: [],                子集*
  process: 0,                  内部进度*
  startGroup: [                连接线首关联*
    ['1', '2'],                首FIRST
    ['1'],                     尾FINAL
  ],              
  endGroup: [                  连接线尾关联*
    ['1'],                     首FIRST
    ['1'],                     尾FINAL
  ],                
  residences: 'Tom',           拥有者*
  ...                          其他定制属性
}

line

{
  dashedLine: {           虚线配置
    color: 'green',       颜色
    dash: true,           是否虚线
    width: 2,
  },
  color: '#0f97b3',       连线颜色
  lineWidth: 3,           连线宽度
  lightColor: '#0f97b3',  发光颜色
  showKey: false,         展示线key
  process: {              渠道
    color: 'linear-gradient(135deg, #001f3f, #0088a9, #00c9a7, #92d5c6, #ebf5ee)',
    fontSize: 14,
    showOwner: true,        展示名称
    fontColor: '#000',      字体颜色
    fontFamily: 'cursive',  字体
    lightColor: '#0088a9',  发光颜色
    cloud: {                滑块
      color: '#0f97b3',
      maskColor: 'rgba(0,0,0,0.3)'
    }
  }
}

schema

表单配置数据如下,通过json配置的形式生成form表单

{
  type: 'array',                    数据类型
  title: '计划周期',                 表单名称
  'g-field': 'RangePicker',         组件类型
  'g-required': true,               是否必填
  'g-status': 'edit',               状态
  rules: {                          校验规则
    message: '请选择项目周期'
  },
  'g-styles': { width: '100%' },    样式
  'g-props': {                      组件原生props
    format: 'YYYY-MM-DD',
    allowClear: true,
  }
}

treeDatas 表单所用到的枚举键值对

以下为内置配置

const defaultSchema = {
  type: 'object',
  layout: {
    labelCol: { span: 4 },
    wrapperCol: { span: 20 },
  },
  properties: {
    title: {
      type: 'string',
      title: '任务名称',
      'g-field': 'Input',
      'g-required': true,
      'g-status': 'edit',
      rules: {
        message: '请填写任务名称'
      },
      'g-props': {
        allowClear: true,
      }
    },
    residence: {
      type: 'string',
      title: '负责人',
      'g-field': 'Select',
      'g-required': true,
      'g-status': 'edit',
      'g-treeDatas': 'residences',
      rules: {
        message: '请选择负责人'
      },
      'g-props': {
        allowClear: true,
      }

    },
    taskTime: {
      type: 'array',
      title: '计划周期',
      'g-field': 'RangePicker',
      'g-required': true,
      'g-status': 'edit',
      rules: {
        message: '请选择项目周期'
      },
      'g-styles': { width: '100%' },
      'g-props': {
        format: 'YYYY-MM-DD',
        allowClear: true,
      }
    }
  },
};

onChange事件

所有操作都归类于一个change事件监听,通过changePath区分

popover

popover显示的内容可以自定义

临时假数据

可以用下方数据充当数据源体验

const data = [
  {
    title: 'V9E-MTN', level: 1, process: 45, startGroup: [['1', '2'], []], endGroup: [[], ['1']], expanded: true, key: '0', taskStartTime: '2024-2-27', taskEndTime: '2024-3-2', children: [
      {
        title: 'FP fingerprint', level: 2, process: 0,  expanded: false, key: '1', taskStartTime: '2024-2-27', taskEndTime: '2024-3-2', children: [
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '5', taskStartTime: '2024-2-27', taskEndTime: '2024-3-2' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '6', taskStartTime: '2024-2-26', taskEndTime: '2024-3-1' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '7', taskStartTime: '2024-2-26', taskEndTime: '2024-2-28' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '8', taskStartTime: '2024-2-25', taskEndTime: '2024-2-27' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '9', taskStartTime: '2024-2-26', taskEndTime: '2024-2-29' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '10', taskStartTime: '2024-2-27', taskEndTime: '2024-3-5' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '11', taskStartTime: '2024-2-28', taskEndTime: '2024-3-4' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '12', taskStartTime: '2024-2-24', taskEndTime: '2024-2-27' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '13', taskStartTime: '2024-2-28', taskEndTime: '2024-3-2' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '14', taskStartTime: '2024-2-24', taskEndTime: '2024-2-27' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '15', taskStartTime: '2024-2-24', taskEndTime: '2024-2-27' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '16', taskStartTime: '2024-2-24', taskEndTime: '2024-2-27' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '17', taskStartTime: '2024-2-24', taskEndTime: '2024-2-27' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '18', taskStartTime: '2024-2-24', taskEndTime: '2024-2-27' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '19', taskStartTime: '2024-2-24', taskEndTime: '2024-2-27' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '20', taskStartTime: '2024-2-24', taskEndTime: '2024-2-27' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '21', taskStartTime: '2024-2-24', taskEndTime: '2024-2-27' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '22', taskStartTime: '2024-2-24', taskEndTime: '2024-2-27' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '23', taskStartTime: '2024-2-24', taskEndTime: '2024-2-27' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '24', taskStartTime: '2024-2-24', taskEndTime: '2024-2-27' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '25', taskStartTime: '2024-2-24', taskEndTime: '2024-2-27' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '26', taskStartTime: '2024-2-24', taskEndTime: '2024-2-27' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '27', taskStartTime: '2024-2-24', taskEndTime: '2024-2-27' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '28', taskStartTime: '2024-2-24', taskEndTime: '2024-2-27' },
          { title: 'FP face swiping', level: 3, process: 0, expanded: false, key: '29', taskStartTime: '2024-2-24', taskEndTime: '2024-8-27' },
        ]
      }
    ],
  },
  {
    title: 'V93-BCSC-Bcare', process: 3, key: '2', level: 1,  taskStartTime: '2024-2-27', taskEndTime: '2024-3-2', residence: 'Athena', expanded: true
  }
];

const residences = [
    { value: 'Athena', label: 'Athena', },
    { value: 'martha', label: 'martha', },
    { value: 'Adam', label: 'Adam', },
    { value: 'Christopher', label: 'Christopher'},
    { value: 'George', label: 'George', },
    { value: 'Jack', label: 'Jack', },
    { value: 'Jason', label: 'Jason', },
];

const treeDatas = { residences };

const line = {
  dashedLine: { // 虚线配置
    color: 'green', // 颜色
    dash: true, // 是否虚线
    width: 2,
  },
  color: '#0f97b3', // 连线颜色
  lineWidth: 3, // 连线宽度
  lightColor: '#0f97b3', // 发光颜色
  showKey: false, // 展示线的key
  process: {
    color: 'linear-gradient(135deg, #001f3f, #0088a9, #00c9a7, #92d5c6, #ebf5ee)',
    fontSize: 14,
    showOwner: true, // 展示名称
    fontColor: '#000',
    fontFamily: 'cursive',
    lightColor: '#0088a9',
    cloud: {
      color: '#0f97b3',
      maskColor: 'rgba(0,0,0,0.3)'
    }
  }
}