123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- import { Notification } from 'element-ui';
- import router from '@/router';
- export default {
- // 获取应用权限
- checkAuth (appname,auth) {
- // console.log(appname)
- try {
- let modules = JSON.parse(sessionStorage.getItem('active_modules'))
-
- let apps = modules.apps
- // 获取当前应用数据
- let active_apps = apps.filter(item => {
- return item.name === appname
- })
- // 获取当前应用权限
- let auth_list = active_apps[0].meta.auth
- // 判断是否拥有权限
- let _haveAuth = auth_list.some(item=>item.option === auth)
- return _haveAuth
-
- } catch (error) {
- }
-
-
- },
- // 获取应用表格
- tabelCol (appname) {
- console.log(appname)
- try {
- // 获取应用数据
- let apps = JSON.parse(sessionStorage.getItem('active_modules'))
-
- let module_list = apps.apps
- // 获取当前应用数据
- let active_modules = module_list.filter(item => {
- return item.name === appname
- })
- // 获取当前应用表格数据
- let tablecols = active_modules[0].meta.tables
- return tablecols
- } catch (error) {
- console.log(error,'tool')
- }
- },
- // 操作响应提示
- showMessage (res,success) {
-
- if (res.code === 0) return Notification({
- title: '失败',
- message: res.msg,
- type: 'error',
-
- });
- Notification({
- title: '成功',
- message: '操作成功',
- type: 'success'
- });
- success?success():''
- },
- // 处理省市县数据结构
- createMenu (node) {
- var that = this
- let obj = Object.keys(node).map((key,index,item)=>{
- var elNode = {
- label: key,
- value: key,
- item:node[key],
- }
- return elNode;
- })
- obj.forEach(e=>{
- if ((e.item) instanceof Array) {
- e.children = []
- e.item.forEach(c=>{
- e.children.push({
- label:c,
- value:c
- })
- })
- } else {
- if (Object.keys(e.item).length !== 0) {
- e.children = that.createMenu(e.item)
- }
- }
- })
- return obj
- },
- // 导出excel
- exportExcel(a,b,c,d) {
- let formatJson = function(filterVal, jsonData) {
- return jsonData.map(v => filterVal.map(j => v[j]))
- }
- require.ensure([], () => {
- const { export_json_to_excel } = require('./excel/Export2Excel');
- const tHeader = a; // 设置Excel的表格第一行的标题
- const filterVal = b; // index、nickName、name是tableData里对象的属性
- const list = c; //把data里的tableData存到list
- const data = formatJson(filterVal, list);
- export_json_to_excel(tHeader, data, d); //导出Excel 文件名
- })
- },
- // 数组去重
- unique(arr, uniId){
- const res = new Map();
- return arr.filter((item) => !res.has(item[uniId]) && res.set(item[uniId], 1));
- },
-
- // 金额格式化
- formatAmount(amount, decimalDigits = 0) {
- const amountStr = String(Number(amount).toFixed(decimalDigits))
- const reg = /\B(?=(?:\d{3})+$)/g
- // 是否是小数
- const isDecimal = amountStr.indexOf('.') > -1
- if (isDecimal) {
- // 整数部分
- const integerPart = amountStr.substring(0, amountStr.indexOf('.'))
- // 小数部分
- const decimalPart = amountStr.substring(amountStr.length, amountStr.indexOf('.'))
- return `${integerPart.replace(reg, ',')}${decimalPart}`
- } else {
- return amountStr.replace(reg, ',')
- }
- },
- /* 给指定组件触发$emit事件 */
- dispatchFun(componentName, eventName, vm) {
- var parent = vm.$parent || vm.$root;
- var name = parent.$options.componentName;
- while (parent && (!name || name !== componentName)) {
- parent = parent.$parent;
- if (parent) {
- name = parent.$options.componentName;
- }
- }
- if (parent) {
- parent.$emit.apply(parent, [eventName]);
- }
- },
- // 数组深度拷贝
- deepClone(obj) {
- let res = null;
- const reference = [Date, RegExp, Set, WeakSet, Map, WeakMap, Error];
- if (reference.includes(obj?.constructor)) {
- res = new obj.constructor(obj);
- } else if (Array.isArray(obj)) {
- res = [];
- obj.forEach((e, i) => {
- res[i] = this.deepClone(e);
- });
- } else if (typeof obj === "object" && obj !== null) {
- res = {};
- for (const key in obj) {
- if (Object.hasOwnProperty.call(obj, key)) {
- res[key] = this.deepClone(obj[key]);
- }
- }
- } else {
- res = obj;
- }
- return res;
- },
- // 数组排序
- sortArr (data,str) {
- let cache = {} // cache存储的键是eid,值是这个eid在indices数组中的下标
- let indices = [] // 数组中的每一个值是一个数组,数组中的每一个元素是原数组中相同eid的下标
- data.forEach((item, i) => {
- let eid = item[str]
- let index = cache[eid]
- if (index !== undefined) {
- indices[index].push(i)
- } else {
- cache[eid] = indices.length
- indices.push([i])
- }
- })
- let result = []
- indices.forEach(item => {
- item.forEach(index => {
- result.push(data[index]) // 依次把index对应的元素data[index]添加进去即可
- })
- })
-
- return result
- }
- }
|