diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
index 2eec0bd..289b46f 100644
--- a/src/store/modules/user.ts
+++ b/src/store/modules/user.ts
@@ -27,6 +27,7 @@
menus: [] as Menu.menu[], // 菜单权限
btns: [] as Menu.menu[], // 按钮权限
isLogout: 0, // 是否被退出登录
+ secretUserLevel: '', // 用户密级
}),
getters: {
isLogin: (state) => {
@@ -101,6 +102,7 @@
const menuStore = useMenuStore()
localStorage.removeItem('username')
localStorage.removeItem('token')
+ sessionStorage.removeItem('secretUserLevel')
this.username = ''
this.token = ''
this.roleList = []
@@ -132,6 +134,8 @@
this.id = res.data.id
this.username = res.data.account
this.name = res.data.name
+ this.secretUserLevel = res.data.secretLevel
+ window.sessionStorage.setItem('secretUserLevel', res.data.secretLevel)
resolve(res.data)
}).catch(() => {
reject('获取用户信息错误')
diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
index 2eec0bd..289b46f 100644
--- a/src/store/modules/user.ts
+++ b/src/store/modules/user.ts
@@ -27,6 +27,7 @@
menus: [] as Menu.menu[], // 菜单权限
btns: [] as Menu.menu[], // 按钮权限
isLogout: 0, // 是否被退出登录
+ secretUserLevel: '', // 用户密级
}),
getters: {
isLogin: (state) => {
@@ -101,6 +102,7 @@
const menuStore = useMenuStore()
localStorage.removeItem('username')
localStorage.removeItem('token')
+ sessionStorage.removeItem('secretUserLevel')
this.username = ''
this.token = ''
this.roleList = []
@@ -132,6 +134,8 @@
this.id = res.data.id
this.username = res.data.account
this.name = res.data.name
+ this.secretUserLevel = res.data.secretLevel
+ window.sessionStorage.setItem('secretUserLevel', res.data.secretLevel)
resolve(res.data)
}).catch(() => {
reject('获取用户信息错误')
diff --git a/src/utils/download.ts b/src/utils/download.ts
index 88a45c5..2c7964f 100644
--- a/src/utils/download.ts
+++ b/src/utils/download.ts
@@ -1,3 +1,5 @@
+import { getDictByCode } from '@/api/system/dict'
+
/**
* 下载本地图片 href为 127.0.0.1/xxxx
* @param href 图片地址
@@ -120,48 +122,63 @@
* @param url 网络文件地址
* @param name 文件名
*/
-export async function download(url: string, name: string) {
- return new Promise((resolve) => {
- // 下载图片
- const photo = ['jpg', 'jpeg', 'png']
- const fileType = url.split('.')[url.split('.').length - 1]
- console.log(fileType, 'fileType')
- if (photo.includes(fileType)) {
- // 图片 将服务器图片地址转化成本地地址
- const image = new Image()
- image.setAttribute('crossOrigin', 'anonymous')
- image.src = url
- image.onload = () => {
- const canvas = document.createElement('canvas')
- canvas.width = image.width
- canvas.height = image.height
- const ctx = canvas.getContext('2d')
- ;(ctx as CanvasRenderingContext2D).drawImage(
- image,
- 0,
- 0,
- image.width,
- image.height,
+export async function download(url: string, getName: string) {
+ let name = getName || ''
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex(
+ (item: { value: string | null }) => item.value === level,
)
- canvas.toBlob((blob) => {
- const url = URL.createObjectURL(blob as Blob)
- downloadImg(url, name)
- // 用完释放URL对象
- URL.revokeObjectURL(url)
- console.log('111111111111111111')
- resolve(' ')
- console.log('2222222222')
- })
+ const systemType = window.localStorage.getItem('systemType') as string
+ if (index !== -1 && systemType === 'gm') {
+ name = `【${response.data[index].name}】${name}`
+ }
}
}
- else {
- // 预览一般都是用的a标签,文件下载用的window.open
- // 1.pdf文件路径放到window.open里面,点击是进行在线预览
- // 2.word文件和excel文件通过a标签打开时,是直接下载了
- // 将网络地址转化为 blob地址 并下载
- urlToBlob(url, name).then(() => {
- resolve(' ')
- })
- }
+ return new Promise((resolve) => {
+ // 下载图片
+ const photo = ['jpg', 'jpeg', 'png']
+ const fileType = url.split('.')[url.split('.').length - 1]
+ console.log(fileType, 'fileType')
+ if (photo.includes(fileType)) {
+ // 图片 将服务器图片地址转化成本地地址
+ const image = new Image()
+ image.setAttribute('crossOrigin', 'anonymous')
+ image.src = url
+ image.onload = () => {
+ const canvas = document.createElement('canvas')
+ canvas.width = image.width
+ canvas.height = image.height
+ const ctx = canvas.getContext('2d')
+ ;(ctx as CanvasRenderingContext2D).drawImage(
+ image,
+ 0,
+ 0,
+ image.width,
+ image.height,
+ )
+ canvas.toBlob((blob) => {
+ const url = URL.createObjectURL(blob as Blob)
+ downloadImg(url, name)
+ // 用完释放URL对象
+ URL.revokeObjectURL(url)
+ console.log('111111111111111111')
+ resolve(' ')
+ console.log('2222222222')
+ })
+ }
+ }
+ else {
+ // 预览一般都是用的a标签,文件下载用的window.open
+ // 1.pdf文件路径放到window.open里面,点击是进行在线预览
+ // 2.word文件和excel文件通过a标签打开时,是直接下载了
+ // 将网络地址转化为 blob地址 并下载
+ urlToBlob(url, name).then(() => {
+ resolve(' ')
+ })
+ }
+ })
})
}
diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
index 2eec0bd..289b46f 100644
--- a/src/store/modules/user.ts
+++ b/src/store/modules/user.ts
@@ -27,6 +27,7 @@
menus: [] as Menu.menu[], // 菜单权限
btns: [] as Menu.menu[], // 按钮权限
isLogout: 0, // 是否被退出登录
+ secretUserLevel: '', // 用户密级
}),
getters: {
isLogin: (state) => {
@@ -101,6 +102,7 @@
const menuStore = useMenuStore()
localStorage.removeItem('username')
localStorage.removeItem('token')
+ sessionStorage.removeItem('secretUserLevel')
this.username = ''
this.token = ''
this.roleList = []
@@ -132,6 +134,8 @@
this.id = res.data.id
this.username = res.data.account
this.name = res.data.name
+ this.secretUserLevel = res.data.secretLevel
+ window.sessionStorage.setItem('secretUserLevel', res.data.secretLevel)
resolve(res.data)
}).catch(() => {
reject('获取用户信息错误')
diff --git a/src/utils/download.ts b/src/utils/download.ts
index 88a45c5..2c7964f 100644
--- a/src/utils/download.ts
+++ b/src/utils/download.ts
@@ -1,3 +1,5 @@
+import { getDictByCode } from '@/api/system/dict'
+
/**
* 下载本地图片 href为 127.0.0.1/xxxx
* @param href 图片地址
@@ -120,48 +122,63 @@
* @param url 网络文件地址
* @param name 文件名
*/
-export async function download(url: string, name: string) {
- return new Promise((resolve) => {
- // 下载图片
- const photo = ['jpg', 'jpeg', 'png']
- const fileType = url.split('.')[url.split('.').length - 1]
- console.log(fileType, 'fileType')
- if (photo.includes(fileType)) {
- // 图片 将服务器图片地址转化成本地地址
- const image = new Image()
- image.setAttribute('crossOrigin', 'anonymous')
- image.src = url
- image.onload = () => {
- const canvas = document.createElement('canvas')
- canvas.width = image.width
- canvas.height = image.height
- const ctx = canvas.getContext('2d')
- ;(ctx as CanvasRenderingContext2D).drawImage(
- image,
- 0,
- 0,
- image.width,
- image.height,
+export async function download(url: string, getName: string) {
+ let name = getName || ''
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex(
+ (item: { value: string | null }) => item.value === level,
)
- canvas.toBlob((blob) => {
- const url = URL.createObjectURL(blob as Blob)
- downloadImg(url, name)
- // 用完释放URL对象
- URL.revokeObjectURL(url)
- console.log('111111111111111111')
- resolve(' ')
- console.log('2222222222')
- })
+ const systemType = window.localStorage.getItem('systemType') as string
+ if (index !== -1 && systemType === 'gm') {
+ name = `【${response.data[index].name}】${name}`
+ }
}
}
- else {
- // 预览一般都是用的a标签,文件下载用的window.open
- // 1.pdf文件路径放到window.open里面,点击是进行在线预览
- // 2.word文件和excel文件通过a标签打开时,是直接下载了
- // 将网络地址转化为 blob地址 并下载
- urlToBlob(url, name).then(() => {
- resolve(' ')
- })
- }
+ return new Promise((resolve) => {
+ // 下载图片
+ const photo = ['jpg', 'jpeg', 'png']
+ const fileType = url.split('.')[url.split('.').length - 1]
+ console.log(fileType, 'fileType')
+ if (photo.includes(fileType)) {
+ // 图片 将服务器图片地址转化成本地地址
+ const image = new Image()
+ image.setAttribute('crossOrigin', 'anonymous')
+ image.src = url
+ image.onload = () => {
+ const canvas = document.createElement('canvas')
+ canvas.width = image.width
+ canvas.height = image.height
+ const ctx = canvas.getContext('2d')
+ ;(ctx as CanvasRenderingContext2D).drawImage(
+ image,
+ 0,
+ 0,
+ image.width,
+ image.height,
+ )
+ canvas.toBlob((blob) => {
+ const url = URL.createObjectURL(blob as Blob)
+ downloadImg(url, name)
+ // 用完释放URL对象
+ URL.revokeObjectURL(url)
+ console.log('111111111111111111')
+ resolve(' ')
+ console.log('2222222222')
+ })
+ }
+ }
+ else {
+ // 预览一般都是用的a标签,文件下载用的window.open
+ // 1.pdf文件路径放到window.open里面,点击是进行在线预览
+ // 2.word文件和excel文件通过a标签打开时,是直接下载了
+ // 将网络地址转化为 blob地址 并下载
+ urlToBlob(url, name).then(() => {
+ resolve(' ')
+ })
+ }
+ })
})
}
diff --git a/src/utils/exportUtils.ts b/src/utils/exportUtils.ts
index e91b303..a58eaf5 100644
--- a/src/utils/exportUtils.ts
+++ b/src/utils/exportUtils.ts
@@ -1,22 +1,37 @@
+import { getDictByCode } from '@/api/system/dict'
+
/**
* 导出文件工具
* @param blob 文件
* @param fileName 导出文件名
*/
-export function exportFile(blob: Blob, fileName: string) {
- if (window.navigator && (window.navigator as any).msSaveOrOpenBlob) {
- (navigator as any).msSaveBlob(blob, fileName)
- }
- else {
- const downloadElement = document.createElement('a')
- const href = window.URL.createObjectURL(blob) // 创建下载的链接
- downloadElement.href = href
- downloadElement.download = fileName
- document.body.appendChild(downloadElement)
- downloadElement.click() // 点击下载
- document.body.removeChild(downloadElement) // 下载完成移除元素
- window.URL.revokeObjectURL(href) // 释放blob对象
- }
+export function exportFile(blob: Blob, getFileName: string) {
+ let fileName = getFileName || ''
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex((item: { value: string | null }) => item.value === level)
+ const systemType = window.localStorage.getItem('systemType') as string
+ if (index !== -1 && systemType === 'gm') {
+ fileName = `【${response.data[index].name}】${fileName}`
+ }
+ }
+ }
+ if (window.navigator && (window.navigator as any).msSaveOrOpenBlob) {
+ (navigator as any).msSaveBlob(blob, fileName)
+ }
+ else {
+ const downloadElement = document.createElement('a')
+ const href = window.URL.createObjectURL(blob) // 创建下载的链接
+ downloadElement.href = href
+ downloadElement.download = fileName
+ document.body.appendChild(downloadElement)
+ downloadElement.click() // 点击下载
+ document.body.removeChild(downloadElement) // 下载完成移除元素
+ window.URL.revokeObjectURL(href) // 释放blob对象
+ }
+ })
}
export const base64ToBlob = (dataurl) => {
diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
index 2eec0bd..289b46f 100644
--- a/src/store/modules/user.ts
+++ b/src/store/modules/user.ts
@@ -27,6 +27,7 @@
menus: [] as Menu.menu[], // 菜单权限
btns: [] as Menu.menu[], // 按钮权限
isLogout: 0, // 是否被退出登录
+ secretUserLevel: '', // 用户密级
}),
getters: {
isLogin: (state) => {
@@ -101,6 +102,7 @@
const menuStore = useMenuStore()
localStorage.removeItem('username')
localStorage.removeItem('token')
+ sessionStorage.removeItem('secretUserLevel')
this.username = ''
this.token = ''
this.roleList = []
@@ -132,6 +134,8 @@
this.id = res.data.id
this.username = res.data.account
this.name = res.data.name
+ this.secretUserLevel = res.data.secretLevel
+ window.sessionStorage.setItem('secretUserLevel', res.data.secretLevel)
resolve(res.data)
}).catch(() => {
reject('获取用户信息错误')
diff --git a/src/utils/download.ts b/src/utils/download.ts
index 88a45c5..2c7964f 100644
--- a/src/utils/download.ts
+++ b/src/utils/download.ts
@@ -1,3 +1,5 @@
+import { getDictByCode } from '@/api/system/dict'
+
/**
* 下载本地图片 href为 127.0.0.1/xxxx
* @param href 图片地址
@@ -120,48 +122,63 @@
* @param url 网络文件地址
* @param name 文件名
*/
-export async function download(url: string, name: string) {
- return new Promise((resolve) => {
- // 下载图片
- const photo = ['jpg', 'jpeg', 'png']
- const fileType = url.split('.')[url.split('.').length - 1]
- console.log(fileType, 'fileType')
- if (photo.includes(fileType)) {
- // 图片 将服务器图片地址转化成本地地址
- const image = new Image()
- image.setAttribute('crossOrigin', 'anonymous')
- image.src = url
- image.onload = () => {
- const canvas = document.createElement('canvas')
- canvas.width = image.width
- canvas.height = image.height
- const ctx = canvas.getContext('2d')
- ;(ctx as CanvasRenderingContext2D).drawImage(
- image,
- 0,
- 0,
- image.width,
- image.height,
+export async function download(url: string, getName: string) {
+ let name = getName || ''
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex(
+ (item: { value: string | null }) => item.value === level,
)
- canvas.toBlob((blob) => {
- const url = URL.createObjectURL(blob as Blob)
- downloadImg(url, name)
- // 用完释放URL对象
- URL.revokeObjectURL(url)
- console.log('111111111111111111')
- resolve(' ')
- console.log('2222222222')
- })
+ const systemType = window.localStorage.getItem('systemType') as string
+ if (index !== -1 && systemType === 'gm') {
+ name = `【${response.data[index].name}】${name}`
+ }
}
}
- else {
- // 预览一般都是用的a标签,文件下载用的window.open
- // 1.pdf文件路径放到window.open里面,点击是进行在线预览
- // 2.word文件和excel文件通过a标签打开时,是直接下载了
- // 将网络地址转化为 blob地址 并下载
- urlToBlob(url, name).then(() => {
- resolve(' ')
- })
- }
+ return new Promise((resolve) => {
+ // 下载图片
+ const photo = ['jpg', 'jpeg', 'png']
+ const fileType = url.split('.')[url.split('.').length - 1]
+ console.log(fileType, 'fileType')
+ if (photo.includes(fileType)) {
+ // 图片 将服务器图片地址转化成本地地址
+ const image = new Image()
+ image.setAttribute('crossOrigin', 'anonymous')
+ image.src = url
+ image.onload = () => {
+ const canvas = document.createElement('canvas')
+ canvas.width = image.width
+ canvas.height = image.height
+ const ctx = canvas.getContext('2d')
+ ;(ctx as CanvasRenderingContext2D).drawImage(
+ image,
+ 0,
+ 0,
+ image.width,
+ image.height,
+ )
+ canvas.toBlob((blob) => {
+ const url = URL.createObjectURL(blob as Blob)
+ downloadImg(url, name)
+ // 用完释放URL对象
+ URL.revokeObjectURL(url)
+ console.log('111111111111111111')
+ resolve(' ')
+ console.log('2222222222')
+ })
+ }
+ }
+ else {
+ // 预览一般都是用的a标签,文件下载用的window.open
+ // 1.pdf文件路径放到window.open里面,点击是进行在线预览
+ // 2.word文件和excel文件通过a标签打开时,是直接下载了
+ // 将网络地址转化为 blob地址 并下载
+ urlToBlob(url, name).then(() => {
+ resolve(' ')
+ })
+ }
+ })
})
}
diff --git a/src/utils/exportUtils.ts b/src/utils/exportUtils.ts
index e91b303..a58eaf5 100644
--- a/src/utils/exportUtils.ts
+++ b/src/utils/exportUtils.ts
@@ -1,22 +1,37 @@
+import { getDictByCode } from '@/api/system/dict'
+
/**
* 导出文件工具
* @param blob 文件
* @param fileName 导出文件名
*/
-export function exportFile(blob: Blob, fileName: string) {
- if (window.navigator && (window.navigator as any).msSaveOrOpenBlob) {
- (navigator as any).msSaveBlob(blob, fileName)
- }
- else {
- const downloadElement = document.createElement('a')
- const href = window.URL.createObjectURL(blob) // 创建下载的链接
- downloadElement.href = href
- downloadElement.download = fileName
- document.body.appendChild(downloadElement)
- downloadElement.click() // 点击下载
- document.body.removeChild(downloadElement) // 下载完成移除元素
- window.URL.revokeObjectURL(href) // 释放blob对象
- }
+export function exportFile(blob: Blob, getFileName: string) {
+ let fileName = getFileName || ''
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex((item: { value: string | null }) => item.value === level)
+ const systemType = window.localStorage.getItem('systemType') as string
+ if (index !== -1 && systemType === 'gm') {
+ fileName = `【${response.data[index].name}】${fileName}`
+ }
+ }
+ }
+ if (window.navigator && (window.navigator as any).msSaveOrOpenBlob) {
+ (navigator as any).msSaveBlob(blob, fileName)
+ }
+ else {
+ const downloadElement = document.createElement('a')
+ const href = window.URL.createObjectURL(blob) // 创建下载的链接
+ downloadElement.href = href
+ downloadElement.download = fileName
+ document.body.appendChild(downloadElement)
+ downloadElement.click() // 点击下载
+ document.body.removeChild(downloadElement) // 下载完成移除元素
+ window.URL.revokeObjectURL(href) // 释放blob对象
+ }
+ })
}
export const base64ToBlob = (dataurl) => {
diff --git a/src/views/alarm/dangerAssessment/assessment/list.vue b/src/views/alarm/dangerAssessment/assessment/list.vue
index 0814cf1..0038682 100644
--- a/src/views/alarm/dangerAssessment/assessment/list.vue
+++ b/src/views/alarm/dangerAssessment/assessment/list.vue
@@ -3,6 +3,7 @@
import { getCurrentInstance, ref } from 'vue'
import type { Ref } from 'vue'
import type { DateModelType } from 'element-plus'
+import { getDictByCode } from '@/api/system/dict'
import LineChart from '@/components/Echart/LineChart.vue'
import BarChartHorizontal from '@/components/Echart/BarChartHorizontal.vue'
import { getAreaDanger, getDangerCategory, getDeptAlarmDate, getDeptAlarmRecord, getDeptDanger } from '@/api/alarm/dangerAssessment/statistics'
@@ -188,7 +189,21 @@
onBeforeMount(() => {
calcBlockSize()
})
+const secretLevelUserName = ref('') // 当前登录用户的密级
+const systemType = ref('') // 系统类型 sm/gm
onMounted(() => {
+ systemType.value = window.localStorage.getItem('systemType') as string
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex((item: { value: string | null }) => item.value === level)
+ if (index !== -1 && systemType.value === 'gm') {
+ secretLevelUserName.value = response.data[index].name
+ }
+ }
+ }
+ })
fetchDangerCategory()
getLastMonthAlarm() // 单位近一个月报警分析
// getSafeCatogery() // 获取安全隐患类别
@@ -205,8 +220,8 @@
-
- {{ item.name }}
+
+ {{ item.name }}-{{ secretLevelUserName }}
{{ item.value }}
个
@@ -219,7 +234,7 @@
-
+
-
+
-
+
{
@@ -101,6 +102,7 @@
const menuStore = useMenuStore()
localStorage.removeItem('username')
localStorage.removeItem('token')
+ sessionStorage.removeItem('secretUserLevel')
this.username = ''
this.token = ''
this.roleList = []
@@ -132,6 +134,8 @@
this.id = res.data.id
this.username = res.data.account
this.name = res.data.name
+ this.secretUserLevel = res.data.secretLevel
+ window.sessionStorage.setItem('secretUserLevel', res.data.secretLevel)
resolve(res.data)
}).catch(() => {
reject('获取用户信息错误')
diff --git a/src/utils/download.ts b/src/utils/download.ts
index 88a45c5..2c7964f 100644
--- a/src/utils/download.ts
+++ b/src/utils/download.ts
@@ -1,3 +1,5 @@
+import { getDictByCode } from '@/api/system/dict'
+
/**
* 下载本地图片 href为 127.0.0.1/xxxx
* @param href 图片地址
@@ -120,48 +122,63 @@
* @param url 网络文件地址
* @param name 文件名
*/
-export async function download(url: string, name: string) {
- return new Promise((resolve) => {
- // 下载图片
- const photo = ['jpg', 'jpeg', 'png']
- const fileType = url.split('.')[url.split('.').length - 1]
- console.log(fileType, 'fileType')
- if (photo.includes(fileType)) {
- // 图片 将服务器图片地址转化成本地地址
- const image = new Image()
- image.setAttribute('crossOrigin', 'anonymous')
- image.src = url
- image.onload = () => {
- const canvas = document.createElement('canvas')
- canvas.width = image.width
- canvas.height = image.height
- const ctx = canvas.getContext('2d')
- ;(ctx as CanvasRenderingContext2D).drawImage(
- image,
- 0,
- 0,
- image.width,
- image.height,
+export async function download(url: string, getName: string) {
+ let name = getName || ''
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex(
+ (item: { value: string | null }) => item.value === level,
)
- canvas.toBlob((blob) => {
- const url = URL.createObjectURL(blob as Blob)
- downloadImg(url, name)
- // 用完释放URL对象
- URL.revokeObjectURL(url)
- console.log('111111111111111111')
- resolve(' ')
- console.log('2222222222')
- })
+ const systemType = window.localStorage.getItem('systemType') as string
+ if (index !== -1 && systemType === 'gm') {
+ name = `【${response.data[index].name}】${name}`
+ }
}
}
- else {
- // 预览一般都是用的a标签,文件下载用的window.open
- // 1.pdf文件路径放到window.open里面,点击是进行在线预览
- // 2.word文件和excel文件通过a标签打开时,是直接下载了
- // 将网络地址转化为 blob地址 并下载
- urlToBlob(url, name).then(() => {
- resolve(' ')
- })
- }
+ return new Promise((resolve) => {
+ // 下载图片
+ const photo = ['jpg', 'jpeg', 'png']
+ const fileType = url.split('.')[url.split('.').length - 1]
+ console.log(fileType, 'fileType')
+ if (photo.includes(fileType)) {
+ // 图片 将服务器图片地址转化成本地地址
+ const image = new Image()
+ image.setAttribute('crossOrigin', 'anonymous')
+ image.src = url
+ image.onload = () => {
+ const canvas = document.createElement('canvas')
+ canvas.width = image.width
+ canvas.height = image.height
+ const ctx = canvas.getContext('2d')
+ ;(ctx as CanvasRenderingContext2D).drawImage(
+ image,
+ 0,
+ 0,
+ image.width,
+ image.height,
+ )
+ canvas.toBlob((blob) => {
+ const url = URL.createObjectURL(blob as Blob)
+ downloadImg(url, name)
+ // 用完释放URL对象
+ URL.revokeObjectURL(url)
+ console.log('111111111111111111')
+ resolve(' ')
+ console.log('2222222222')
+ })
+ }
+ }
+ else {
+ // 预览一般都是用的a标签,文件下载用的window.open
+ // 1.pdf文件路径放到window.open里面,点击是进行在线预览
+ // 2.word文件和excel文件通过a标签打开时,是直接下载了
+ // 将网络地址转化为 blob地址 并下载
+ urlToBlob(url, name).then(() => {
+ resolve(' ')
+ })
+ }
+ })
})
}
diff --git a/src/utils/exportUtils.ts b/src/utils/exportUtils.ts
index e91b303..a58eaf5 100644
--- a/src/utils/exportUtils.ts
+++ b/src/utils/exportUtils.ts
@@ -1,22 +1,37 @@
+import { getDictByCode } from '@/api/system/dict'
+
/**
* 导出文件工具
* @param blob 文件
* @param fileName 导出文件名
*/
-export function exportFile(blob: Blob, fileName: string) {
- if (window.navigator && (window.navigator as any).msSaveOrOpenBlob) {
- (navigator as any).msSaveBlob(blob, fileName)
- }
- else {
- const downloadElement = document.createElement('a')
- const href = window.URL.createObjectURL(blob) // 创建下载的链接
- downloadElement.href = href
- downloadElement.download = fileName
- document.body.appendChild(downloadElement)
- downloadElement.click() // 点击下载
- document.body.removeChild(downloadElement) // 下载完成移除元素
- window.URL.revokeObjectURL(href) // 释放blob对象
- }
+export function exportFile(blob: Blob, getFileName: string) {
+ let fileName = getFileName || ''
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex((item: { value: string | null }) => item.value === level)
+ const systemType = window.localStorage.getItem('systemType') as string
+ if (index !== -1 && systemType === 'gm') {
+ fileName = `【${response.data[index].name}】${fileName}`
+ }
+ }
+ }
+ if (window.navigator && (window.navigator as any).msSaveOrOpenBlob) {
+ (navigator as any).msSaveBlob(blob, fileName)
+ }
+ else {
+ const downloadElement = document.createElement('a')
+ const href = window.URL.createObjectURL(blob) // 创建下载的链接
+ downloadElement.href = href
+ downloadElement.download = fileName
+ document.body.appendChild(downloadElement)
+ downloadElement.click() // 点击下载
+ document.body.removeChild(downloadElement) // 下载完成移除元素
+ window.URL.revokeObjectURL(href) // 释放blob对象
+ }
+ })
}
export const base64ToBlob = (dataurl) => {
diff --git a/src/views/alarm/dangerAssessment/assessment/list.vue b/src/views/alarm/dangerAssessment/assessment/list.vue
index 0814cf1..0038682 100644
--- a/src/views/alarm/dangerAssessment/assessment/list.vue
+++ b/src/views/alarm/dangerAssessment/assessment/list.vue
@@ -3,6 +3,7 @@
import { getCurrentInstance, ref } from 'vue'
import type { Ref } from 'vue'
import type { DateModelType } from 'element-plus'
+import { getDictByCode } from '@/api/system/dict'
import LineChart from '@/components/Echart/LineChart.vue'
import BarChartHorizontal from '@/components/Echart/BarChartHorizontal.vue'
import { getAreaDanger, getDangerCategory, getDeptAlarmDate, getDeptAlarmRecord, getDeptDanger } from '@/api/alarm/dangerAssessment/statistics'
@@ -188,7 +189,21 @@
onBeforeMount(() => {
calcBlockSize()
})
+const secretLevelUserName = ref('') // 当前登录用户的密级
+const systemType = ref('') // 系统类型 sm/gm
onMounted(() => {
+ systemType.value = window.localStorage.getItem('systemType') as string
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex((item: { value: string | null }) => item.value === level)
+ if (index !== -1 && systemType.value === 'gm') {
+ secretLevelUserName.value = response.data[index].name
+ }
+ }
+ }
+ })
fetchDangerCategory()
getLastMonthAlarm() // 单位近一个月报警分析
// getSafeCatogery() // 获取安全隐患类别
@@ -205,8 +220,8 @@
-
- {{ item.name }}
+
+ {{ item.name }}-{{ secretLevelUserName }}
{{ item.value }}
个
@@ -219,7 +234,7 @@
-
+
-
+
-
+
{
showEchart.value = !showEchart.value
}
+
+const secretLevelUserName = ref('')
+const systemType = ref('')
+onMounted(() => {
+ systemType.value = window.localStorage.getItem('systemType')
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex(item => item.value === level)
+ if (index !== -1 && systemType.value === 'gm') {
+ secretLevelUserName.value = response.data[index].name
+ }
+ }
+ }
+ })
+})
@@ -80,7 +98,7 @@
}"
>
-
+
@@ -94,15 +112,21 @@
-
隐患分类
+
+ 隐患分类-{{ secretLevelUserName }}
+
>
-
区域隐患分类
+
+ 区域隐患分类-{{ secretLevelUserName }}
+
-
单位隐患分布
+
+ 单位隐患分布-{{ secretLevelUserName }}
+
@@ -124,21 +148,29 @@
-
各区域设备数量
+
+ 各区域设备数量-{{ secretLevelUserName }}
+
-
各区域接入视频点位
+
+ 各区域接入视频点位-{{ secretLevelUserName }}
+
-
各单位接入视频点位
+
+ 各单位接入视频点位-{{ secretLevelUserName }}
+
-
关注对象
+
+ 关注对象-{{ secretLevelUserName }}
+
diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
index 2eec0bd..289b46f 100644
--- a/src/store/modules/user.ts
+++ b/src/store/modules/user.ts
@@ -27,6 +27,7 @@
menus: [] as Menu.menu[], // 菜单权限
btns: [] as Menu.menu[], // 按钮权限
isLogout: 0, // 是否被退出登录
+ secretUserLevel: '', // 用户密级
}),
getters: {
isLogin: (state) => {
@@ -101,6 +102,7 @@
const menuStore = useMenuStore()
localStorage.removeItem('username')
localStorage.removeItem('token')
+ sessionStorage.removeItem('secretUserLevel')
this.username = ''
this.token = ''
this.roleList = []
@@ -132,6 +134,8 @@
this.id = res.data.id
this.username = res.data.account
this.name = res.data.name
+ this.secretUserLevel = res.data.secretLevel
+ window.sessionStorage.setItem('secretUserLevel', res.data.secretLevel)
resolve(res.data)
}).catch(() => {
reject('获取用户信息错误')
diff --git a/src/utils/download.ts b/src/utils/download.ts
index 88a45c5..2c7964f 100644
--- a/src/utils/download.ts
+++ b/src/utils/download.ts
@@ -1,3 +1,5 @@
+import { getDictByCode } from '@/api/system/dict'
+
/**
* 下载本地图片 href为 127.0.0.1/xxxx
* @param href 图片地址
@@ -120,48 +122,63 @@
* @param url 网络文件地址
* @param name 文件名
*/
-export async function download(url: string, name: string) {
- return new Promise((resolve) => {
- // 下载图片
- const photo = ['jpg', 'jpeg', 'png']
- const fileType = url.split('.')[url.split('.').length - 1]
- console.log(fileType, 'fileType')
- if (photo.includes(fileType)) {
- // 图片 将服务器图片地址转化成本地地址
- const image = new Image()
- image.setAttribute('crossOrigin', 'anonymous')
- image.src = url
- image.onload = () => {
- const canvas = document.createElement('canvas')
- canvas.width = image.width
- canvas.height = image.height
- const ctx = canvas.getContext('2d')
- ;(ctx as CanvasRenderingContext2D).drawImage(
- image,
- 0,
- 0,
- image.width,
- image.height,
+export async function download(url: string, getName: string) {
+ let name = getName || ''
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex(
+ (item: { value: string | null }) => item.value === level,
)
- canvas.toBlob((blob) => {
- const url = URL.createObjectURL(blob as Blob)
- downloadImg(url, name)
- // 用完释放URL对象
- URL.revokeObjectURL(url)
- console.log('111111111111111111')
- resolve(' ')
- console.log('2222222222')
- })
+ const systemType = window.localStorage.getItem('systemType') as string
+ if (index !== -1 && systemType === 'gm') {
+ name = `【${response.data[index].name}】${name}`
+ }
}
}
- else {
- // 预览一般都是用的a标签,文件下载用的window.open
- // 1.pdf文件路径放到window.open里面,点击是进行在线预览
- // 2.word文件和excel文件通过a标签打开时,是直接下载了
- // 将网络地址转化为 blob地址 并下载
- urlToBlob(url, name).then(() => {
- resolve(' ')
- })
- }
+ return new Promise((resolve) => {
+ // 下载图片
+ const photo = ['jpg', 'jpeg', 'png']
+ const fileType = url.split('.')[url.split('.').length - 1]
+ console.log(fileType, 'fileType')
+ if (photo.includes(fileType)) {
+ // 图片 将服务器图片地址转化成本地地址
+ const image = new Image()
+ image.setAttribute('crossOrigin', 'anonymous')
+ image.src = url
+ image.onload = () => {
+ const canvas = document.createElement('canvas')
+ canvas.width = image.width
+ canvas.height = image.height
+ const ctx = canvas.getContext('2d')
+ ;(ctx as CanvasRenderingContext2D).drawImage(
+ image,
+ 0,
+ 0,
+ image.width,
+ image.height,
+ )
+ canvas.toBlob((blob) => {
+ const url = URL.createObjectURL(blob as Blob)
+ downloadImg(url, name)
+ // 用完释放URL对象
+ URL.revokeObjectURL(url)
+ console.log('111111111111111111')
+ resolve(' ')
+ console.log('2222222222')
+ })
+ }
+ }
+ else {
+ // 预览一般都是用的a标签,文件下载用的window.open
+ // 1.pdf文件路径放到window.open里面,点击是进行在线预览
+ // 2.word文件和excel文件通过a标签打开时,是直接下载了
+ // 将网络地址转化为 blob地址 并下载
+ urlToBlob(url, name).then(() => {
+ resolve(' ')
+ })
+ }
+ })
})
}
diff --git a/src/utils/exportUtils.ts b/src/utils/exportUtils.ts
index e91b303..a58eaf5 100644
--- a/src/utils/exportUtils.ts
+++ b/src/utils/exportUtils.ts
@@ -1,22 +1,37 @@
+import { getDictByCode } from '@/api/system/dict'
+
/**
* 导出文件工具
* @param blob 文件
* @param fileName 导出文件名
*/
-export function exportFile(blob: Blob, fileName: string) {
- if (window.navigator && (window.navigator as any).msSaveOrOpenBlob) {
- (navigator as any).msSaveBlob(blob, fileName)
- }
- else {
- const downloadElement = document.createElement('a')
- const href = window.URL.createObjectURL(blob) // 创建下载的链接
- downloadElement.href = href
- downloadElement.download = fileName
- document.body.appendChild(downloadElement)
- downloadElement.click() // 点击下载
- document.body.removeChild(downloadElement) // 下载完成移除元素
- window.URL.revokeObjectURL(href) // 释放blob对象
- }
+export function exportFile(blob: Blob, getFileName: string) {
+ let fileName = getFileName || ''
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex((item: { value: string | null }) => item.value === level)
+ const systemType = window.localStorage.getItem('systemType') as string
+ if (index !== -1 && systemType === 'gm') {
+ fileName = `【${response.data[index].name}】${fileName}`
+ }
+ }
+ }
+ if (window.navigator && (window.navigator as any).msSaveOrOpenBlob) {
+ (navigator as any).msSaveBlob(blob, fileName)
+ }
+ else {
+ const downloadElement = document.createElement('a')
+ const href = window.URL.createObjectURL(blob) // 创建下载的链接
+ downloadElement.href = href
+ downloadElement.download = fileName
+ document.body.appendChild(downloadElement)
+ downloadElement.click() // 点击下载
+ document.body.removeChild(downloadElement) // 下载完成移除元素
+ window.URL.revokeObjectURL(href) // 释放blob对象
+ }
+ })
}
export const base64ToBlob = (dataurl) => {
diff --git a/src/views/alarm/dangerAssessment/assessment/list.vue b/src/views/alarm/dangerAssessment/assessment/list.vue
index 0814cf1..0038682 100644
--- a/src/views/alarm/dangerAssessment/assessment/list.vue
+++ b/src/views/alarm/dangerAssessment/assessment/list.vue
@@ -3,6 +3,7 @@
import { getCurrentInstance, ref } from 'vue'
import type { Ref } from 'vue'
import type { DateModelType } from 'element-plus'
+import { getDictByCode } from '@/api/system/dict'
import LineChart from '@/components/Echart/LineChart.vue'
import BarChartHorizontal from '@/components/Echart/BarChartHorizontal.vue'
import { getAreaDanger, getDangerCategory, getDeptAlarmDate, getDeptAlarmRecord, getDeptDanger } from '@/api/alarm/dangerAssessment/statistics'
@@ -188,7 +189,21 @@
onBeforeMount(() => {
calcBlockSize()
})
+const secretLevelUserName = ref('') // 当前登录用户的密级
+const systemType = ref('') // 系统类型 sm/gm
onMounted(() => {
+ systemType.value = window.localStorage.getItem('systemType') as string
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex((item: { value: string | null }) => item.value === level)
+ if (index !== -1 && systemType.value === 'gm') {
+ secretLevelUserName.value = response.data[index].name
+ }
+ }
+ }
+ })
fetchDangerCategory()
getLastMonthAlarm() // 单位近一个月报警分析
// getSafeCatogery() // 获取安全隐患类别
@@ -205,8 +220,8 @@
-
- {{ item.name }}
+
+ {{ item.name }}-{{ secretLevelUserName }}
{{ item.value }}
个
@@ -219,7 +234,7 @@
-
+
-
+
-
+
{
showEchart.value = !showEchart.value
}
+
+const secretLevelUserName = ref('')
+const systemType = ref('')
+onMounted(() => {
+ systemType.value = window.localStorage.getItem('systemType')
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex(item => item.value === level)
+ if (index !== -1 && systemType.value === 'gm') {
+ secretLevelUserName.value = response.data[index].name
+ }
+ }
+ }
+ })
+})
@@ -80,7 +98,7 @@
}"
>
-
+
@@ -94,15 +112,21 @@
-
隐患分类
+
+ 隐患分类-{{ secretLevelUserName }}
+
>
-
区域隐患分类
+
+ 区域隐患分类-{{ secretLevelUserName }}
+
-
单位隐患分布
+
+ 单位隐患分布-{{ secretLevelUserName }}
+
@@ -124,21 +148,29 @@
-
各区域设备数量
+
+ 各区域设备数量-{{ secretLevelUserName }}
+
-
各区域接入视频点位
+
+ 各区域接入视频点位-{{ secretLevelUserName }}
+
-
各单位接入视频点位
+
+ 各单位接入视频点位-{{ secretLevelUserName }}
+
-
关注对象
+
+ 关注对象-{{ secretLevelUserName }}
+
diff --git a/src/views/monitor/deviceManage/listDevice.vue b/src/views/monitor/deviceManage/listDevice.vue
index 13f04c5..bdd8cc9 100644
--- a/src/views/monitor/deviceManage/listDevice.vue
+++ b/src/views/monitor/deviceManage/listDevice.vue
@@ -28,6 +28,7 @@
const devTypeList = ref([]) as any
const total = ref(0)
const listQuery = reactive({ ...defaultQuery })
+// const secretUserLevelList = ref([])
// 搜索重置
function reset() {
@@ -84,6 +85,12 @@
// 模板下载
const templateDownload = () => {
+ // const level = window.sessionStorage.getItem('secretUserLevel')
+ // const index = secretUserLevelList.value.findIndex(item => item.value === level)
+ // let title = '设备导入模版.xlsx'
+ // if (index !== -1) {
+ // title = `【${secretUserLevelList.value[index].name}】${title}`
+ // }
download(`${window.localStorage.getItem('baseurl-safe')}/static/device.xlsx`, '设备导入模版.xlsx')
}
@@ -135,6 +142,12 @@
if (list.value.length > 0) {
exportListPage(listQuery).then((res) => {
const blob = new Blob([res.data])
+ // const level = window.sessionStorage.getItem('secretUserLevel')
+ // const index = secretUserLevelList.value.findIndex(item => item.value === level)
+ // let title = '设备列表.xlsx'
+ // if (index !== -1) {
+ // title = `【${secretUserLevelList.value[index].name}】${title}`
+ // }
exportFile(blob, '设备列表.xlsx')
})
}
@@ -179,6 +192,11 @@
}
onMounted(() => {
+ // getDictByCode('secretUserLevel').then((response) => {
+ // if (response.code === 200) {
+ // secretUserLevelList.value = response.data
+ // }
+ // })
getDictByCode('deviceType').then((response) => {
devTypeList.value = response.data
})
diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
index 2eec0bd..289b46f 100644
--- a/src/store/modules/user.ts
+++ b/src/store/modules/user.ts
@@ -27,6 +27,7 @@
menus: [] as Menu.menu[], // 菜单权限
btns: [] as Menu.menu[], // 按钮权限
isLogout: 0, // 是否被退出登录
+ secretUserLevel: '', // 用户密级
}),
getters: {
isLogin: (state) => {
@@ -101,6 +102,7 @@
const menuStore = useMenuStore()
localStorage.removeItem('username')
localStorage.removeItem('token')
+ sessionStorage.removeItem('secretUserLevel')
this.username = ''
this.token = ''
this.roleList = []
@@ -132,6 +134,8 @@
this.id = res.data.id
this.username = res.data.account
this.name = res.data.name
+ this.secretUserLevel = res.data.secretLevel
+ window.sessionStorage.setItem('secretUserLevel', res.data.secretLevel)
resolve(res.data)
}).catch(() => {
reject('获取用户信息错误')
diff --git a/src/utils/download.ts b/src/utils/download.ts
index 88a45c5..2c7964f 100644
--- a/src/utils/download.ts
+++ b/src/utils/download.ts
@@ -1,3 +1,5 @@
+import { getDictByCode } from '@/api/system/dict'
+
/**
* 下载本地图片 href为 127.0.0.1/xxxx
* @param href 图片地址
@@ -120,48 +122,63 @@
* @param url 网络文件地址
* @param name 文件名
*/
-export async function download(url: string, name: string) {
- return new Promise((resolve) => {
- // 下载图片
- const photo = ['jpg', 'jpeg', 'png']
- const fileType = url.split('.')[url.split('.').length - 1]
- console.log(fileType, 'fileType')
- if (photo.includes(fileType)) {
- // 图片 将服务器图片地址转化成本地地址
- const image = new Image()
- image.setAttribute('crossOrigin', 'anonymous')
- image.src = url
- image.onload = () => {
- const canvas = document.createElement('canvas')
- canvas.width = image.width
- canvas.height = image.height
- const ctx = canvas.getContext('2d')
- ;(ctx as CanvasRenderingContext2D).drawImage(
- image,
- 0,
- 0,
- image.width,
- image.height,
+export async function download(url: string, getName: string) {
+ let name = getName || ''
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex(
+ (item: { value: string | null }) => item.value === level,
)
- canvas.toBlob((blob) => {
- const url = URL.createObjectURL(blob as Blob)
- downloadImg(url, name)
- // 用完释放URL对象
- URL.revokeObjectURL(url)
- console.log('111111111111111111')
- resolve(' ')
- console.log('2222222222')
- })
+ const systemType = window.localStorage.getItem('systemType') as string
+ if (index !== -1 && systemType === 'gm') {
+ name = `【${response.data[index].name}】${name}`
+ }
}
}
- else {
- // 预览一般都是用的a标签,文件下载用的window.open
- // 1.pdf文件路径放到window.open里面,点击是进行在线预览
- // 2.word文件和excel文件通过a标签打开时,是直接下载了
- // 将网络地址转化为 blob地址 并下载
- urlToBlob(url, name).then(() => {
- resolve(' ')
- })
- }
+ return new Promise((resolve) => {
+ // 下载图片
+ const photo = ['jpg', 'jpeg', 'png']
+ const fileType = url.split('.')[url.split('.').length - 1]
+ console.log(fileType, 'fileType')
+ if (photo.includes(fileType)) {
+ // 图片 将服务器图片地址转化成本地地址
+ const image = new Image()
+ image.setAttribute('crossOrigin', 'anonymous')
+ image.src = url
+ image.onload = () => {
+ const canvas = document.createElement('canvas')
+ canvas.width = image.width
+ canvas.height = image.height
+ const ctx = canvas.getContext('2d')
+ ;(ctx as CanvasRenderingContext2D).drawImage(
+ image,
+ 0,
+ 0,
+ image.width,
+ image.height,
+ )
+ canvas.toBlob((blob) => {
+ const url = URL.createObjectURL(blob as Blob)
+ downloadImg(url, name)
+ // 用完释放URL对象
+ URL.revokeObjectURL(url)
+ console.log('111111111111111111')
+ resolve(' ')
+ console.log('2222222222')
+ })
+ }
+ }
+ else {
+ // 预览一般都是用的a标签,文件下载用的window.open
+ // 1.pdf文件路径放到window.open里面,点击是进行在线预览
+ // 2.word文件和excel文件通过a标签打开时,是直接下载了
+ // 将网络地址转化为 blob地址 并下载
+ urlToBlob(url, name).then(() => {
+ resolve(' ')
+ })
+ }
+ })
})
}
diff --git a/src/utils/exportUtils.ts b/src/utils/exportUtils.ts
index e91b303..a58eaf5 100644
--- a/src/utils/exportUtils.ts
+++ b/src/utils/exportUtils.ts
@@ -1,22 +1,37 @@
+import { getDictByCode } from '@/api/system/dict'
+
/**
* 导出文件工具
* @param blob 文件
* @param fileName 导出文件名
*/
-export function exportFile(blob: Blob, fileName: string) {
- if (window.navigator && (window.navigator as any).msSaveOrOpenBlob) {
- (navigator as any).msSaveBlob(blob, fileName)
- }
- else {
- const downloadElement = document.createElement('a')
- const href = window.URL.createObjectURL(blob) // 创建下载的链接
- downloadElement.href = href
- downloadElement.download = fileName
- document.body.appendChild(downloadElement)
- downloadElement.click() // 点击下载
- document.body.removeChild(downloadElement) // 下载完成移除元素
- window.URL.revokeObjectURL(href) // 释放blob对象
- }
+export function exportFile(blob: Blob, getFileName: string) {
+ let fileName = getFileName || ''
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex((item: { value: string | null }) => item.value === level)
+ const systemType = window.localStorage.getItem('systemType') as string
+ if (index !== -1 && systemType === 'gm') {
+ fileName = `【${response.data[index].name}】${fileName}`
+ }
+ }
+ }
+ if (window.navigator && (window.navigator as any).msSaveOrOpenBlob) {
+ (navigator as any).msSaveBlob(blob, fileName)
+ }
+ else {
+ const downloadElement = document.createElement('a')
+ const href = window.URL.createObjectURL(blob) // 创建下载的链接
+ downloadElement.href = href
+ downloadElement.download = fileName
+ document.body.appendChild(downloadElement)
+ downloadElement.click() // 点击下载
+ document.body.removeChild(downloadElement) // 下载完成移除元素
+ window.URL.revokeObjectURL(href) // 释放blob对象
+ }
+ })
}
export const base64ToBlob = (dataurl) => {
diff --git a/src/views/alarm/dangerAssessment/assessment/list.vue b/src/views/alarm/dangerAssessment/assessment/list.vue
index 0814cf1..0038682 100644
--- a/src/views/alarm/dangerAssessment/assessment/list.vue
+++ b/src/views/alarm/dangerAssessment/assessment/list.vue
@@ -3,6 +3,7 @@
import { getCurrentInstance, ref } from 'vue'
import type { Ref } from 'vue'
import type { DateModelType } from 'element-plus'
+import { getDictByCode } from '@/api/system/dict'
import LineChart from '@/components/Echart/LineChart.vue'
import BarChartHorizontal from '@/components/Echart/BarChartHorizontal.vue'
import { getAreaDanger, getDangerCategory, getDeptAlarmDate, getDeptAlarmRecord, getDeptDanger } from '@/api/alarm/dangerAssessment/statistics'
@@ -188,7 +189,21 @@
onBeforeMount(() => {
calcBlockSize()
})
+const secretLevelUserName = ref('') // 当前登录用户的密级
+const systemType = ref('') // 系统类型 sm/gm
onMounted(() => {
+ systemType.value = window.localStorage.getItem('systemType') as string
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex((item: { value: string | null }) => item.value === level)
+ if (index !== -1 && systemType.value === 'gm') {
+ secretLevelUserName.value = response.data[index].name
+ }
+ }
+ }
+ })
fetchDangerCategory()
getLastMonthAlarm() // 单位近一个月报警分析
// getSafeCatogery() // 获取安全隐患类别
@@ -205,8 +220,8 @@
-
- {{ item.name }}
+
+ {{ item.name }}-{{ secretLevelUserName }}
{{ item.value }}
个
@@ -219,7 +234,7 @@
-
+
-
+
-
+
{
showEchart.value = !showEchart.value
}
+
+const secretLevelUserName = ref('')
+const systemType = ref('')
+onMounted(() => {
+ systemType.value = window.localStorage.getItem('systemType')
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex(item => item.value === level)
+ if (index !== -1 && systemType.value === 'gm') {
+ secretLevelUserName.value = response.data[index].name
+ }
+ }
+ }
+ })
+})
@@ -80,7 +98,7 @@
}"
>
-
+
@@ -94,15 +112,21 @@
-
隐患分类
+
+ 隐患分类-{{ secretLevelUserName }}
+
>
-
区域隐患分类
+
+ 区域隐患分类-{{ secretLevelUserName }}
+
-
单位隐患分布
+
+ 单位隐患分布-{{ secretLevelUserName }}
+
@@ -124,21 +148,29 @@
-
各区域设备数量
+
+ 各区域设备数量-{{ secretLevelUserName }}
+
-
各区域接入视频点位
+
+ 各区域接入视频点位-{{ secretLevelUserName }}
+
-
各单位接入视频点位
+
+ 各单位接入视频点位-{{ secretLevelUserName }}
+
-
关注对象
+
+ 关注对象-{{ secretLevelUserName }}
+
diff --git a/src/views/monitor/deviceManage/listDevice.vue b/src/views/monitor/deviceManage/listDevice.vue
index 13f04c5..bdd8cc9 100644
--- a/src/views/monitor/deviceManage/listDevice.vue
+++ b/src/views/monitor/deviceManage/listDevice.vue
@@ -28,6 +28,7 @@
const devTypeList = ref([]) as any
const total = ref(0)
const listQuery = reactive({ ...defaultQuery })
+// const secretUserLevelList = ref([])
// 搜索重置
function reset() {
@@ -84,6 +85,12 @@
// 模板下载
const templateDownload = () => {
+ // const level = window.sessionStorage.getItem('secretUserLevel')
+ // const index = secretUserLevelList.value.findIndex(item => item.value === level)
+ // let title = '设备导入模版.xlsx'
+ // if (index !== -1) {
+ // title = `【${secretUserLevelList.value[index].name}】${title}`
+ // }
download(`${window.localStorage.getItem('baseurl-safe')}/static/device.xlsx`, '设备导入模版.xlsx')
}
@@ -135,6 +142,12 @@
if (list.value.length > 0) {
exportListPage(listQuery).then((res) => {
const blob = new Blob([res.data])
+ // const level = window.sessionStorage.getItem('secretUserLevel')
+ // const index = secretUserLevelList.value.findIndex(item => item.value === level)
+ // let title = '设备列表.xlsx'
+ // if (index !== -1) {
+ // title = `【${secretUserLevelList.value[index].name}】${title}`
+ // }
exportFile(blob, '设备列表.xlsx')
})
}
@@ -179,6 +192,11 @@
}
onMounted(() => {
+ // getDictByCode('secretUserLevel').then((response) => {
+ // if (response.code === 200) {
+ // secretUserLevelList.value = response.data
+ // }
+ // })
getDictByCode('deviceType').then((response) => {
devTypeList.value = response.data
})
diff --git a/src/views/monitor/statistics/statistics.vue b/src/views/monitor/statistics/statistics.vue
index 2040929..ad51242 100644
--- a/src/views/monitor/statistics/statistics.vue
+++ b/src/views/monitor/statistics/statistics.vue
@@ -12,6 +12,7 @@
import sbzs from '@/assets/images/monitor/设备总数.png'
import sblxl from '@/assets/images/monitor/设备离线率.png'
import BarChartVertical from '@/components/Echart/BarChartVertical.vue'
+import { getDictByCode } from '@/api/system/dict'
// 每个展示块高度
const blockHeight = ref(300)
@@ -128,7 +129,21 @@
onBeforeMount(() => {
calcBlockSize()
})
+const secretLevelUserName = ref('') // 当前登录用户的密级
+const systemType = ref('') // 系统类型 sm/gm
onMounted(() => {
+ systemType.value = window.localStorage.getItem('systemType') as string
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex((item: { value: string | null }) => item.value === level)
+ if (index !== -1 && systemType.value === 'gm') {
+ secretLevelUserName.value = response.data[index].name
+ }
+ }
+ }
+ })
getTotal().then((res) => {
if (res.code === 200) {
list.value = res.data
@@ -154,7 +169,7 @@
- 设备总数
+ 设备总数-{{ secretLevelUserName }}
{{ list.devTotal }}
台
@@ -165,7 +180,7 @@
- 设备在线数
+ 设备在线数-{{ secretLevelUserName }}
{{ list.onlineNum }}
台
@@ -176,7 +191,7 @@
- 设备在线率
+ 设备在线率-{{ secretLevelUserName }}
{{ list.onlineRate }}
%
@@ -187,11 +202,11 @@
-
+
-
+
-
+
{
@@ -101,6 +102,7 @@
const menuStore = useMenuStore()
localStorage.removeItem('username')
localStorage.removeItem('token')
+ sessionStorage.removeItem('secretUserLevel')
this.username = ''
this.token = ''
this.roleList = []
@@ -132,6 +134,8 @@
this.id = res.data.id
this.username = res.data.account
this.name = res.data.name
+ this.secretUserLevel = res.data.secretLevel
+ window.sessionStorage.setItem('secretUserLevel', res.data.secretLevel)
resolve(res.data)
}).catch(() => {
reject('获取用户信息错误')
diff --git a/src/utils/download.ts b/src/utils/download.ts
index 88a45c5..2c7964f 100644
--- a/src/utils/download.ts
+++ b/src/utils/download.ts
@@ -1,3 +1,5 @@
+import { getDictByCode } from '@/api/system/dict'
+
/**
* 下载本地图片 href为 127.0.0.1/xxxx
* @param href 图片地址
@@ -120,48 +122,63 @@
* @param url 网络文件地址
* @param name 文件名
*/
-export async function download(url: string, name: string) {
- return new Promise((resolve) => {
- // 下载图片
- const photo = ['jpg', 'jpeg', 'png']
- const fileType = url.split('.')[url.split('.').length - 1]
- console.log(fileType, 'fileType')
- if (photo.includes(fileType)) {
- // 图片 将服务器图片地址转化成本地地址
- const image = new Image()
- image.setAttribute('crossOrigin', 'anonymous')
- image.src = url
- image.onload = () => {
- const canvas = document.createElement('canvas')
- canvas.width = image.width
- canvas.height = image.height
- const ctx = canvas.getContext('2d')
- ;(ctx as CanvasRenderingContext2D).drawImage(
- image,
- 0,
- 0,
- image.width,
- image.height,
+export async function download(url: string, getName: string) {
+ let name = getName || ''
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex(
+ (item: { value: string | null }) => item.value === level,
)
- canvas.toBlob((blob) => {
- const url = URL.createObjectURL(blob as Blob)
- downloadImg(url, name)
- // 用完释放URL对象
- URL.revokeObjectURL(url)
- console.log('111111111111111111')
- resolve(' ')
- console.log('2222222222')
- })
+ const systemType = window.localStorage.getItem('systemType') as string
+ if (index !== -1 && systemType === 'gm') {
+ name = `【${response.data[index].name}】${name}`
+ }
}
}
- else {
- // 预览一般都是用的a标签,文件下载用的window.open
- // 1.pdf文件路径放到window.open里面,点击是进行在线预览
- // 2.word文件和excel文件通过a标签打开时,是直接下载了
- // 将网络地址转化为 blob地址 并下载
- urlToBlob(url, name).then(() => {
- resolve(' ')
- })
- }
+ return new Promise((resolve) => {
+ // 下载图片
+ const photo = ['jpg', 'jpeg', 'png']
+ const fileType = url.split('.')[url.split('.').length - 1]
+ console.log(fileType, 'fileType')
+ if (photo.includes(fileType)) {
+ // 图片 将服务器图片地址转化成本地地址
+ const image = new Image()
+ image.setAttribute('crossOrigin', 'anonymous')
+ image.src = url
+ image.onload = () => {
+ const canvas = document.createElement('canvas')
+ canvas.width = image.width
+ canvas.height = image.height
+ const ctx = canvas.getContext('2d')
+ ;(ctx as CanvasRenderingContext2D).drawImage(
+ image,
+ 0,
+ 0,
+ image.width,
+ image.height,
+ )
+ canvas.toBlob((blob) => {
+ const url = URL.createObjectURL(blob as Blob)
+ downloadImg(url, name)
+ // 用完释放URL对象
+ URL.revokeObjectURL(url)
+ console.log('111111111111111111')
+ resolve(' ')
+ console.log('2222222222')
+ })
+ }
+ }
+ else {
+ // 预览一般都是用的a标签,文件下载用的window.open
+ // 1.pdf文件路径放到window.open里面,点击是进行在线预览
+ // 2.word文件和excel文件通过a标签打开时,是直接下载了
+ // 将网络地址转化为 blob地址 并下载
+ urlToBlob(url, name).then(() => {
+ resolve(' ')
+ })
+ }
+ })
})
}
diff --git a/src/utils/exportUtils.ts b/src/utils/exportUtils.ts
index e91b303..a58eaf5 100644
--- a/src/utils/exportUtils.ts
+++ b/src/utils/exportUtils.ts
@@ -1,22 +1,37 @@
+import { getDictByCode } from '@/api/system/dict'
+
/**
* 导出文件工具
* @param blob 文件
* @param fileName 导出文件名
*/
-export function exportFile(blob: Blob, fileName: string) {
- if (window.navigator && (window.navigator as any).msSaveOrOpenBlob) {
- (navigator as any).msSaveBlob(blob, fileName)
- }
- else {
- const downloadElement = document.createElement('a')
- const href = window.URL.createObjectURL(blob) // 创建下载的链接
- downloadElement.href = href
- downloadElement.download = fileName
- document.body.appendChild(downloadElement)
- downloadElement.click() // 点击下载
- document.body.removeChild(downloadElement) // 下载完成移除元素
- window.URL.revokeObjectURL(href) // 释放blob对象
- }
+export function exportFile(blob: Blob, getFileName: string) {
+ let fileName = getFileName || ''
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex((item: { value: string | null }) => item.value === level)
+ const systemType = window.localStorage.getItem('systemType') as string
+ if (index !== -1 && systemType === 'gm') {
+ fileName = `【${response.data[index].name}】${fileName}`
+ }
+ }
+ }
+ if (window.navigator && (window.navigator as any).msSaveOrOpenBlob) {
+ (navigator as any).msSaveBlob(blob, fileName)
+ }
+ else {
+ const downloadElement = document.createElement('a')
+ const href = window.URL.createObjectURL(blob) // 创建下载的链接
+ downloadElement.href = href
+ downloadElement.download = fileName
+ document.body.appendChild(downloadElement)
+ downloadElement.click() // 点击下载
+ document.body.removeChild(downloadElement) // 下载完成移除元素
+ window.URL.revokeObjectURL(href) // 释放blob对象
+ }
+ })
}
export const base64ToBlob = (dataurl) => {
diff --git a/src/views/alarm/dangerAssessment/assessment/list.vue b/src/views/alarm/dangerAssessment/assessment/list.vue
index 0814cf1..0038682 100644
--- a/src/views/alarm/dangerAssessment/assessment/list.vue
+++ b/src/views/alarm/dangerAssessment/assessment/list.vue
@@ -3,6 +3,7 @@
import { getCurrentInstance, ref } from 'vue'
import type { Ref } from 'vue'
import type { DateModelType } from 'element-plus'
+import { getDictByCode } from '@/api/system/dict'
import LineChart from '@/components/Echart/LineChart.vue'
import BarChartHorizontal from '@/components/Echart/BarChartHorizontal.vue'
import { getAreaDanger, getDangerCategory, getDeptAlarmDate, getDeptAlarmRecord, getDeptDanger } from '@/api/alarm/dangerAssessment/statistics'
@@ -188,7 +189,21 @@
onBeforeMount(() => {
calcBlockSize()
})
+const secretLevelUserName = ref('') // 当前登录用户的密级
+const systemType = ref('') // 系统类型 sm/gm
onMounted(() => {
+ systemType.value = window.localStorage.getItem('systemType') as string
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex((item: { value: string | null }) => item.value === level)
+ if (index !== -1 && systemType.value === 'gm') {
+ secretLevelUserName.value = response.data[index].name
+ }
+ }
+ }
+ })
fetchDangerCategory()
getLastMonthAlarm() // 单位近一个月报警分析
// getSafeCatogery() // 获取安全隐患类别
@@ -205,8 +220,8 @@
-
- {{ item.name }}
+
+ {{ item.name }}-{{ secretLevelUserName }}
{{ item.value }}
个
@@ -219,7 +234,7 @@
-
+
-
+
-
+
{
showEchart.value = !showEchart.value
}
+
+const secretLevelUserName = ref('')
+const systemType = ref('')
+onMounted(() => {
+ systemType.value = window.localStorage.getItem('systemType')
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex(item => item.value === level)
+ if (index !== -1 && systemType.value === 'gm') {
+ secretLevelUserName.value = response.data[index].name
+ }
+ }
+ }
+ })
+})
@@ -80,7 +98,7 @@
}"
>
-
+
@@ -94,15 +112,21 @@
-
隐患分类
+
+ 隐患分类-{{ secretLevelUserName }}
+
>
-
区域隐患分类
+
+ 区域隐患分类-{{ secretLevelUserName }}
+
-
单位隐患分布
+
+ 单位隐患分布-{{ secretLevelUserName }}
+
@@ -124,21 +148,29 @@
-
各区域设备数量
+
+ 各区域设备数量-{{ secretLevelUserName }}
+
-
各区域接入视频点位
+
+ 各区域接入视频点位-{{ secretLevelUserName }}
+
-
各单位接入视频点位
+
+ 各单位接入视频点位-{{ secretLevelUserName }}
+
-
关注对象
+
+ 关注对象-{{ secretLevelUserName }}
+
diff --git a/src/views/monitor/deviceManage/listDevice.vue b/src/views/monitor/deviceManage/listDevice.vue
index 13f04c5..bdd8cc9 100644
--- a/src/views/monitor/deviceManage/listDevice.vue
+++ b/src/views/monitor/deviceManage/listDevice.vue
@@ -28,6 +28,7 @@
const devTypeList = ref([]) as any
const total = ref(0)
const listQuery = reactive({ ...defaultQuery })
+// const secretUserLevelList = ref([])
// 搜索重置
function reset() {
@@ -84,6 +85,12 @@
// 模板下载
const templateDownload = () => {
+ // const level = window.sessionStorage.getItem('secretUserLevel')
+ // const index = secretUserLevelList.value.findIndex(item => item.value === level)
+ // let title = '设备导入模版.xlsx'
+ // if (index !== -1) {
+ // title = `【${secretUserLevelList.value[index].name}】${title}`
+ // }
download(`${window.localStorage.getItem('baseurl-safe')}/static/device.xlsx`, '设备导入模版.xlsx')
}
@@ -135,6 +142,12 @@
if (list.value.length > 0) {
exportListPage(listQuery).then((res) => {
const blob = new Blob([res.data])
+ // const level = window.sessionStorage.getItem('secretUserLevel')
+ // const index = secretUserLevelList.value.findIndex(item => item.value === level)
+ // let title = '设备列表.xlsx'
+ // if (index !== -1) {
+ // title = `【${secretUserLevelList.value[index].name}】${title}`
+ // }
exportFile(blob, '设备列表.xlsx')
})
}
@@ -179,6 +192,11 @@
}
onMounted(() => {
+ // getDictByCode('secretUserLevel').then((response) => {
+ // if (response.code === 200) {
+ // secretUserLevelList.value = response.data
+ // }
+ // })
getDictByCode('deviceType').then((response) => {
devTypeList.value = response.data
})
diff --git a/src/views/monitor/statistics/statistics.vue b/src/views/monitor/statistics/statistics.vue
index 2040929..ad51242 100644
--- a/src/views/monitor/statistics/statistics.vue
+++ b/src/views/monitor/statistics/statistics.vue
@@ -12,6 +12,7 @@
import sbzs from '@/assets/images/monitor/设备总数.png'
import sblxl from '@/assets/images/monitor/设备离线率.png'
import BarChartVertical from '@/components/Echart/BarChartVertical.vue'
+import { getDictByCode } from '@/api/system/dict'
// 每个展示块高度
const blockHeight = ref(300)
@@ -128,7 +129,21 @@
onBeforeMount(() => {
calcBlockSize()
})
+const secretLevelUserName = ref('') // 当前登录用户的密级
+const systemType = ref('') // 系统类型 sm/gm
onMounted(() => {
+ systemType.value = window.localStorage.getItem('systemType') as string
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex((item: { value: string | null }) => item.value === level)
+ if (index !== -1 && systemType.value === 'gm') {
+ secretLevelUserName.value = response.data[index].name
+ }
+ }
+ }
+ })
getTotal().then((res) => {
if (res.code === 200) {
list.value = res.data
@@ -154,7 +169,7 @@
- 设备总数
+ 设备总数-{{ secretLevelUserName }}
{{ list.devTotal }}
台
@@ -165,7 +180,7 @@
- 设备在线数
+ 设备在线数-{{ secretLevelUserName }}
{{ list.onlineNum }}
台
@@ -176,7 +191,7 @@
- 设备在线率
+ 设备在线率-{{ secretLevelUserName }}
{{ list.onlineRate }}
%
@@ -187,11 +202,11 @@
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
index 2eec0bd..289b46f 100644
--- a/src/store/modules/user.ts
+++ b/src/store/modules/user.ts
@@ -27,6 +27,7 @@
menus: [] as Menu.menu[], // 菜单权限
btns: [] as Menu.menu[], // 按钮权限
isLogout: 0, // 是否被退出登录
+ secretUserLevel: '', // 用户密级
}),
getters: {
isLogin: (state) => {
@@ -101,6 +102,7 @@
const menuStore = useMenuStore()
localStorage.removeItem('username')
localStorage.removeItem('token')
+ sessionStorage.removeItem('secretUserLevel')
this.username = ''
this.token = ''
this.roleList = []
@@ -132,6 +134,8 @@
this.id = res.data.id
this.username = res.data.account
this.name = res.data.name
+ this.secretUserLevel = res.data.secretLevel
+ window.sessionStorage.setItem('secretUserLevel', res.data.secretLevel)
resolve(res.data)
}).catch(() => {
reject('获取用户信息错误')
diff --git a/src/utils/download.ts b/src/utils/download.ts
index 88a45c5..2c7964f 100644
--- a/src/utils/download.ts
+++ b/src/utils/download.ts
@@ -1,3 +1,5 @@
+import { getDictByCode } from '@/api/system/dict'
+
/**
* 下载本地图片 href为 127.0.0.1/xxxx
* @param href 图片地址
@@ -120,48 +122,63 @@
* @param url 网络文件地址
* @param name 文件名
*/
-export async function download(url: string, name: string) {
- return new Promise((resolve) => {
- // 下载图片
- const photo = ['jpg', 'jpeg', 'png']
- const fileType = url.split('.')[url.split('.').length - 1]
- console.log(fileType, 'fileType')
- if (photo.includes(fileType)) {
- // 图片 将服务器图片地址转化成本地地址
- const image = new Image()
- image.setAttribute('crossOrigin', 'anonymous')
- image.src = url
- image.onload = () => {
- const canvas = document.createElement('canvas')
- canvas.width = image.width
- canvas.height = image.height
- const ctx = canvas.getContext('2d')
- ;(ctx as CanvasRenderingContext2D).drawImage(
- image,
- 0,
- 0,
- image.width,
- image.height,
+export async function download(url: string, getName: string) {
+ let name = getName || ''
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex(
+ (item: { value: string | null }) => item.value === level,
)
- canvas.toBlob((blob) => {
- const url = URL.createObjectURL(blob as Blob)
- downloadImg(url, name)
- // 用完释放URL对象
- URL.revokeObjectURL(url)
- console.log('111111111111111111')
- resolve(' ')
- console.log('2222222222')
- })
+ const systemType = window.localStorage.getItem('systemType') as string
+ if (index !== -1 && systemType === 'gm') {
+ name = `【${response.data[index].name}】${name}`
+ }
}
}
- else {
- // 预览一般都是用的a标签,文件下载用的window.open
- // 1.pdf文件路径放到window.open里面,点击是进行在线预览
- // 2.word文件和excel文件通过a标签打开时,是直接下载了
- // 将网络地址转化为 blob地址 并下载
- urlToBlob(url, name).then(() => {
- resolve(' ')
- })
- }
+ return new Promise((resolve) => {
+ // 下载图片
+ const photo = ['jpg', 'jpeg', 'png']
+ const fileType = url.split('.')[url.split('.').length - 1]
+ console.log(fileType, 'fileType')
+ if (photo.includes(fileType)) {
+ // 图片 将服务器图片地址转化成本地地址
+ const image = new Image()
+ image.setAttribute('crossOrigin', 'anonymous')
+ image.src = url
+ image.onload = () => {
+ const canvas = document.createElement('canvas')
+ canvas.width = image.width
+ canvas.height = image.height
+ const ctx = canvas.getContext('2d')
+ ;(ctx as CanvasRenderingContext2D).drawImage(
+ image,
+ 0,
+ 0,
+ image.width,
+ image.height,
+ )
+ canvas.toBlob((blob) => {
+ const url = URL.createObjectURL(blob as Blob)
+ downloadImg(url, name)
+ // 用完释放URL对象
+ URL.revokeObjectURL(url)
+ console.log('111111111111111111')
+ resolve(' ')
+ console.log('2222222222')
+ })
+ }
+ }
+ else {
+ // 预览一般都是用的a标签,文件下载用的window.open
+ // 1.pdf文件路径放到window.open里面,点击是进行在线预览
+ // 2.word文件和excel文件通过a标签打开时,是直接下载了
+ // 将网络地址转化为 blob地址 并下载
+ urlToBlob(url, name).then(() => {
+ resolve(' ')
+ })
+ }
+ })
})
}
diff --git a/src/utils/exportUtils.ts b/src/utils/exportUtils.ts
index e91b303..a58eaf5 100644
--- a/src/utils/exportUtils.ts
+++ b/src/utils/exportUtils.ts
@@ -1,22 +1,37 @@
+import { getDictByCode } from '@/api/system/dict'
+
/**
* 导出文件工具
* @param blob 文件
* @param fileName 导出文件名
*/
-export function exportFile(blob: Blob, fileName: string) {
- if (window.navigator && (window.navigator as any).msSaveOrOpenBlob) {
- (navigator as any).msSaveBlob(blob, fileName)
- }
- else {
- const downloadElement = document.createElement('a')
- const href = window.URL.createObjectURL(blob) // 创建下载的链接
- downloadElement.href = href
- downloadElement.download = fileName
- document.body.appendChild(downloadElement)
- downloadElement.click() // 点击下载
- document.body.removeChild(downloadElement) // 下载完成移除元素
- window.URL.revokeObjectURL(href) // 释放blob对象
- }
+export function exportFile(blob: Blob, getFileName: string) {
+ let fileName = getFileName || ''
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex((item: { value: string | null }) => item.value === level)
+ const systemType = window.localStorage.getItem('systemType') as string
+ if (index !== -1 && systemType === 'gm') {
+ fileName = `【${response.data[index].name}】${fileName}`
+ }
+ }
+ }
+ if (window.navigator && (window.navigator as any).msSaveOrOpenBlob) {
+ (navigator as any).msSaveBlob(blob, fileName)
+ }
+ else {
+ const downloadElement = document.createElement('a')
+ const href = window.URL.createObjectURL(blob) // 创建下载的链接
+ downloadElement.href = href
+ downloadElement.download = fileName
+ document.body.appendChild(downloadElement)
+ downloadElement.click() // 点击下载
+ document.body.removeChild(downloadElement) // 下载完成移除元素
+ window.URL.revokeObjectURL(href) // 释放blob对象
+ }
+ })
}
export const base64ToBlob = (dataurl) => {
diff --git a/src/views/alarm/dangerAssessment/assessment/list.vue b/src/views/alarm/dangerAssessment/assessment/list.vue
index 0814cf1..0038682 100644
--- a/src/views/alarm/dangerAssessment/assessment/list.vue
+++ b/src/views/alarm/dangerAssessment/assessment/list.vue
@@ -3,6 +3,7 @@
import { getCurrentInstance, ref } from 'vue'
import type { Ref } from 'vue'
import type { DateModelType } from 'element-plus'
+import { getDictByCode } from '@/api/system/dict'
import LineChart from '@/components/Echart/LineChart.vue'
import BarChartHorizontal from '@/components/Echart/BarChartHorizontal.vue'
import { getAreaDanger, getDangerCategory, getDeptAlarmDate, getDeptAlarmRecord, getDeptDanger } from '@/api/alarm/dangerAssessment/statistics'
@@ -188,7 +189,21 @@
onBeforeMount(() => {
calcBlockSize()
})
+const secretLevelUserName = ref('') // 当前登录用户的密级
+const systemType = ref('') // 系统类型 sm/gm
onMounted(() => {
+ systemType.value = window.localStorage.getItem('systemType') as string
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex((item: { value: string | null }) => item.value === level)
+ if (index !== -1 && systemType.value === 'gm') {
+ secretLevelUserName.value = response.data[index].name
+ }
+ }
+ }
+ })
fetchDangerCategory()
getLastMonthAlarm() // 单位近一个月报警分析
// getSafeCatogery() // 获取安全隐患类别
@@ -205,8 +220,8 @@
-
- {{ item.name }}
+
+ {{ item.name }}-{{ secretLevelUserName }}
{{ item.value }}
个
@@ -219,7 +234,7 @@
-
+
-
+
-
+
{
showEchart.value = !showEchart.value
}
+
+const secretLevelUserName = ref('')
+const systemType = ref('')
+onMounted(() => {
+ systemType.value = window.localStorage.getItem('systemType')
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex(item => item.value === level)
+ if (index !== -1 && systemType.value === 'gm') {
+ secretLevelUserName.value = response.data[index].name
+ }
+ }
+ }
+ })
+})
@@ -80,7 +98,7 @@
}"
>
-
+
@@ -94,15 +112,21 @@
-
隐患分类
+
+ 隐患分类-{{ secretLevelUserName }}
+
>
-
区域隐患分类
+
+ 区域隐患分类-{{ secretLevelUserName }}
+
-
单位隐患分布
+
+ 单位隐患分布-{{ secretLevelUserName }}
+
@@ -124,21 +148,29 @@
-
各区域设备数量
+
+ 各区域设备数量-{{ secretLevelUserName }}
+
-
各区域接入视频点位
+
+ 各区域接入视频点位-{{ secretLevelUserName }}
+
-
各单位接入视频点位
+
+ 各单位接入视频点位-{{ secretLevelUserName }}
+
-
关注对象
+
+ 关注对象-{{ secretLevelUserName }}
+
diff --git a/src/views/monitor/deviceManage/listDevice.vue b/src/views/monitor/deviceManage/listDevice.vue
index 13f04c5..bdd8cc9 100644
--- a/src/views/monitor/deviceManage/listDevice.vue
+++ b/src/views/monitor/deviceManage/listDevice.vue
@@ -28,6 +28,7 @@
const devTypeList = ref([]) as any
const total = ref(0)
const listQuery = reactive({ ...defaultQuery })
+// const secretUserLevelList = ref([])
// 搜索重置
function reset() {
@@ -84,6 +85,12 @@
// 模板下载
const templateDownload = () => {
+ // const level = window.sessionStorage.getItem('secretUserLevel')
+ // const index = secretUserLevelList.value.findIndex(item => item.value === level)
+ // let title = '设备导入模版.xlsx'
+ // if (index !== -1) {
+ // title = `【${secretUserLevelList.value[index].name}】${title}`
+ // }
download(`${window.localStorage.getItem('baseurl-safe')}/static/device.xlsx`, '设备导入模版.xlsx')
}
@@ -135,6 +142,12 @@
if (list.value.length > 0) {
exportListPage(listQuery).then((res) => {
const blob = new Blob([res.data])
+ // const level = window.sessionStorage.getItem('secretUserLevel')
+ // const index = secretUserLevelList.value.findIndex(item => item.value === level)
+ // let title = '设备列表.xlsx'
+ // if (index !== -1) {
+ // title = `【${secretUserLevelList.value[index].name}】${title}`
+ // }
exportFile(blob, '设备列表.xlsx')
})
}
@@ -179,6 +192,11 @@
}
onMounted(() => {
+ // getDictByCode('secretUserLevel').then((response) => {
+ // if (response.code === 200) {
+ // secretUserLevelList.value = response.data
+ // }
+ // })
getDictByCode('deviceType').then((response) => {
devTypeList.value = response.data
})
diff --git a/src/views/monitor/statistics/statistics.vue b/src/views/monitor/statistics/statistics.vue
index 2040929..ad51242 100644
--- a/src/views/monitor/statistics/statistics.vue
+++ b/src/views/monitor/statistics/statistics.vue
@@ -12,6 +12,7 @@
import sbzs from '@/assets/images/monitor/设备总数.png'
import sblxl from '@/assets/images/monitor/设备离线率.png'
import BarChartVertical from '@/components/Echart/BarChartVertical.vue'
+import { getDictByCode } from '@/api/system/dict'
// 每个展示块高度
const blockHeight = ref(300)
@@ -128,7 +129,21 @@
onBeforeMount(() => {
calcBlockSize()
})
+const secretLevelUserName = ref('') // 当前登录用户的密级
+const systemType = ref('') // 系统类型 sm/gm
onMounted(() => {
+ systemType.value = window.localStorage.getItem('systemType') as string
+ getDictByCode('secretUserLevel').then((response) => {
+ if (response.code === 200) {
+ if (Array.isArray(response.data) && response.data.length) {
+ const level = window.sessionStorage.getItem('secretUserLevel')
+ const index = response.data.findIndex((item: { value: string | null }) => item.value === level)
+ if (index !== -1 && systemType.value === 'gm') {
+ secretLevelUserName.value = response.data[index].name
+ }
+ }
+ }
+ })
getTotal().then((res) => {
if (res.code === 200) {
list.value = res.data
@@ -154,7 +169,7 @@
- 设备总数
+ 设备总数-{{ secretLevelUserName }}
{{ list.devTotal }}
台
@@ -165,7 +180,7 @@
- 设备在线数
+ 设备在线数-{{ secretLevelUserName }}
{{ list.onlineNum }}
台
@@ -176,7 +191,7 @@
- 设备在线率
+ 设备在线率-{{ secretLevelUserName }}
{{ list.onlineRate }}
%
@@ -187,11 +202,11 @@
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system/log/listLog.vue b/src/views/system/log/listLog.vue
index 480247c..f8eaa67 100644
--- a/src/views/system/log/listLog.vue
+++ b/src/views/system/log/listLog.vue
@@ -3,6 +3,8 @@
import { ElLoading, ElMessage, ElMessageBox } from 'element-plus'
import { Delete, Download } from '@element-plus/icons-vue'
import type { IlistQuery } from './log-interface'
+import detailDialog from './detailDialog.vue'
+import { getDictByCode } from '@/api/system/dict'
import {
bizExport,
delLog,
@@ -19,6 +21,8 @@
beginTime: '',
endTime: '',
// logType: '业务日志',
+ name: '', // 用户姓名
+ ip: '', // IP地址
offset: 1,
limit: 20,
sort: '',
@@ -44,6 +48,11 @@
align: 'center',
},
{
+ text: 'ip地址',
+ value: 'ip',
+ align: 'center',
+ },
+ {
text: '时间',
value: 'createTime',
width: 180,
@@ -62,6 +71,7 @@
const dialogFormVisible = ref(false)
const dialogStatus = ref('')
const logRate = ref('')
+const secretUserLevelList = ref([])
// 获取日志数据
const fetchData = (isNowPage: boolean) => {
@@ -85,15 +95,22 @@
fetchData(true)
+const detailDialogRef = ref()
// 打开详情对话框
const detail = (row: any) => {
- getBizLogDetail(row.id).then((res) => {
- if (res.code === 200) {
- ElMessageBox.alert(res.data, '详情', {
- confirmButtonText: '确定',
- })
- }
- })
+ if (row.message) {
+ detailDialogRef.value.initDialog(row.message)
+ }
+ else {
+ ElMessage.warning('此条日志没有详细信息')
+ }
+ // getBizLogDetail(row.id).then((res) => {
+ // if (res.code === 200) {
+ // // ElMessageBox.alert(res.data, '详情', {
+ // // confirmButtonText: '确定',
+ // // })
+ // }
+ // })
}
// 清空日志
@@ -153,6 +170,12 @@
offset: 1,
}
bizExport(params).then((res: any) => {
+ // const level = window.sessionStorage.getItem('secretUserLevel')
+ // const index = secretUserLevelList.value.findIndex(item => item.value === level)
+ // let title = '操作日志'
+ // if (index !== -1) {
+ // title = `【${secretUserLevelList.value[index].name}】${title}`
+ // }
exportFile(res.data, '操作日志')
loading.close()
})
@@ -177,18 +200,26 @@
listQuery.endTime = ''
}
})
+
+// onMounted(() => {
+// getDictByCode('secretUserLevel').then((response) => {
+// if (response.code === 200) {
+// secretUserLevelList.value = response.data
+// }
+// })
+// })
+
+
+
+
+ 日志存储:{{ logRate }}
+
-
-
-
-
- 日志存储:{{ logRate }}
-
@@ -199,6 +230,20 @@
/>
+
+
+
+
+
+
-
+
ㅤ详情ㅤㅤ
@@ -245,15 +290,20 @@
+
diff --git a/src/views/system/log/listLog.vue b/src/views/system/log/listLog.vue
index 480247c..f8eaa67 100644
--- a/src/views/system/log/listLog.vue
+++ b/src/views/system/log/listLog.vue
@@ -3,6 +3,8 @@
import { ElLoading, ElMessage, ElMessageBox } from 'element-plus'
import { Delete, Download } from '@element-plus/icons-vue'
import type { IlistQuery } from './log-interface'
+import detailDialog from './detailDialog.vue'
+import { getDictByCode } from '@/api/system/dict'
import {
bizExport,
delLog,
@@ -19,6 +21,8 @@
beginTime: '',
endTime: '',
// logType: '业务日志',
+ name: '', // 用户姓名
+ ip: '', // IP地址
offset: 1,
limit: 20,
sort: '',
@@ -44,6 +48,11 @@
align: 'center',
},
{
+ text: 'ip地址',
+ value: 'ip',
+ align: 'center',
+ },
+ {
text: '时间',
value: 'createTime',
width: 180,
@@ -62,6 +71,7 @@
const dialogFormVisible = ref(false)
const dialogStatus = ref('')
const logRate = ref('')
+const secretUserLevelList = ref([])
// 获取日志数据
const fetchData = (isNowPage: boolean) => {
@@ -85,15 +95,22 @@
fetchData(true)
+const detailDialogRef = ref()
// 打开详情对话框
const detail = (row: any) => {
- getBizLogDetail(row.id).then((res) => {
- if (res.code === 200) {
- ElMessageBox.alert(res.data, '详情', {
- confirmButtonText: '确定',
- })
- }
- })
+ if (row.message) {
+ detailDialogRef.value.initDialog(row.message)
+ }
+ else {
+ ElMessage.warning('此条日志没有详细信息')
+ }
+ // getBizLogDetail(row.id).then((res) => {
+ // if (res.code === 200) {
+ // // ElMessageBox.alert(res.data, '详情', {
+ // // confirmButtonText: '确定',
+ // // })
+ // }
+ // })
}
// 清空日志
@@ -153,6 +170,12 @@
offset: 1,
}
bizExport(params).then((res: any) => {
+ // const level = window.sessionStorage.getItem('secretUserLevel')
+ // const index = secretUserLevelList.value.findIndex(item => item.value === level)
+ // let title = '操作日志'
+ // if (index !== -1) {
+ // title = `【${secretUserLevelList.value[index].name}】${title}`
+ // }
exportFile(res.data, '操作日志')
loading.close()
})
@@ -177,18 +200,26 @@
listQuery.endTime = ''
}
})
+
+// onMounted(() => {
+// getDictByCode('secretUserLevel').then((response) => {
+// if (response.code === 200) {
+// secretUserLevelList.value = response.data
+// }
+// })
+// })
+
+
+
+
+ 日志存储:{{ logRate }}
+
-
-
-
-
- 日志存储:{{ logRate }}
-
@@ -199,6 +230,20 @@
/>
+
+
+
+
+
+
-
+
ㅤ详情ㅤㅤ
@@ -245,15 +290,20 @@
+
diff --git a/src/views/system/log/listLog.vue b/src/views/system/log/listLog.vue
index 480247c..f8eaa67 100644
--- a/src/views/system/log/listLog.vue
+++ b/src/views/system/log/listLog.vue
@@ -3,6 +3,8 @@
import { ElLoading, ElMessage, ElMessageBox } from 'element-plus'
import { Delete, Download } from '@element-plus/icons-vue'
import type { IlistQuery } from './log-interface'
+import detailDialog from './detailDialog.vue'
+import { getDictByCode } from '@/api/system/dict'
import {
bizExport,
delLog,
@@ -19,6 +21,8 @@
beginTime: '',
endTime: '',
// logType: '业务日志',
+ name: '', // 用户姓名
+ ip: '', // IP地址
offset: 1,
limit: 20,
sort: '',
@@ -44,6 +48,11 @@
align: 'center',
},
{
+ text: 'ip地址',
+ value: 'ip',
+ align: 'center',
+ },
+ {
text: '时间',
value: 'createTime',
width: 180,
@@ -62,6 +71,7 @@
const dialogFormVisible = ref(false)
const dialogStatus = ref('')
const logRate = ref('')
+const secretUserLevelList = ref([])
// 获取日志数据
const fetchData = (isNowPage: boolean) => {
@@ -85,15 +95,22 @@
fetchData(true)
+const detailDialogRef = ref()
// 打开详情对话框
const detail = (row: any) => {
- getBizLogDetail(row.id).then((res) => {
- if (res.code === 200) {
- ElMessageBox.alert(res.data, '详情', {
- confirmButtonText: '确定',
- })
- }
- })
+ if (row.message) {
+ detailDialogRef.value.initDialog(row.message)
+ }
+ else {
+ ElMessage.warning('此条日志没有详细信息')
+ }
+ // getBizLogDetail(row.id).then((res) => {
+ // if (res.code === 200) {
+ // // ElMessageBox.alert(res.data, '详情', {
+ // // confirmButtonText: '确定',
+ // // })
+ // }
+ // })
}
// 清空日志
@@ -153,6 +170,12 @@
offset: 1,
}
bizExport(params).then((res: any) => {
+ // const level = window.sessionStorage.getItem('secretUserLevel')
+ // const index = secretUserLevelList.value.findIndex(item => item.value === level)
+ // let title = '操作日志'
+ // if (index !== -1) {
+ // title = `【${secretUserLevelList.value[index].name}】${title}`
+ // }
exportFile(res.data, '操作日志')
loading.close()
})
@@ -177,18 +200,26 @@
listQuery.endTime = ''
}
})
+
+// onMounted(() => {
+// getDictByCode('secretUserLevel').then((response) => {
+// if (response.code === 200) {
+// secretUserLevelList.value = response.data
+// }
+// })
+// })
+
+
+
+
+ 日志存储:{{ logRate }}
+
-
-
-
-
- 日志存储:{{ logRate }}
-
@@ -199,6 +230,20 @@
/>
+
+
+
+
+
+
-
+
ㅤ详情ㅤㅤ
@@ -245,15 +290,20 @@
+