| | |
| | | import { ElMessage, ElMessageBox } from 'element-plus'; |
| | | import { ElMessage, ElMessageBox, ElMessageBoxOptions } from 'element-plus'; |
| | | import JSONbig from 'json-bigint'; |
| | | |
| | | import { storeToRefs } from 'pinia'; |
| | |
| | | |
| | | export const getImg = (name) => `src/assets/images/${name}`; |
| | | |
| | | export const downloadJSON = (jsonData: Object, fileName: String) => { |
| | | const dataStr = 'data:text/json;charset=utf-8,' + encodeURIComponent(JSON.stringify(jsonData)); |
| | | export const downloadJSON = (jsonData: string, fileName: String) => { |
| | | const dataStr = 'data:text/json;charset=utf-8,' + encodeURIComponent(jsonData); |
| | | const downloadAnchorNode = document.createElement('a'); |
| | | downloadAnchorNode.setAttribute('href', dataStr); |
| | | downloadAnchorNode.setAttribute('download', fileName + '.json'); |
| | |
| | | ) => { |
| | | if (!treeData || treeData.length === 0) return; |
| | | if (!parent) parent = treeData; |
| | | |
| | | for (let index = 0; index < treeData.length; index++) { |
| | | const value = treeData[index] as any; |
| | | if (markParent) { |
| | |
| | | |
| | | if (value[childrenKey] && value[childrenKey].length !== 0) { |
| | | // 递归跳出 |
| | | const callResult = travelTree(value[childrenKey], callback, value, markParent); |
| | | const callResult = travelTree(value[childrenKey], callback, value, markParent, childrenKey); |
| | | if (callResult) { |
| | | return true; |
| | | } |
| | |
| | | const startDate = new Date(); |
| | | startDate.setTime(startDate.getTime() - 3600 * 1000 * 24 * dates); |
| | | startDate.setHours(0, 0, 0, 0); |
| | | endDate.setHours(23, 59, 59, 59); |
| | | return [startDate, endDate]; |
| | | }; |
| | | |
| | |
| | | */ |
| | | export const toMyFixed = (num, precision) => { |
| | | if (num == null) return ''; |
| | | return num.toFixed(precision).replace(/\.?0+$/, ''); |
| | | if (!precision) return num + ''; |
| | | const factor = Math.pow(10, precision); |
| | | return Math.round(Number(num) * factor) / factor + ''; |
| | | }; |
| | | |
| | | type GetTextWidthOption = { |
| | |
| | | return decodedData; |
| | | } |
| | | |
| | | |
| | | export const elConfirm = ( |
| | | message, |
| | | options: ElMessageBoxOptions = { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | } |
| | | ) => { |
| | | return new Promise((resolve, reject) => { |
| | | ElMessageBox.confirm(message, '提示', options) |
| | | .then(() => resolve(true)) |
| | | .catch(() => reject(false)); |
| | | }); |
| | | }; |