# 通用方法

# 引入方法

//引入
import { md5,timeFormat } from 'lg-util'

# md5加密

md5('123456')

# 日期格式化

timeFormat(1581170184,'yyyy年mm月dd日' )//支持时间戳,date,字符串格式

# 全局永久缓存

注:为保证项目缓存不冲突,统一调用该api设置缓存

Local.set('token','???')//设置永久缓存
Local.get('token')//获取永久缓存
Local.remove('token')//移除永久缓存
Local.clear()//移除全部永久缓存

# 全局临时缓存

Session.set('token','???')//设置永久缓存
Session.get('token')//获取永久缓存
Session.remove('token')//移除永久缓存
Session.clear()//移除全部永久缓存

# 获取字典数据

// console.log(getDictionary('sex')); //单个
getDictionary(['xb','nhjc'])//多个
//可同时获取多个,传入字符串则返回单个对象,传入数组则返回对象集合

# 获取字典数据对象

注:获取该字典对象形式

// console.log(getDictionary('sex')); //单个
getDictionaryObj(['xb','nhjc'])//多个
//可同时获取多个,传入字符串则返回单个对象,传入数组则返回对象集合

# 查全部字典信息

注:该功能仅支持开发环境使用,查询字典信息列表,不可运用到业务逻辑上

getDictionaryName()

# 导出txt

txt({
  text: '文本内容',
  title: '文件名'
})
 // .then(() => {
    // ...可选回调
 // })
/**
 * @param {String} text 列
  * @param {String} title 行数据
 */

# 导出excel

	const columns = [
		  {
		    label: '姓名',
		    value: 'name',
            bodyStyle:"color:'red';font-size: 30px;",
            type: 'text'
		  },
		  {
		    label: '年龄',
		    value: 'age',
            bodyStyle:"color:'red';font-size: 30px;",
            type: 'text'
		  }
		]
		const data = [
		  {
		    name: 'lucy',
		    age: 24
		  },
		  {
		    name: 'bob',
		    age: 26
		  }
		]
		excel({
		  columns,//列
		  data,//行数据
		  title:'表格',//文件名
		  header: 'Excel 第一行标题'
		})
/**
 * @param {Array} columns 列
  * @param {Array} data 行数据
  * @param {String} title 文件名称 
  * @param {String} header 标题 
  * @param {String} headerStyle 标题样式(样式为字符串的形式)
 */

/**
 *  column 列的配置项
  * @param {String} value 数据key值
  * @param {String} label 标签名称 
  * @param {String} topStyle 表头样式(样式为字符串的形式)
  * @param {String} bodyStyle 内容样式(样式为字符串的形式)
  * @param {String} type 类型(text or image)
  * @param {Number} width  图片宽度
  * @param {Number} height 图片高度
 */

# 导出csv

const columns = [
  {
    label: '姓名',
    prop: 'name'
  },
  {
    label: '年龄',
    prop: 'age'
  }
]
const data = [
  {
    name: 'lucy',
    age: 24
  },
  {
    name: 'bob',
    age: 26
  }
]
this.$lg.csv({
  columns,
  data
})
/**
 * @param {Array} columns 列
  * @param {Array} data 行数据
  * @param {obj} title 文件名称 
  * @param {obj} noHeader 文件名称 
  * @param {obj} separator 文件名称
  * @param {obj} quoted 每项数据是否加引号 
 */
	

# 下载地址文件

urlDownload(
'https://file.hblg.vip/gov_fire/2022/05/27/3586f54cf4c24cb5bb740fb0a5de6cf2.xlsx',//文件地址
   '导入excel模板.xlsx'  //文件名称
)
/**
 * @param {obj} url 文件地址
  * @param {obj} name 文件名称 
 */

# 下载流文件

fileDownload(url,
'导入excel模板.xlsx'
  )
/**
 * @param {obj} url 流数据
  * @param {obj} name 文件名称 
 */

# Loading (加载)

Loading.start(2000,0.5,'Loading...') 
Loading.done()  ///关闭
/**
 * @param {Number} time 延时的时间,默认为false(不关闭)
 * @param {String} diaphaneity 透明度
 * @param {String} title 标题
 */

# v-throttle(按钮节流指令)

<a-button  v-throttle >按钮</a-button> 
<a-button  v-throttle="1000" >按钮</a-button>
/**
 * @param {Number} time 延时的时间
 */

# throttle(节流函数)

throttle(func, wait = 500, immediate = true)
/**
 * 节流原理:在一定时间内,只能触发一次
 * @param {Function} func 要执行的回调函数 
 * @param {Number} wait 延时的时间
 * @param {Boolean} immediate 是否立即执行
 */

# 刷新当前页表格

注:1.1.1后建议使用lg-ui-pro中的lgUpdateList进行刷新

注:1.1.2后lgGridApi组件不在支持该方法

lgUpdateList() 
/**
 * 刷新api表格:刷新本页面的表格数据
 * @param {obj} obj刷新方式和传入值,'add'或 {sieve:{name:'你好'},type:'add'}
 * @param {String} name 表格刷新标识
 */

# mitt组件通信

	mitt.emit('name', '测试通信'); //创建通信

mitt.on('name', (res) => {//接收通信
    console.log(res);
  });

mitt.off('name'}); //销毁监听
/**
 * @param {String} name 标识
  * @param {obj} obj传入值
 */

# 深度克隆

deepClone(obj)
/**
 * @param {obj} obj传入值
 */