1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- // 通用函数
- import useClipboard from 'vue-clipboard3';
- import { ElMessage } from 'element-plus';
- import { formatDate } from '/@/utils/formatTime';
- import { useI18n } from 'vue-i18n';
- export default function () {
- const { t } = useI18n();
- const { toClipboard } = useClipboard();
- //百分比格式化
- const percentFormat = (row: any, column: number, cellValue: any) => {
- return cellValue ? `${cellValue}%` : '-';
- };
- //列表日期时间格式化
- const dateFormatYMD = (row: any, column: number, cellValue: any) => {
- if (!cellValue) return '-';
- return formatDate(new Date(cellValue), 'YYYY-mm-dd');
- };
- //列表日期时间格式化
- const dateFormatYMDHMS = (row: any, column: number, cellValue: any) => {
- if (!cellValue) return '-';
- return formatDate(new Date(cellValue), 'YYYY-mm-dd HH:MM:SS');
- };
- //列表日期时间格式化
- const dateFormatHMS = (row: any, column: number, cellValue: any) => {
- if (!cellValue) return '-';
- let time = 0;
- if (typeof row === 'number') time = row;
- if (typeof cellValue === 'number') time = cellValue;
- return formatDate(new Date(time * 1000), 'HH:MM:SS');
- };
- // 小数格式化
- const scaleFormat = (value: any = 0, scale: number = 4) => {
- return Number.parseFloat(value).toFixed(scale);
- };
- // 小数格式化
- const scale2Format = (value: any = 0) => {
- return Number.parseFloat(value).toFixed(2);
- };
- // 点击复制文本
- const copyText = (text: string) => {
- return new Promise((resolve, reject) => {
- try {
- //复制
- toClipboard(text);
- //下面可以设置复制成功的提示框等操作
- ElMessage.success(t('message.layout.copyTextSuccess'));
- resolve(text);
- } catch (e) {
- //复制失败
- ElMessage.error(t('message.layout.copyTextError'));
- reject(e);
- }
- });
- };
- return {
- percentFormat,
- dateFormatYMD,
- dateFormatYMDHMS,
- dateFormatHMS,
- scaleFormat,
- scale2Format,
- copyText,
- };
- }
|