1.2.85-beta • Published 2 years ago

whh-control v1.2.85-beta

Weekly downloads
216
License
MIT
Repository
-
Last release
2 years ago

欢迎使用whh-control


  • 重构了whh-grid,丰富了列编辑器
  • 增加了更多的基本控件
  • 解耦了项目结构
  • 优化了样式,提高开发效率

cmd-markdown-logo

update

  • 1.0.92更新日志,新增了cellStyle 和 rowStyle 的参数
  • 1.0.93更新日志,新增了keepSource的属性,如果不需要记录表格更改,可以绑定keepSource=false
  • 1.0.94更新日志,新增了revertRows的方法,可以还原某些行或者单元格为原始数据,新增了deleteAllItems的方法, 修复了deleteItem参数为空时删除所有数据的风险,新增加了allowSelectMethod的属性,用来决定某一行是否允许选择
  • 1.0.98更新日志,新增了可以直接导出所有记录的exportAllAsExcel(data,name)的方法,其中data是要导出的数据, 增加了对非空字段的校验,需要在grid上启用属性useStrict="true"
  • 1.0.99更新日志,新增了排序和筛选的逻辑
  • 1.1.01更新日志,修复了exportAllAsExcel 没有弹出高级选择框的问题
  • 1.1.23更新日志,新增加了grid排序,筛选,固定列
  • 1.1.58更新日志,修复了日期还有日期时间导出格式的问题
  • 1.1.59更新日志,新增加了动态宽展列的功能
  • 1.1.60更新日志,修复了excel导出会把开头的0去掉的问题
  • 1.1.67更新日志,增加了whh-tree-grid控件,修复了表头合并的bug
  • 1.1.74更新日志,增加了whh-image的beforeUpload属性

1. 基于vxe-table封装的一套功能强大的grid [vxe-table]

  • 最大限度的支持老版本的whh-grid
  • 全部基于vue开发,摒弃了之前的jquery+kendoui+angular+vue的开发框架
  • 不需要再额外依赖第三方js库相关的1700+个js和css文件
  • 重新开发gridEditor编辑器
  • 新增加了更多列编辑器
    /**
     * 是否固定列,固定列直接按dw维护的列宽,不再按比例、按屏幕分摊
     */
    fixWidth:{
      type:Boolean,
      default:false
    },
    /**
     * 默认执行查询时间,需要配合axios使用
     */
    queryTimeout:{
      type:Number,
      default:90000
    },
    /**
     * 是否允许拖拽,拖拽之后不再支持 父级表头
     */
    draggable:{
      type:Boolean,
      default:false
    },
    /**
     * 导入设置
     */
    importConfig: Object,

    /**
     * 是否进行校验,默认不校验
     */
    useStrict: {
      type: Boolean,
      default: false
    },
    /**
     * 基础的构建参数,必传
     */
    option: {
      type: Object,
    },
    /**
     * 编辑模式
     * cell 单元格编辑(默认)
     * row 行编辑(推荐)
     */
    mode: {
      type: String,
      default: "cell"
    },
    /**
     * 自动触发布局的参数
     * 用来结局v-show造成的grid显示异常
     */
    syncResize:{
      type:String
    },
    /**
     * 触发方式,click或者manual
     */
    trigger: {
      type: String,
      default: "click"
    },
    /**
     * 列头的菜单项
     */
    headerMenus:Array,
    /**
     * body的菜单项
     */
    bodyMenus:Array,
    /**
     * 尾部的菜单项(暂未实现)
     */
    footerMenus:Array,
    /**
     * 菜单项实现的方法
     */
    visibleMethod:Function,
    /**
     * 父容器的高度
     * 可能在未来的版本弃用
     */
    outterHeight:{
      type:Number
    },
    /**
     * 是否使用斑马纹
     */
    stripe:{
      type:Boolean,
      default:true
    },
    /**
     * 列头行样式的class
     */
    headerRowClass: {
      type: [String, Function],
      default: "j-whh-vxe-header-row"
    },
    /**
     * 行样式的class
     */
    rowClass: {
      type: [String, Function],
      default: "j-whh-vxe-row"
    },
    /**
     * 单元格样式的class
     */
    cellClass: {
      type: [String, Function],
      default: "j-whh-vxe-cell"
    },
    rowStyle:{
      type:[Object,Function]
    },
    cellStyle:{
      type:[Object,Function]
    },
    /**
     * 列头单元格样式的class
     */
    headerCellClass: {
      type: [String, Function],
      default: "j-whh-vxe-header-cell"
    },
    /**
     * 性能调优参数(建议不做修改)
     * 全部采用虚拟滚动
     */
    optimization: {
      type: Object,
      default: function(){
        return {
          scrollY:
            {
              gt:60,
            }  ,
          animat: false
        }
      }
    },
    /**
     * 行合并的方法
     * 在主系表结构数据维护时推荐
     */
    rowspanMethod: {
      type: Function,
      default: undefined
    },
    /**
     * 列数据源提供工具
     * 只有单列下拉和多列下拉时有用
     */
    columnDataProvider:{
      type:Object
    }
  export default {

  /**
   * 清除所有数据和缓存,包括选中行
   */
  clearData()

  /**
   * 为grid赋值
   * @param data 复制的数据,必须为一个数组,数组的元素为对象
   */
  setData(data)
  ,
  /**
   * 默认的查询方法,返回一个promise
   * 查询完毕会发一个query-end的广播
   * @param para 查询的参数
   * @returns {Promise<any>}
   */
  defaultRetrieve(para)
  ,
  /**
   * 获取当前显示表格的所有数据
   * @returns {*}
   */
  getData: function ()

  /**
   * 删除选中行,包括单选和多选
   */
  deleteSelectedItems()

  /**
   * 删除选中行,只能是单选,
   * 已过时
   */
  deleteSelectedItem()

  /**
   * 在指定位置插入一条数据,
   * 当position为-1时插在末尾
   * 可以兼容之前的方法
   * @param item
   * @param position
   */
  addItem(item, position)

  /**
   * 在指定位置插入多条数据,
   * 当position为-1时插在末尾
   * @param items
   * @param position
   */
  addItems(items, position)

  /**
   * 删除一条记录
   * @param item
   */
  deleteItem(item)

  /**
   * 删除多条记录
   * @param items
   */
  //删除多条数据
  deleteItems(items)

  /**
   * 拿到选中的行
   * 包括多选和单选
   * 可以兼容之前的方法
   * @returns {*}
   */
  getSelectedItems()

  /**
   * 获取选择的列,只能用于单选
   * 已弃用
   * @returns {*}
   */
  getSelectedItem()

  /**
   * 拿到WhhGrid的元素
   * @returns {default}
   */
  getGridComponent()

  /**
   * 拿到VxeTable的元素
   * @returns {*|null}
   */
  getTableComponent()

  /**
   * 选择一行数据
    * @param item
   * @returns {*}
   */
  selectItem(item)

  /**
   * 选择多行数据
   * @param item
   * @returns {*}
   */
  selectItems(items)

  /**
   * 全选
   */
  selectAllItems()

  /**
   * 全部取消选择
   */
  unSelectAllItems()

  /**
   * 取消选择某一行
   * @param item
   * @returns {*}
   */
  unSelectItem(item)

  /**
   * 默认的保存方法,返回一个proimse
   * @returns {Promise<any>}
   */
  defaultSave()

  /**
   * 刷新表
   * 可以用于防止路由切换时数据丢失
   */
  refreshTable()

  /**
   * 判断是否有修改的列
   * @returns {boolean}
   */
  hasModifyCache()

  /**
   * 拿到增删改查的列
   * @returns {{insertItems: *, updateItems: *, deleteItems: *, originalItems: (Array|*)}}
   */
  getModifyCache()

  /**
   * 导出excel
   * @param name
   */
  exportAsExcel(name) {
    this.xTable.openExport({
      filename: name,
      types: ['csv', 'text', 'xml']
    })
  }
  ,
  /**
   * 隐藏某些列
   * @param fields
   */
  hideColumns(fields) {
    let columns = this.xTable.getTableColumn().fullColumn
    for (let i = 0; i < columns.length; i++) {
      let property = columns[i].property
      if (fields.indexOf(property) >= 0) {
        this.xTable.hideColumn(columns[i])
      }
    }
  }
  ,
  /**
   * 显示某些列
   * @param fields
   */
  showColumns(fields) {
    let columns = this.xTable.getTableColumn().fullColumn
    for (let i = 0; i < columns.length; i++) {
      let property = columns[i].property
      if (fields.indexOf(property) >= 0) {
        this.xTable.showColumn(columns[i])
      }
    }
  }
  ,
  /**
   * 定义某些不可编辑的列
   * 除此之外的列均可标记
   * @param fields
   */
  declareDisabledColumns(fields) {
    let options = this.globalOption.columns
    for (let i = 0; i < options.length; i++) {
      if (fields.indexOf(options[i].field) >= 0) {
        options[i].editable = false
      } else {
        options[i].editable = true
      }
    }
    this.buildColumn(this.globalOption)
  }
  ,
  /**
   * 与declareDisabledColumns相反
   * @param fields
   */
  declareEnbledColumns(fields) {
    let options = this.globalOption.columns
    for (let i = 0; i < options.length; i++) {
      if (fields.indexOf(options[i].field) >= 0) {
        options[i].editable = true
      } else {
        options[i].editable = false
      }
    }
    this.buildColumn(this.globalOption)
  }
  ,
  /**
   * 根据field拿到某一列的配置
   * @param field
   * @returns {*}
   */
  getColumnByField(field) {
    return this.xTable.getColumnByField(field)
  },

  /**
   * 动态控制列是否可编辑时用到
   * @param field
   * @param value
   */
  setDisabled(field, value) {
    let col = this.xTable.getColumnByField(field)
    if (col == undefined) {
      return
    }
    if (col.own && col.own.setDisabled) {
      col.own.setDisabled(value)
    }
  },

  /**
   * 动态扩展列,在原有列的基础上动态扩展
   * 第二次拓展会覆盖第一次推展的结果
   * @param columns
   */
  loadDynamicColumn(columns){
    let column = []
    for(let j=0;j<num;j++){
      let group1 = {
        field:'dt'+j,
        title:'动态父节点'+j
      }
      column.push(group1)
      for(let i=0;i<5;i++){
        let a1 = {
          field:'a-'+j+"-"+i,
          title:'动态'+j+"-"+i,
          width:'100px',
          minWidth:'100px',
          parentCol:group1.field
        }
        column.push(a1)
      }
    }
    this.gridNew.loadDynamicColumn(column)
  }
}
 /**
 * 值改变
 * row,column.selectItem
 */
ValueChange: "value-change",
/**
 * 保存成功
 * this
 */
SaveEnd: "save-end",
/**
 * 查询完成
 * originalData
 */
QueryEnd: "query-end",
/**
 * 双击事件
 * row,column,e,scope
 */
DbClick: "db-click",
/**
 * 单击事件
 * row,column,e,scope
 */
Click: "click",
/**
 * 初始化完成
 * this
 */
InitEnd: "init-end",
/**
 * 编辑器显示
 * row,column,this
 */
EditActived: "edit-actived",
/**
 * 显示编辑器之前
 * row,column,e
 */
BeforeEdit: "before-edit",
/**
 * 选中行改变
 */
SelectionChange: "select-change",//选中的多行改变
/**
 * 选中单行改变
 * 已弃用
 */
RadioChange: "radio-change", //选中的单行改变,
/**
 * 上传回调,用于fileEditor
 */
AfterUpload:"after-upload",
/**
 * 分页事件回调,用于自定义分页
 */
PageChange:"page-change",
/**
 * 菜单触发
 */
MenuTrigger:"menu-trigger",
/**
 * 菜单选择
 */
MenuSelect:"menu-select"
1.2.85-beta

2 years ago

1.2.83-beta

2 years ago

1.2.82-beta

2 years ago

1.2.84-beta

2 years ago

1.2.80-beta

2 years ago

1.2.79-beta

2 years ago

1.2.78-beta

2 years ago

1.2.77-beta

2 years ago

1.2.76-beta

3 years ago

1.2.75-beta

3 years ago

1.2.73-beta

3 years ago

1.2.74-beta

3 years ago

1.2.70-beta

3 years ago

1.2.71-beta

3 years ago

1.2.69-beta

3 years ago

1.2.72-beta

3 years ago

1.2.67-beta

3 years ago

1.2.68-beta

3 years ago

1.2.66-beta

3 years ago

1.2.63-beta

3 years ago

1.2.61-beta

3 years ago

1.2.60-beta

3 years ago

1.2.47-beta

3 years ago

1.2.50-beta

3 years ago

1.2.48-beta

3 years ago

1.2.49-beta

3 years ago

1.2.46-beta

3 years ago

1.2.44-beta

3 years ago

1.2.45-beta

3 years ago

1.2.43-beta

3 years ago

1.2.42-beta

3 years ago

1.2.41-beta

3 years ago

1.2.40-beta

3 years ago

1.2.39-beta

3 years ago

1.2.38-beta

3 years ago

1.2.37-beta

3 years ago

1.2.36-beta

3 years ago

1.2.34-beta

3 years ago

1.2.35-beta

3 years ago

1.2.33-beta

3 years ago

1.2.32-beta

3 years ago

1.2.30-beta

3 years ago

1.2.31-beta

3 years ago

1.2.29-beta

3 years ago

1.2.28-beta

3 years ago

1.2.27-beta

3 years ago

1.2.26-beta

3 years ago

1.2.25-beta

3 years ago

1.2.23-beta

3 years ago

1.2.19-beta

3 years ago

1.2.22-beta

3 years ago

1.2.21-beta

3 years ago

1.2.20-beta

3 years ago

1.2.15-beta

3 years ago

1.2.17-beta

3 years ago

1.2.13-beta

3 years ago

1.2.14-beta

3 years ago

1.2.11-test

3 years ago

1.2.10-beta

3 years ago

1.2.12-beta

3 years ago

1.2.9-beta

3 years ago

1.2.8-beta

3 years ago

1.2.7-beta

3 years ago

1.2.6-beta

3 years ago

1.2.5-beta

3 years ago

1.2.4-beta

3 years ago

1.2.1-beta

3 years ago

1.1.99-beta

3 years ago

1.2.0-beta

3 years ago

1.1.98-beta

3 years ago

1.1.96-beta

3 years ago

1.1.97-beta

3 years ago

1.1.95-beta

3 years ago

1.1.94-beta

3 years ago

1.1.92-beta

3 years ago

1.1.91-beta

3 years ago

1.1.90-beta

3 years ago

1.1.89-beta

3 years ago

1.1.86-beta

3 years ago

1.1.88-beta

3 years ago

1.1.85-beta

3 years ago

1.1.84-beta

3 years ago

1.1.83-test

4 years ago

1.1.82-beta

4 years ago

1.1.81-beta

4 years ago

1.1.80-beta

4 years ago

1.1.79-beta

4 years ago

1.1.78-beta

4 years ago

1.1.77-beta

4 years ago

1.1.76-beta

4 years ago

1.1.75-beta

4 years ago

1.1.74-beta

4 years ago

1.1.73-beta

4 years ago

1.1.72-beta

4 years ago

1.1.67-beta

4 years ago

1.1.68-beta

4 years ago

1.1.70-beta

4 years ago

1.1.71-beta

4 years ago

1.1.65-beta

4 years ago

1.1.64-beta

4 years ago

1.1.63-beta

4 years ago

1.1.62-beta

4 years ago

1.1.61-beta

4 years ago

1.1.60-beta

4 years ago

1.1.59-beta

4 years ago

1.1.58-beta

4 years ago

1.1.57-beta

4 years ago

1.1.55-beta

4 years ago

1.1.56-beta

4 years ago

1.1.54-beta

4 years ago

1.1.53-beta

4 years ago

1.1.52-beta

4 years ago

1.1.51-beta

4 years ago

1.1.50-beta

4 years ago

1.1.49-beta

4 years ago

1.1.47-beta

4 years ago

1.1.46-beta

4 years ago

1.1.45-beta

4 years ago

1.1.44-beta

4 years ago

1.1.43-beta

4 years ago

1.1.42-beta

4 years ago

1.1.40-beta

4 years ago

1.1.41-beta

4 years ago

1.1.39-beta

4 years ago

1.1.38-beta

4 years ago

1.1.37-beta

4 years ago

1.1.36-beta

4 years ago

1.1.35-beta

4 years ago

1.1.34-beta

4 years ago

1.1.33-beta

4 years ago

1.1.32-beta

4 years ago

1.1.31-beta

4 years ago

1.1.30-beta

4 years ago

1.1.29-beta

4 years ago

1.1.28-beta

4 years ago

1.1.27-beta

4 years ago

1.1.26-beta

4 years ago

1.1.25-beta

4 years ago

1.1.24-beta

4 years ago

1.1.23-beta

4 years ago

1.1.22-beta

4 years ago

1.1.20-beta

4 years ago

1.1.19-beta

4 years ago

1.1.21-beta

4 years ago

1.1.18-beta

4 years ago

1.1.17-beta

4 years ago

1.1.16-beta

4 years ago

1.1.15-beta

4 years ago

1.1.14-beta

4 years ago

1.1.13-beta

4 years ago

1.1.12-beta

4 years ago

1.1.11-beta

4 years ago

1.1.10-beta

4 years ago

1.1.8-beta

4 years ago

1.1.9-beta

4 years ago

1.1.7-beta

4 years ago

1.1.5-beta

4 years ago

1.1.4-beta

4 years ago

1.1.6-beta

4 years ago

1.1.3-beta

4 years ago

1.1.2-beta

4 years ago

1.0.99-beta

4 years ago

1.1.1-beta

4 years ago

1.0.98-beta

4 years ago

1.0.97-beta

4 years ago

1.0.96-beta

4 years ago

1.0.95-beta

4 years ago

1.0.94-beta

4 years ago

1.0.93-beta

4 years ago

1.0.92-beta

4 years ago

1.0.91-beta

4 years ago

1.0.90-beta

4 years ago

1.0.88-beta

4 years ago

1.0.89-beta

4 years ago

1.0.87-beta

4 years ago

1.0.85-beta

4 years ago

1.0.84-beta

4 years ago

1.0.83-beta

4 years ago

1.0.82-beta

4 years ago

1.0.81-beta

4 years ago

1.0.79-beta

4 years ago

1.0.80-beta

4 years ago

1.0.78-beta

4 years ago

1.0.77-beta

4 years ago

1.0.76-beta

4 years ago

1.0.75-beta

4 years ago

1.0.74-beta

4 years ago

1.0.73-beta

4 years ago

1.0.72-beta

4 years ago

1.0.71-beta

4 years ago

1.0.70-beta

4 years ago

1.0.69-beta

4 years ago

1.0.68-beta

4 years ago

1.0.67-beta

4 years ago

1.0.66-beta

4 years ago

1.0.65-beta

4 years ago

1.0.63-beta

4 years ago

1.0.62-beta

4 years ago

1.0.61-beta

4 years ago

1.0.60-beta

4 years ago

1.0.59-beta

4 years ago

1.0.58-dev

4 years ago

1.0.57-beta

4 years ago

1.0.56-beta

4 years ago

1.0.54-beta

4 years ago

1.0.55-beta

4 years ago

1.0.53-beta

4 years ago

1.0.52-beta

4 years ago

1.0.51-beta

4 years ago

1.0.50-beta

4 years ago

1.0.48-beta

4 years ago

1.0.49-beta

4 years ago

1.0.47-beta

4 years ago

1.0.46-beta

4 years ago

1.0.45-beta

4 years ago

1.0.43-beta

4 years ago

1.0.42-beta

4 years ago

1.0.44-beta

4 years ago

1.0.41-beta

4 years ago

1.0.40-beta

4 years ago

1.0.39-beta

4 years ago

1.0.36-beta

4 years ago

1.0.37-beta

4 years ago

1.0.38-beta

4 years ago

1.0.35-beta

4 years ago

1.0.27-beta

4 years ago

1.0.26-beta

4 years ago

1.0.24-beta

4 years ago

1.0.25-beta

4 years ago

1.0.23-beta

4 years ago

1.0.22-beta

4 years ago

1.0.21-beta

4 years ago

1.0.20-beta

4 years ago

1.0.19-beta

4 years ago

1.0.18-beta

4 years ago

1.0.17-beta

4 years ago

1.0.16-beta

4 years ago

1.0.15-beta

4 years ago

1.0.14-beta

4 years ago

1.0.13-beta

4 years ago

1.0.12-beta

4 years ago

1.0.11-beta

4 years ago

1.0.10-beta

4 years ago

1.0.9-beta

4 years ago

1.0.8-beta

4 years ago

1.0.7-beta

4 years ago

1.0.6-beta

4 years ago

1.0.5-beta

4 years ago

1.0.4-beta

4 years ago

1.0.2-beta

4 years ago

1.0.3-beta

4 years ago

1.0.1-beta

4 years ago

1.0.0-beta

4 years ago