123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- import { getArrValue } from 'js-fast-way'
- import { getDictionary, getDictionaryBiz } from '~api/other'
- /**
- * 效验是否为数字或小数的数字
- * @param text 字符串内容
- * @param lose 是否允许负数,默认允许
- * @returns {boolean}
- */
- export const isNumberReg = (text, lose = true) => {
- let pattern = lose ? /^-?\d+(.\d+)?$/ : /^\d+(.\d+)?$/
- return pattern.test(text)
- }
- //获取字典数据
- export const getDictionaryData = async (code, biz = false) => {
- let res = []
- if (biz) {
- const { data } = await getDictionaryBiz({ code: code })
- res = getArrValue(data)
- } else {
- const { data } = await getDictionary({ code: code })
- res = getArrValue(data)
- }
- //处理数据
- let newArr = []
- for (let i = 0; i < res.length; i++) {
- const val = isNumberReg(res[i]['dictKey']) ? Number(res[i]['dictKey']) : res[i]['dictKey']
- newArr.push({
- label: res[i]['dictValue'],
- value: val,
- })
- }
- return newArr
- }
- //操作确认
- export const actionConfirm = (cbk) => {
- window?.$messageBox?.alert('请确认要执行此操作吗?', '操作确认', {
- showCancelButton: true,
- confirmButtonText: '确认',
- cancelButtonText: '取消',
- type: 'warning',
- callback: (action) => {
- if (action === 'confirm') {
- cbk()
- }
- },
- })
- }
- //删除提醒
- export const delMessage = (cbk) => {
- window?.$messageBox?.alert('请谨慎考虑后,确认是否需要删除?', '删除提醒', {
- showCancelButton: true,
- confirmButtonText: '确认删除',
- cancelButtonText: '取消',
- type: 'warning',
- callback: (action) => {
- if (action === 'confirm') {
- cbk()
- }
- },
- })
- }
- //动态加载线上js文件
- export const addDocumentsJs = () => {
- return new Promise((resolve) => {
- const script = document.createElement('script')
- script.src = 'http://47.110.251.215:6831/web-apps/apps/api/documents/api.js'
- script.type = 'text/javascript'
- document.head.appendChild(script)
- script.onload = () => {
- resolve()
- }
- })
- }
- //判断是否为网址
- export const isPathUrl = (path) => {
- return /^(https?:|mailto:|tel:)/.test(path)
- }
- //获取当前域名
- export const getTopUrl = () => {
- return window.location.href.split('/#/')[0]
- }
- //设置系统名称
- export const setAppName = (name) => {
- const title = window.document.title
- window.document.title = `${title}${name ? ' - ' + name : ''}`
- }
- //保留两位小数并返回
- export const keepdecimal = (str)=>{
- // 判断是否有小数点
- if (str.indexOf('.') !== -1) {
- // 将数字字符串拆分为整数部分和小数部分
- let parts = str.split('.')
- let decimalPart = parts[1]
- // 判断小数部分是否超过两位
- if (decimalPart.length > 2) {
- // 保留两位小数并返回
- return parseFloat(Number(str).toFixed(2)).toString()
- } else {
- return str
- }
- } else {
- return str
- }
- }
- //是否重复
- export const hasDuplicates = (array) =>{
- let counts = {} // 用于存储每个元素的出现次数
- for (let i = 0; i < array.length; i++) {
- let element = array[i]
- // 如果 counts 中已经有了这个元素,则将其出现次数加 1;否则,将其出现次数设为 1
- counts[element] = (counts[element] || 0) + 1
- // 如果某个元素的出现次数大于 1,则数组中存在重复元素,返回 true
- if (counts[element] > 1) {
- return {
- isWarn:true,
- element:array[i],
- }
- }
- }
- // 遍历完成后未发现重复元素,返回 false
- return false
- }
|