构建框架

This commit is contained in:
龙运模
2024-06-24 18:52:21 +08:00
commit 33942cbe95
328 changed files with 50716 additions and 0 deletions
+18
View File
@@ -0,0 +1,18 @@
import { permissionAll } from '@/utils/permission'
import tool from '@/utils/tool';
/**
* 用户权限指令
* @directive 单个权限验证(v-auth="'xxx'")
* @directive 多个权限验证,满足一个则显示(v-auths="['xxx','xxx']")
* @directive 多个权限验证,全部满足则显示(v-auths-all="['xxx','xxx']")
*/
export default {
mounted (el, binding) {
if(permissionAll()){
return
}
let permissions = tool.data.get("PERMISSIONS");
if (!permissions.some((v) => v === binding.value)) el.parentNode.removeChild(el);
}
}
+24
View File
@@ -0,0 +1,24 @@
import { permissionAll } from '@/utils/permission'
import tool from '@/utils/tool';
/**
* 用户权限指令
* @directive 单个权限验证(v-auth="'xxx'")
* @directive 多个权限验证,满足一个则显示(v-auths="['xxx','xxx']")
* @directive 多个权限验证,全部满足则显示(v-auths-all="['xxx','xxx']")
*/
export default {
mounted (el, binding) {
if(permissionAll()){
return
}
let permissions = tool.data.get("PERMISSIONS");
let flag = false;
permissions.map((val) => {
binding.value.map((v) => {
if (val === v) flag = true;
});
});
if (!flag) el.parentNode.removeChild(el);
}
}
+19
View File
@@ -0,0 +1,19 @@
import { permissionAll, judementSameArr } from '@/utils/permission'
import tool from '@/utils/tool';
/**
* 用户权限指令
* @directive 单个权限验证(v-auth="'xxx'")
* @directive 多个权限验证,满足一个则显示(v-auths="['xxx','xxx']")
* @directive 多个权限验证,全部满足则显示(v-auths-all="['xxx','xxx']")
*/
export default {
mounted (el, binding) {
if(permissionAll()){
return
}
let permissions = tool.data.get("PERMISSIONS");
const flag = judementSameArr(binding.value, permissions);
if (!flag) el.parentNode.removeChild(el);
}
}
+29
View File
@@ -0,0 +1,29 @@
import { ElMessage } from 'element-plus'
export default {
mounted(el, binding) {
el.$value = binding.value
el.handler = () => {
const textarea = document.createElement('textarea')
textarea.readOnly = 'readonly'
textarea.style.position = 'absolute'
textarea.style.left = '-9999px'
textarea.value = el.$value
document.body.appendChild(textarea)
textarea.select()
textarea.setSelectionRange(0, textarea.value.length)
const result = document.execCommand('Copy')
if (result) {
ElMessage.success("复制成功")
}
document.body.removeChild(textarea)
}
el.addEventListener('click', el.handler)
},
updated(el, binding){
el.$value = binding.value
},
unmounted(el){
el.removeEventListener('click', el.handler)
}
}
+22
View File
@@ -0,0 +1,22 @@
import { rolePermission } from '@/utils/permission'
export default {
mounted(el, binding) {
const { value } = binding
if(Array.isArray(value)){
let ishas = false;
value.forEach(item => {
if(rolePermission(item)){
ishas = true;
}
})
if (!ishas){
el.parentNode.removeChild(el)
}
}else{
if(!rolePermission(value)){
el.parentNode.removeChild(el);
}
}
}
};
+79
View File
@@ -0,0 +1,79 @@
import tool from '@/utils/tool'
var Time = {
//获取当前时间戳
getUnix: function() {
var date = new Date();
return date.getTime();
},
//获取今天0点0分0秒的时间戳
getTodayUnix: function() {
var date = new Date();
date.setHours(0);
date.setMinutes(0);
date.setSeconds(0);
date.setMilliseconds(0);
return date.getTime();
},
//获取今年1月1日0点0秒的时间戳
getYearUnix: function() {
var date = new Date();
date.setMonth(0);
date.setDate(1);
date.setHours(0);
date.setMinutes(0);
date.setSeconds(0);
date.setMilliseconds(0);
return date.getTime();
},
//获取标准年月日
getLastDate: function(time) {
var date = new Date(time);
var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1;
var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
return date.getFullYear() + '-' + month + '-' + day;
},
//转换时间
getFormateTime: function(timestamp) {
timestamp = new Date(timestamp)
var now = this.getUnix();
var today = this.getTodayUnix();
//var year = this.getYearUnix();
var timer = (now - timestamp) / 1000;
var tip = '';
if (timer <= 0) {
tip = '刚刚';
} else if (Math.floor(timer / 60) <= 0) {
tip = '刚刚';
} else if (timer < 3600) {
tip = Math.floor(timer / 60) + '分钟前';
} else if (timer >= 3600 && (timestamp - today >= 0)) {
tip = Math.floor(timer / 3600) + '小时前';
} else if (timer / 86400 <= 31) {
tip = Math.ceil(timer / 86400) + '天前';
} else {
tip = this.getLastDate(timestamp);
}
return tip;
}
}
export default (el, binding) => {
let { value, modifiers} = binding
if(!value){
return false
}
if(value.toString().length == 10){
value = value * 1000
}
if (modifiers.tip) {
el.innerHTML = Time.getFormateTime(value)
el.__timeout__ = setInterval(() => {
el.innerHTML = Time.getFormateTime(value)
}, 60000)
} else {
const format = el.getAttribute('format') || undefined
el.innerHTML = tool.dateFormat(value, format)
}
}