diff --git a/src/api/sys.js b/src/api/sys.js index 1f0ec2e..2f097f2 100644 --- a/src/api/sys.js +++ b/src/api/sys.js @@ -89,7 +89,7 @@ export const bmStatistics = (data) => { }); }; -// 模块排名统计 +// 模块排名统计 export const mkStatistics = (data) => { return request({ url: api + "/monitor/operlog/mkStatistics", @@ -106,3 +106,10 @@ export const useStatistics = (data) => { data }); }; +/** 获取是否红色名字,市情指领导、优秀信息员、优秀研判名字要变橙红色 */ +export const getUserIsRed = () => { + return request({ + url: '/mosty-api/mosty-gsxt' + "/xxcj/mjjf/sfgxys", + method: "GET" + }); +}; diff --git a/src/router/index.js b/src/router/index.js index ede7511..65ad6dc 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -23,122 +23,6 @@ export const privateRoutes = [ * 公开路由表 */ export const publicRoutes = [ - { - path: "/systemConfig", - component: layout, - name: "systemConfigModel", - redirect: "/dict/index", - meta: { - title: "系统管理", - icon: "article" - }, - children: [ - { - path: "/user/department-ist", - name: "departmentList", - component: () => import("@/views/backOfficeSystem/systemConfig/department-list/index"), - meta: { - title: "部门管理", - icon: "article-ranking" - } - }, - - { - path: "/user/userList", - name: "userList", - component: () => - import("@/views/backOfficeSystem/systemConfig/user-list/index"), - meta: { - title: "用户管理", - icon: "article-ranking" - } - }, - { - path: "/user/role", - name: "userRoleIndex", - component: () => - import("@/views/backOfficeSystem/systemConfig/role-list/index"), - meta: { - title: "角色列表", - icon: "article-ranking" - } - }, - { - path: "/user/menuList", - name: "menuList", - component: () => - import("@/views/backOfficeSystem/systemConfig/menu-list/index"), - meta: { - title: "菜单管理", - icon: "article-ranking" - } - }, - - { - path: "/dict/detail", - name: "dictDetail", - component: () => - import("@/views/backOfficeSystem/systemConfig/dict/detail"), - meta: { - title: "字典数据" - } - }, - { - path: "/dict/index", - name: "dictIndex", - component: () => - import("@/views/backOfficeSystem/systemConfig/dict/index"), - meta: { - title: "字典列表", - icon: "article-ranking" - } - }, - - { - path: "/user/deptAllocationUser/:id", - name: "deptAllocationUser", - component: () => - import( - "@/views/backOfficeSystem/systemConfig/department-list/deptAllocationUser" - ), - meta: { - title: "管理用户" - } - }, - { - path: "/user/allocationUser/:id", - name: "allocationUser", - component: () => - import( - "@/views/backOfficeSystem/systemConfig/role-list/allocationUser" - ), - meta: { - title: "分配用户" - } - }, - - { - path: "/user/systemConfig", - name: "systemConfig", - component: () => - import( - "@/views/backOfficeSystem/systemConfig/system-config-list/index" - ), - meta: { - title: "系统配置", - icon: "article-ranking" - } - }, { - path: "/calendar", - name: "calendar", - component: () => import("@/views/backOfficeSystem/calendar/index.vue"), - meta: { - title: "敏感节点", - icon: "article" - } - }, - ] - }, { path: "/oatuh_login", name: "oatuh_login", @@ -252,12 +136,12 @@ export const publicRoutes = [ // component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/centerHome/index"), // meta: { title: "预警中心大屏", icon: "article" }, // }, - { - path: "/warningBk", - name: "warningBk", - meta: { title: "布控预警", icon: "article" }, - component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/warningBk/index"), - }, + // { + // path: "/warningBk", + // name: "warningBk", + // meta: { title: "布控预警", icon: "article" }, + // component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/warningBk/index"), + // }, { path: "/identityWarning", @@ -306,12 +190,12 @@ export const publicRoutes = [ icon: "article" } }, - { - path: "/fouColorWarning", - name: "fouColorWarning", - meta: { title: "四色预警", icon: "article" }, - component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/fouColorWarning/index"), - }, + // { + // path: "/fouColorWarning", + // name: "fouColorWarning", + // meta: { title: "四色预警", icon: "article" }, + // component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/fouColorWarning/index"), + // }, { path: "/scoreRanking", name: "scoreRanking", @@ -441,15 +325,7 @@ export const publicRoutes = [ icon: "article" } }, - { - path: "/tsypHome_", - name: "tsypHome", - component: () => import("@/views/backOfficeSystem/JudgmentHome/tsypHome/index"), - meta: { - title: "数据监测", - icon: "article" - } - }, { + { path: "/ssemanticAnalysis", name: "semanticAnalysis", component: () => import("@/views/backOfficeSystem/SemanticAnalysis/index.vue"), @@ -485,31 +361,6 @@ export const publicRoutes = [ } ] }, - { - path: "/dataMonitor", - name: "dataMonitor", - meta: { title: "数据监控", icon: "article" }, - children: [ - { - path: "/resourceMonitoring", - name: "resourceMonitoring", - component: () => import("@/views/backOfficeSystem/dataMonitor/resourceMonitoring/index.vue"), - meta: { - title: "数据资源检测", - icon: "article" - } - }, - // { - // path: "/onlineUserMonitoring", - // name: "onlineUserMonitoring", - // component: () => import("@/views/backOfficeSystem/dataMonitor/onlineUserMonitoring/index.vue"), - // meta: { - // title: "在线用户监控", - // icon: "article" - // } - // } - ] - }, { path: "/IntelligentControl", name: "IntelligentControl", @@ -736,6 +587,15 @@ export const publicRoutes = [ }, children: [ { + path: "/ResearchHome", + name: "ResearchHome", + component: () => import("@/views/backOfficeSystem/JudgmentHome/ResearchHome/index"), + meta: { + title: "智能研判", + icon: "article" + } + }, + { path: "/dataReduction", name: "dataReduction", component: () => import("@/views/backOfficeSystem/JudgmentHome/dataReduction/index"), @@ -744,44 +604,34 @@ export const publicRoutes = [ icon: "article" } }, + // { + // path: "/situationHome", + // name: "situationHome", + // component: () => import("@/views/backOfficeSystem/JudgmentHome/situationHome/index"), + // meta: { + // title: "战略研判", + // icon: "article" + // } + // }, + // 后面写的研判 { - path: "/ResearchHome", - name: "ResearchHome", - component: () => import("@/views/backOfficeSystem/JudgmentHome/ResearchHome/index"), + path: "/tacticalResearch", + name: "tacticalResearch", + component: () => import("@/views/backOfficeSystem/JudgmentHome/tacticalResearch/index.vue"), meta: { title: "战术研判", icon: "article" } }, { - path: "/situationHome", - name: "situationHome", - component: () => import("@/views/backOfficeSystem/JudgmentHome/situationHome/index"), + path: "/strategicResearch", + name: "strategicResearch", + component: () => import("@/views/backOfficeSystem/JudgmentHome/strategicResearch/index.vue"), meta: { title: "战略研判", icon: "article" } }, - - // 后面写的研判 - // { - // path: "/tacticalResearch", - // name: "tacticalResearch", - // component: () => import("@/views/backOfficeSystem/JudgmentHome/tacticalResearch/index.vue"), - // meta: { - // title: "战术研判", - // icon: "article" - // } - // }, - // { - // path: "/strategicResearch", - // name: "strategicResearch", - // component: () => import("@/views/backOfficeSystem/JudgmentHome/strategicResearch/index.vue"), - // meta: { - // title: "战略研判", - // icon: "article" - // } - // }, { path: "/judgmentCommand", name: "judgmentCommand", @@ -930,6 +780,147 @@ export const publicRoutes = [ icon: "article" } }, + { + path: "/dataMonitor", + name: "dataMonitor", + meta: { title: "数据监控", icon: "article" }, + children: [ + { + path: "/resourceMonitoring", + name: "resourceMonitoring", + component: () => import("@/views/backOfficeSystem/dataMonitor/resourceMonitoring/index.vue"), + meta: { + title: "数据资源检测", + icon: "article" + } + }, + { + path: "/onlineUserMonitoring", + name: "onlineUserMonitoring", + component: () => import("@/views/backOfficeSystem/dataMonitor/onlineUserMonitoring/index.vue"), + meta: { + title: "在线用户监控", + icon: "article" + } + } + ] + }, + { + path: "/systemConfig", + component: layout, + name: "systemConfigModel", + redirect: "/dict/index", + meta: { + title: "系统管理", + icon: "article" + }, + children: [ + { + path: "/user/department-ist", + name: "departmentList", + component: () => import("@/views/backOfficeSystem/systemConfig/department-list/index"), + meta: { + title: "部门管理", + icon: "article-ranking" + } + }, + + { + path: "/user/userList", + name: "userList", + component: () => + import("@/views/backOfficeSystem/systemConfig/user-list/index"), + meta: { + title: "用户管理", + icon: "article-ranking" + } + }, + { + path: "/user/role", + name: "userRoleIndex", + component: () => + import("@/views/backOfficeSystem/systemConfig/role-list/index"), + meta: { + title: "角色列表", + icon: "article-ranking" + } + }, + { + path: "/user/menuList", + name: "menuList", + component: () => + import("@/views/backOfficeSystem/systemConfig/menu-list/index"), + meta: { + title: "菜单管理", + icon: "article-ranking" + } + }, + + { + path: "/dict/detail", + name: "dictDetail", + component: () => + import("@/views/backOfficeSystem/systemConfig/dict/detail"), + meta: { + title: "字典数据" + } + }, + { + path: "/dict/index", + name: "dictIndex", + component: () => + import("@/views/backOfficeSystem/systemConfig/dict/index"), + meta: { + title: "字典列表", + icon: "article-ranking" + } + }, + + { + path: "/user/deptAllocationUser/:id", + name: "deptAllocationUser", + component: () => + import( + "@/views/backOfficeSystem/systemConfig/department-list/deptAllocationUser" + ), + meta: { + title: "管理用户" + } + }, + { + path: "/user/allocationUser/:id", + name: "allocationUser", + component: () => + import( + "@/views/backOfficeSystem/systemConfig/role-list/allocationUser" + ), + meta: { + title: "分配用户" + } + }, + + { + path: "/user/systemConfig", + name: "systemConfig", + component: () => + import( + "@/views/backOfficeSystem/systemConfig/system-config-list/index" + ), + meta: { + title: "系统配置", + icon: "article-ranking" + } + }, { + path: "/calendar", + name: "calendar", + component: () => import("@/views/backOfficeSystem/calendar/index.vue"), + meta: { + title: "敏感节点", + icon: "article" + } + }, + ] + }, { path: "/rests", name: "rests", @@ -938,19 +929,36 @@ export const publicRoutes = [ icon: "article" }, children: [ - // { - // path: "/fouColorWarning", - // name: "fouColorWarning", - // meta: { title: "四色预警", icon: "article" }, - // component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/fouColorWarning/index"), - // }, { path: "/CollectCrculate", name: "CollectCrculate", component: () => import("@/views/backOfficeSystem/HumanIntelligence/CollectCrculate/index"), - meta: { title: "信息采集", icon: "article" }, + meta: { title: "情报采集", icon: "article" }, }, - + { + path: "/fouColorWarning", + name: "fouColorWarning", + meta: { title: "四色预警", icon: "article" }, + component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/fouColorWarning/index"), + }, + // { + // path: "/ResearchHome", + // name: "ResearchHome", + // component: () => import("@/views/backOfficeSystem/JudgmentHome/ResearchHome/index"), + // meta: { + // title: "战术研判", + // icon: "article" + // } + // }, + // { + // path: "/situationHome", + // name: "situationHome", + // component: () => import("@/views/backOfficeSystem/JudgmentHome/situationHome/index"), + // meta: { + // title: "战略研判", + // icon: "article" + // } + // }, ] }, ] diff --git a/src/utils/dict.js b/src/utils/dict.js index 20261c9..3cec759 100644 --- a/src/utils/dict.js +++ b/src/utils/dict.js @@ -1,4 +1,4 @@ -import { ref, toRefs } from 'vue'; +import { ref, toRefs, isRef } from 'vue'; import { getSysDictByCode } from '@/api/sysDict' //引入封装数字字典接口 import { getLocalDic } from "@/utils/localDic/index.js" @@ -45,7 +45,7 @@ export function getDict(...args) { p.children = p.itemList }) res.value[d] = result.itemList - // console.log(`${d} - ${result.zdmc} :`, result.itemList); + // }) } @@ -142,3 +142,38 @@ export function IdCard(IdCard, type) { } return user } + + +/** + *翻译字典数据 + * @export + * @param {*} dm + * @param {*} array + */ +export function getDictValue(dm, array) { + let item = array.value.find(item => { + if (item.value) { + return item.value == dm; + } else if (item.dm) { + return item.dm == dm; + } + }) + return item ? item.label : "" +} + +/** 获取多个字典值(一个值也可以) 字典内容 value-label + * @param {String} 要查的值 + * @param {Array} dict 字典内容 + */ +export function getMultiDictVal(values, dict) { + if (typeof values === 'string' && values?.length) values = values.split(',') + if (!Array.isArray(values)) return '' + if (isRef(dict)) dict = dict.value + if (!Array.isArray(dict)) return '' + + return values.map(v => { + const item = dict.find(item => item.value === v); + return item ? item.label : v; + }).join(','); +} + diff --git a/src/utils/exportExcel.js b/src/utils/exportExcel.js new file mode 100644 index 0000000..4ca14d9 --- /dev/null +++ b/src/utils/exportExcel.js @@ -0,0 +1,56 @@ +import * as XLSX from "xlsx"; + + + +/** + * 导出Excel(简单的导出) + * @param {Array} data 二维数据 + * @param {String} fileName 文件名 + */ +export function easyExport(data, fileName = '导出文件') { + const wb = XLSX.utils.book_new(); + // 二维数组例子:[ ['姓名', '年龄', '城市'], ['张三', 25, '北京'], ['李四', 30, '上海'] ]; + const ws = XLSX.utils.aoa_to_sheet(data); // aoa_to_sheet 方法将二维数组转换为工作表 + + + + // 宽度调整 + ws['!cols'] = Array(data?.[0]?.length || 0).fill({ wpx: 80 }); + + XLSX.utils.book_append_sheet(wb, ws, "Sheet1"); + XLSX.writeFile(wb, fileName + '.xlsx'); +} + + + +/** + * 根据对象导出Excel + * @param {Object} titleObj 标题对象 {key: '标题', key2: '标题2'} + * @param {Array} dataArr 数据数组 例子 [{key: '张三', key2: '25'}, {key: '李四', key2: '30'}] + * @param {String} fileName 文件名 + */ +export function exportExlByObj(titleObj, dataArr, fileName = '导出文件') { + dataArr = Array.isArray(dataArr) ? [...dataArr] : [] + /** 列表标题数组 */ + const titleArr = [Object.values(titleObj)]; + const sheetHead = [fileName] + /** 转二维数据 */ + const toNeedArr = (titleObj = {}, tableData = []) => { + return tableData.map(row => { + const rowArr = [] + Object.keys(titleObj || {}).map(key => { + const cellVal = row[key] || '' + if (typeof cellVal !== 'string') String(cellVal) + rowArr.push(cellVal) + }) + return rowArr + }) + } + /** @param {Array} 表格数据 (二维数组) */ + const tableData = toNeedArr(titleObj, dataArr); + // 合并标题和数据 + const finalData = [...titleArr, ...tableData]; + // 合并标题 + easyExport(finalData, fileName); + +} diff --git a/src/views/backOfficeSystem/fourColorManage/warningControl/behaviorWarning/index.vue b/src/views/backOfficeSystem/fourColorManage/warningControl/behaviorWarning/index.vue index 0ca1135..1c39ee0 100644 --- a/src/views/backOfficeSystem/fourColorManage/warningControl/behaviorWarning/index.vue +++ b/src/views/backOfficeSystem/fourColorManage/warningControl/behaviorWarning/index.vue @@ -10,6 +10,7 @@ 搜索 关闭搜索 + 导出 @@ -19,16 +20,22 @@
+ :key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth" + :expand="true" @chooseData="handleChooseData"> -