adtec-core-package 2.2.9 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +36 -36
- package/package.json +71 -71
- package/src/api/BasicApi.ts +26 -26
- package/src/api/DeptInfoApi.ts +19 -19
- package/src/api/DocumentApi.ts +27 -27
- package/src/api/EmployeeInfoApi.ts +17 -17
- package/src/api/SysDictCacheApi.ts +29 -29
- package/src/api/SysUserApi.ts +35 -35
- package/src/api/framework.ts +12 -12
- package/src/api/workflow/workflow.ts +31 -31
- package/src/api/workflow/workflowInstApi.ts +72 -72
- package/src/assets/style/ant.scss +19 -19
- package/src/assets/style/index.less +180 -180
- package/src/components/ElCardList.vue +64 -64
- package/src/components/ElFlex/ElFlex.vue +297 -297
- package/src/components/ElTotalTools.vue +70 -70
- package/src/components/OperationAuth/operationAuth.vue +32 -32
- package/src/components/RichTextEditor/RichTextEditor.vue +414 -414
- package/src/components/Scrollbars/ElScrollbars.vue +21 -21
- package/src/components/Search/ElIconSearch.vue +267 -267
- package/src/components/Search/ElSearch.vue +154 -154
- package/src/components/SelectInDicators/SelectInDicators.vue +225 -225
- package/src/components/SelectInDicators/api/DataIndicatorsApi.ts +28 -28
- package/src/components/SelectInDicators/interface/IComIndex.ts +26 -26
- package/src/components/SelectInDicators/interface/IComIndexAttri.ts +18 -18
- package/src/components/Table/ElTableColumnDynamic.vue +25 -25
- package/src/components/Table/ElTableColumnEdit.vue +265 -265
- package/src/components/Table/ElTableTool.ts +37 -37
- package/src/components/Title/ElTitle.vue +53 -53
- package/src/components/autoToolTip/ElAutoToolTip.vue +62 -62
- package/src/components/baseEcharts/index.vue +48 -48
- package/src/components/bpmntree/api/modules/role.ts +31 -31
- package/src/components/bpmntree/api/modules/user.ts +17 -17
- package/src/components/bpmntree/components/AdvancedFilter/Operator.vue +112 -112
- package/src/components/bpmntree/components/AdvancedFilter/Trigger.vue +23 -23
- package/src/components/bpmntree/components/AdvancedFilter/index.vue +230 -230
- package/src/components/bpmntree/components/AdvancedFilter/type.ts +20 -20
- package/src/components/bpmntree/components/FlowIcon/index.scss +7 -7
- package/src/components/bpmntree/components/FlowIcon/index.tsx +68 -68
- package/src/components/bpmntree/components/Render/render.vue +90 -90
- package/src/components/bpmntree/components/Render/type.ts +12 -12
- package/src/components/bpmntree/components/RoleSelector/RolePicker.vue +264 -264
- package/src/components/bpmntree/components/RoleSelector/RoleTag.vue +48 -48
- package/src/components/bpmntree/components/RoleSelector/index.vue +113 -113
- package/src/components/bpmntree/components/UserSelector/UserTag.vue +73 -73
- package/src/components/bpmntree/components/UserSelector/index.vue +140 -140
- package/src/components/bpmntree/hooks/useDraggableScroll.ts +44 -44
- package/src/components/bpmntree/typings/index.d.ts +1 -1
- package/src/components/bpmntree/views/flowDesign/index.vue +653 -653
- package/src/components/bpmntree/views/flowDesign/nodes/Add.vue +184 -184
- package/src/components/bpmntree/views/flowDesign/nodes/ApprovalNode.vue +127 -127
- package/src/components/bpmntree/views/flowDesign/nodes/CcNode.vue +93 -93
- package/src/components/bpmntree/views/flowDesign/nodes/ConcurrentNode.vue +61 -61
- package/src/components/bpmntree/views/flowDesign/nodes/ConditionNode.vue +60 -60
- package/src/components/bpmntree/views/flowDesign/nodes/EndNode.vue +80 -80
- package/src/components/bpmntree/views/flowDesign/nodes/ExclusiveNode.vue +20 -20
- package/src/components/bpmntree/views/flowDesign/nodes/GatewayNode.vue +173 -173
- package/src/components/bpmntree/views/flowDesign/nodes/InclusiveNode.vue +20 -20
- package/src/components/bpmntree/views/flowDesign/nodes/JumpNode.vue +49 -49
- package/src/components/bpmntree/views/flowDesign/nodes/Node.vue +346 -346
- package/src/components/bpmntree/views/flowDesign/nodes/NotifyNode.vue +115 -115
- package/src/components/bpmntree/views/flowDesign/nodes/ParallelNode.vue +20 -20
- package/src/components/bpmntree/views/flowDesign/nodes/PopoverView.vue +78 -78
- package/src/components/bpmntree/views/flowDesign/nodes/StartNode.vue +84 -84
- package/src/components/bpmntree/views/flowDesign/nodes/TimerNode.vue +50 -50
- package/src/components/bpmntree/views/flowDesign/nodes/TreeNode.vue +45 -45
- package/src/components/bpmntree/views/flowDesign/nodes/type.ts +204 -196
- package/src/components/bpmntree/views/flowDesign/panels/ApprovalPanel.vue +581 -553
- package/src/components/bpmntree/views/flowDesign/panels/AssigneePanel.vue +120 -120
- package/src/components/bpmntree/views/flowDesign/panels/CcPanel.vue +99 -99
- package/src/components/bpmntree/views/flowDesign/panels/ConditionPanel.vue +41 -41
- package/src/components/bpmntree/views/flowDesign/panels/EndPanel.vue +18 -18
- package/src/components/bpmntree/views/flowDesign/panels/ExecutionListeners.vue +110 -110
- package/src/components/bpmntree/views/flowDesign/panels/JumpPanel.vue +32 -32
- package/src/components/bpmntree/views/flowDesign/panels/NotifyPanel.vue +101 -101
- package/src/components/bpmntree/views/flowDesign/panels/ParaPanel.vue +248 -248
- package/src/components/bpmntree/views/flowDesign/panels/StartPanel.vue +160 -160
- package/src/components/bpmntree/views/flowDesign/panels/TaskListeners.vue +110 -110
- package/src/components/bpmntree/views/flowDesign/panels/TimerPanel.vue +51 -51
- package/src/components/bpmntree/views/flowDesign/panels/index.vue +85 -85
- package/src/components/bpmntree/views/view.index.vue +291 -291
- package/src/components/business/comp.selectUser.vue +60 -60
- package/src/components/business/comp.userForm.vue +311 -311
- package/src/components/business/userSelect.vue +413 -413
- package/src/components/icon/ElIconBtn.vue +243 -243
- package/src/components/kFrame/IframeOptions.ts +116 -116
- package/src/components/kFrame/KFrame.vue +161 -161
- package/src/components/tooltip/index.ts +11 -11
- package/src/components/tooltip/src/tooltip.ts +518 -518
- package/src/components/upload/ElUploads.vue +364 -364
- package/src/components/upload/FileView.vue +214 -214
- package/src/components/upload/FileViewComponents.vue +56 -56
- package/src/components/vxeGrid/index.vue +36 -36
- package/src/components/workflow/TaskOperation.vue +241 -241
- package/src/components/workflow/WorkflowTodoDialog.vue +87 -83
- package/src/components/workflow/components/AddOrMinusMultiDialog.vue +159 -159
- package/src/components/workflow/components/CheckDialog.vue +350 -350
- package/src/components/workflow/components/ProcessDetailComp.vue +149 -149
- package/src/components/workflow/components/ProcessDetailDialog.vue +129 -129
- package/src/components/workflow/components/ProcessInstance.vue +117 -117
- package/src/components/workflow/components/ProcessInstanceStep.vue +266 -266
- package/src/components/workflow/components/SelectAssigneeDialog.vue +109 -109
- package/src/components/workflow/components/SelectReturnActivityDialog.vue +104 -104
- package/src/config/ElementPlusConfig.ts +95 -95
- package/src/config/VxeTableConfig.ts +254 -254
- package/src/css/elementUI/autocomplete.scss +89 -89
- package/src/css/elementUI/checkbox.scss +298 -298
- package/src/css/elementUI/common/var.scss +1549 -1549
- package/src/css/elementUI/date-picker/picker.scss +219 -219
- package/src/css/elementUI/descriptions.scss +152 -152
- package/src/css/elementUI/drawer.scss +164 -164
- package/src/css/elementUI/radio.scss +215 -215
- package/src/css/elementUI/table.scss +697 -697
- package/src/css/elementUI/tabs.scss +659 -659
- package/src/css/vxeTableUI/all.scss +9 -9
- package/src/css/vxeTableUI/base.scss +16 -16
- package/src/css/vxeTableUI/components/colgroup.scss +0 -0
- package/src/css/vxeTableUI/components/column.scss +0 -0
- package/src/css/vxeTableUI/components/grid.scss +83 -83
- package/src/css/vxeTableUI/components/icon.scss +1017 -1017
- package/src/css/vxeTableUI/components/iconTable.scss +205 -205
- package/src/css/vxeTableUI/components/old-icon.scss +715 -715
- package/src/css/vxeTableUI/components/table-module/all.scss +6 -6
- package/src/css/vxeTableUI/components/table-module/custom.scss +490 -490
- package/src/css/vxeTableUI/components/table-module/edit.scss +0 -0
- package/src/css/vxeTableUI/components/table-module/export.scss +130 -130
- package/src/css/vxeTableUI/components/table-module/filter.scss +127 -127
- package/src/css/vxeTableUI/components/table-module/keyboard.scss +0 -0
- package/src/css/vxeTableUI/components/table-module/menu.scss +85 -85
- package/src/css/vxeTableUI/components/table-module/validator.scss +0 -0
- package/src/css/vxeTableUI/components/table.scss +2256 -2256
- package/src/css/vxeTableUI/components/toolbar.scss +99 -99
- package/src/css/vxeTableUI/components/ui.scss +0 -0
- package/src/css/vxeTableUI/components/v-x-e-table.scss +0 -0
- package/src/css/vxeTableUI/cssvar.scss +2 -2
- package/src/css/vxeTableUI/default.scss +2 -2
- package/src/css/vxeTableUI/helpers/baseMixin.scss +82 -82
- package/src/css/vxeTableUI/icon/iconfont.ttf +0 -0
- package/src/css/vxeTableUI/icon/iconfont.woff +0 -0
- package/src/css/vxeTableUI/icon/iconfont.woff2 +0 -0
- package/src/css/vxeTableUI/index.scss +4 -4
- package/src/css/vxeTableUI/modules.scss +5 -5
- package/src/css/vxeTableUI/theme/base.scss +88 -88
- package/src/css/vxeTableUI/theme/dark.scss +46 -46
- package/src/css/vxeTableUI/theme/light.scss +41 -41
- package/src/css/vxeTableUI/variable.scss +41 -41
- package/src/directives/vKeydown.ts +91 -91
- package/src/hooks/useDictHooks.ts +119 -119
- package/src/hooks/useEcharts.ts +58 -58
- package/src/hooks/useFileView.ts +11 -11
- package/src/hooks/useListenerHooks.ts +137 -137
- package/src/hooks/useMessageHooks.ts +132 -132
- package/src/hooks/useOpenNewMenu.ts +30 -30
- package/src/hooks/usePermissionHooks.ts +139 -139
- package/src/hooks/usePermissionToolHooks.ts +21 -21
- package/src/hooks/useResetRefHooks.ts +18 -18
- package/src/hooks/userWorkflowHooks.ts +106 -106
- package/src/hooks/workflowTodo.ts +85 -85
- package/src/interface/BaseEntity.ts +30 -30
- package/src/interface/IMdmDept.ts +84 -84
- package/src/interface/IMdmEmployee.ts +153 -153
- package/src/interface/IMdmEmployeeQuery.ts +21 -21
- package/src/interface/IMdmOrg.ts +29 -29
- package/src/interface/IMdmOrgQuery.ts +13 -13
- package/src/interface/IOrgDeptInfo.ts +12 -12
- package/src/interface/ISortList.ts +6 -6
- package/src/interface/ISysDictDataCacheVo.ts +46 -46
- package/src/interface/ISysDictType.ts +37 -37
- package/src/interface/ISysMenuDataVo.ts +22 -22
- package/src/interface/ISysMenuInfoVo.ts +83 -83
- package/src/interface/ISysMenuOperationVo.ts +21 -21
- package/src/interface/ISysUploadFiles.ts +16 -16
- package/src/interface/ISysUserInfo.ts +70 -70
- package/src/interface/IUserBaseInfo.ts +90 -90
- package/src/interface/IUserPermissionVo.ts +41 -41
- package/src/interface/IVxeTable.ts +1 -1
- package/src/interface/Message.ts +73 -73
- package/src/interface/PageData.ts +17 -17
- package/src/interface/ResponseData.ts +16 -16
- package/src/interface/dictMapType.ts +11 -11
- package/src/interface/enum/MessageEnum.ts +41 -41
- package/src/interface/workflow/IWfProcessDefVo.ts +14 -14
- package/src/interface/workflow/IWfReturnNodeVo.ts +16 -16
- package/src/interface/workflow/IWfTaskAskVo.ts +65 -65
- package/src/interface/workflow/IWfTaskQueryVo.ts +30 -30
- package/src/interface/workflow/IWfTaskUsersVo.ts +21 -21
- package/src/interface/workflow/IWfTaskVo.ts +188 -187
- package/src/interface/workflow/workflow.ts +22 -22
- package/src/mixin/globalMixin.ts +48 -48
- package/src/packages/index.ts +18 -18
- package/src/packages/text.vue +13 -13
- package/src/plugins/echartsConfig.ts +74 -74
- package/src/plugins/plugins.ts +12 -12
- package/src/plugins/renderDialog.ts +74 -74
- package/src/stores/dictStore.ts +51 -51
- package/src/stores/messageStore.ts +49 -49
- package/src/stores/permissionStore.ts +112 -112
- package/src/stores/storeConfig.ts +23 -23
- package/src/stores/userInfoStore.ts +31 -31
- package/src/utils/AxiosConfig.ts +226 -226
- package/src/utils/FrameworkUtils.ts +358 -358
- package/src/utils/commonUtils.ts +335 -335
- package/src/utils/encrypt.ts +18 -18
- package/src/utils/modules.ts +8 -8
- package/src/utils/request.ts +76 -76
- package/src/utils/tree.ts +50 -50
|
@@ -1,132 +1,132 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Create by丁盼
|
|
3
|
-
* 说明: useMessageHooks
|
|
4
|
-
* 创建时间: 2024/9/3 下午5:27
|
|
5
|
-
* 修改时间: 2024/9/3 下午5:27
|
|
6
|
-
*/
|
|
7
|
-
//@ts-ignore
|
|
8
|
-
import io from 'socket.io-client'
|
|
9
|
-
import type { ISysMessageVo } from '../interface/Message'
|
|
10
|
-
import { messageStore } from '../stores/messageStore'
|
|
11
|
-
import { ElMessage, ElNotification } from 'element-plus'
|
|
12
|
-
import { useEventBus } from '@vueuse/core'
|
|
13
|
-
export default function useMessageHooks() {
|
|
14
|
-
// @ts-ignore
|
|
15
|
-
const connect = () => {
|
|
16
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
17
|
-
// @ts-ignore
|
|
18
|
-
window.socketIo.connect()
|
|
19
|
-
}
|
|
20
|
-
const bus = useEventBus<ISysMessageVo>('messageClick')
|
|
21
|
-
const message = messageStore()
|
|
22
|
-
const createSocket = () => {
|
|
23
|
-
const socket = io(import.meta.env.VITE_SOCKETIO_URL, {
|
|
24
|
-
query: {
|
|
25
|
-
token: sessionStorage.getItem('Authorization'),
|
|
26
|
-
refreshToken: sessionStorage.getItem('refreshToken'),
|
|
27
|
-
sessionId: sessionStorage.getItem('sessionId'),
|
|
28
|
-
},
|
|
29
|
-
path: '/socket.io/',
|
|
30
|
-
transports: ['websocket', 'polling'],
|
|
31
|
-
autoConnect: false,
|
|
32
|
-
})
|
|
33
|
-
|
|
34
|
-
const server_response = (res: any) => {}
|
|
35
|
-
socket.off('server_response', server_response)
|
|
36
|
-
socket.on('server_response', server_response)
|
|
37
|
-
const connect = () => {
|
|
38
|
-
message.clearSysMessage()
|
|
39
|
-
//连接成功 获取离线数据UserExpireMessageOnEvent
|
|
40
|
-
socket.emit('UserExpireMessageOnEvent')
|
|
41
|
-
}
|
|
42
|
-
socket.off('connect', connect)
|
|
43
|
-
socket.on('connect', connect)
|
|
44
|
-
socket.on('user_Offline', () => {
|
|
45
|
-
console.log('user offline')
|
|
46
|
-
ElMessage.warning('您已被强制下线,即将跳转至登录页,请重新登录')
|
|
47
|
-
setTimeout(() => {
|
|
48
|
-
window.location.href = '/'
|
|
49
|
-
}, 2000)
|
|
50
|
-
})
|
|
51
|
-
|
|
52
|
-
const message_accept = (res: ISysMessageVo) => {
|
|
53
|
-
// if (res.params) {
|
|
54
|
-
// res.params = JSON.parse(res.params + '')
|
|
55
|
-
// }
|
|
56
|
-
let messageType = '通知'
|
|
57
|
-
if (res.messageType === 1) {
|
|
58
|
-
messageType = '消息'
|
|
59
|
-
} else if (res.messageType === 2) {
|
|
60
|
-
messageType = '待办'
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
const notif = ElNotification({
|
|
64
|
-
duration: 2000,
|
|
65
|
-
dangerouslyUseHTMLString: true,
|
|
66
|
-
onClick: () => {
|
|
67
|
-
bus.emit(res)
|
|
68
|
-
notif.close()
|
|
69
|
-
},
|
|
70
|
-
title: messageType,
|
|
71
|
-
message: res.title,
|
|
72
|
-
})
|
|
73
|
-
message.setSysMessage(res)
|
|
74
|
-
}
|
|
75
|
-
socket.off('message_accept', message_accept)
|
|
76
|
-
socket.on('message_accept', message_accept)
|
|
77
|
-
const expire_Message = (res: ISysMessageVo[]) => {
|
|
78
|
-
res.forEach((item) => {
|
|
79
|
-
message.setSysMessage(item)
|
|
80
|
-
})
|
|
81
|
-
}
|
|
82
|
-
socket.off('expire_Message', expire_Message)
|
|
83
|
-
socket.on('expire_Message', expire_Message)
|
|
84
|
-
//@ts-ignore
|
|
85
|
-
window.socketIo = socket
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* 接收方法注册
|
|
89
|
-
*/
|
|
90
|
-
const registerResponseEvent = (eventName: string, event: Function) => {
|
|
91
|
-
//@ts-ignore
|
|
92
|
-
window.socketIo.on(eventName, event)
|
|
93
|
-
}
|
|
94
|
-
const close = () => {
|
|
95
|
-
//@ts-ignore
|
|
96
|
-
window.socketIo.close()
|
|
97
|
-
message.clearSysMessage()
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* 消息发送
|
|
101
|
-
* @param msg
|
|
102
|
-
*/
|
|
103
|
-
const messageSend = (msg: ISysMessageVo) => {
|
|
104
|
-
//@ts-ignore
|
|
105
|
-
window.socketIo.emit('messageSend', JSON.stringify(msg))
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* 设置消息已读
|
|
109
|
-
* @constructor
|
|
110
|
-
*/
|
|
111
|
-
const setMessageRead = (msg: ISysMessageVo) => {
|
|
112
|
-
//@ts-ignore
|
|
113
|
-
window.socketIo.emit('setMessageRead', JSON.stringify(msg))
|
|
114
|
-
message.setSysMessageStatus(msg)
|
|
115
|
-
}
|
|
116
|
-
const setMessageReadAll = () => {
|
|
117
|
-
message.getMessageList.forEach((item) => {
|
|
118
|
-
//@ts-ignore
|
|
119
|
-
window.socketIo.emit('setMessageRead', JSON.stringify(item))
|
|
120
|
-
})
|
|
121
|
-
message.clearSysMessage()
|
|
122
|
-
}
|
|
123
|
-
return {
|
|
124
|
-
close,
|
|
125
|
-
connect,
|
|
126
|
-
createSocket,
|
|
127
|
-
messageSend,
|
|
128
|
-
registerResponseEvent,
|
|
129
|
-
setMessageRead,
|
|
130
|
-
setMessageReadAll,
|
|
131
|
-
}
|
|
132
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Create by丁盼
|
|
3
|
+
* 说明: useMessageHooks
|
|
4
|
+
* 创建时间: 2024/9/3 下午5:27
|
|
5
|
+
* 修改时间: 2024/9/3 下午5:27
|
|
6
|
+
*/
|
|
7
|
+
//@ts-ignore
|
|
8
|
+
import io from 'socket.io-client'
|
|
9
|
+
import type { ISysMessageVo } from '../interface/Message'
|
|
10
|
+
import { messageStore } from '../stores/messageStore'
|
|
11
|
+
import { ElMessage, ElNotification } from 'element-plus'
|
|
12
|
+
import { useEventBus } from '@vueuse/core'
|
|
13
|
+
export default function useMessageHooks() {
|
|
14
|
+
// @ts-ignore
|
|
15
|
+
const connect = () => {
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
17
|
+
// @ts-ignore
|
|
18
|
+
window.socketIo.connect()
|
|
19
|
+
}
|
|
20
|
+
const bus = useEventBus<ISysMessageVo>('messageClick')
|
|
21
|
+
const message = messageStore()
|
|
22
|
+
const createSocket = () => {
|
|
23
|
+
const socket = io(import.meta.env.VITE_SOCKETIO_URL, {
|
|
24
|
+
query: {
|
|
25
|
+
token: sessionStorage.getItem('Authorization'),
|
|
26
|
+
refreshToken: sessionStorage.getItem('refreshToken'),
|
|
27
|
+
sessionId: sessionStorage.getItem('sessionId'),
|
|
28
|
+
},
|
|
29
|
+
path: '/socket.io/',
|
|
30
|
+
transports: ['websocket', 'polling'],
|
|
31
|
+
autoConnect: false,
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
const server_response = (res: any) => {}
|
|
35
|
+
socket.off('server_response', server_response)
|
|
36
|
+
socket.on('server_response', server_response)
|
|
37
|
+
const connect = () => {
|
|
38
|
+
message.clearSysMessage()
|
|
39
|
+
//连接成功 获取离线数据UserExpireMessageOnEvent
|
|
40
|
+
socket.emit('UserExpireMessageOnEvent')
|
|
41
|
+
}
|
|
42
|
+
socket.off('connect', connect)
|
|
43
|
+
socket.on('connect', connect)
|
|
44
|
+
socket.on('user_Offline', () => {
|
|
45
|
+
console.log('user offline')
|
|
46
|
+
ElMessage.warning('您已被强制下线,即将跳转至登录页,请重新登录')
|
|
47
|
+
setTimeout(() => {
|
|
48
|
+
window.location.href = '/'
|
|
49
|
+
}, 2000)
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
const message_accept = (res: ISysMessageVo) => {
|
|
53
|
+
// if (res.params) {
|
|
54
|
+
// res.params = JSON.parse(res.params + '')
|
|
55
|
+
// }
|
|
56
|
+
let messageType = '通知'
|
|
57
|
+
if (res.messageType === 1) {
|
|
58
|
+
messageType = '消息'
|
|
59
|
+
} else if (res.messageType === 2) {
|
|
60
|
+
messageType = '待办'
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
const notif = ElNotification({
|
|
64
|
+
duration: 2000,
|
|
65
|
+
dangerouslyUseHTMLString: true,
|
|
66
|
+
onClick: () => {
|
|
67
|
+
bus.emit(res)
|
|
68
|
+
notif.close()
|
|
69
|
+
},
|
|
70
|
+
title: messageType,
|
|
71
|
+
message: res.title,
|
|
72
|
+
})
|
|
73
|
+
message.setSysMessage(res)
|
|
74
|
+
}
|
|
75
|
+
socket.off('message_accept', message_accept)
|
|
76
|
+
socket.on('message_accept', message_accept)
|
|
77
|
+
const expire_Message = (res: ISysMessageVo[]) => {
|
|
78
|
+
res.forEach((item) => {
|
|
79
|
+
message.setSysMessage(item)
|
|
80
|
+
})
|
|
81
|
+
}
|
|
82
|
+
socket.off('expire_Message', expire_Message)
|
|
83
|
+
socket.on('expire_Message', expire_Message)
|
|
84
|
+
//@ts-ignore
|
|
85
|
+
window.socketIo = socket
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* 接收方法注册
|
|
89
|
+
*/
|
|
90
|
+
const registerResponseEvent = (eventName: string, event: Function) => {
|
|
91
|
+
//@ts-ignore
|
|
92
|
+
window.socketIo.on(eventName, event)
|
|
93
|
+
}
|
|
94
|
+
const close = () => {
|
|
95
|
+
//@ts-ignore
|
|
96
|
+
window.socketIo.close()
|
|
97
|
+
message.clearSysMessage()
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* 消息发送
|
|
101
|
+
* @param msg
|
|
102
|
+
*/
|
|
103
|
+
const messageSend = (msg: ISysMessageVo) => {
|
|
104
|
+
//@ts-ignore
|
|
105
|
+
window.socketIo.emit('messageSend', JSON.stringify(msg))
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* 设置消息已读
|
|
109
|
+
* @constructor
|
|
110
|
+
*/
|
|
111
|
+
const setMessageRead = (msg: ISysMessageVo) => {
|
|
112
|
+
//@ts-ignore
|
|
113
|
+
window.socketIo.emit('setMessageRead', JSON.stringify(msg))
|
|
114
|
+
message.setSysMessageStatus(msg)
|
|
115
|
+
}
|
|
116
|
+
const setMessageReadAll = () => {
|
|
117
|
+
message.getMessageList.forEach((item) => {
|
|
118
|
+
//@ts-ignore
|
|
119
|
+
window.socketIo.emit('setMessageRead', JSON.stringify(item))
|
|
120
|
+
})
|
|
121
|
+
message.clearSysMessage()
|
|
122
|
+
}
|
|
123
|
+
return {
|
|
124
|
+
close,
|
|
125
|
+
connect,
|
|
126
|
+
createSocket,
|
|
127
|
+
messageSend,
|
|
128
|
+
registerResponseEvent,
|
|
129
|
+
setMessageRead,
|
|
130
|
+
setMessageReadAll,
|
|
131
|
+
}
|
|
132
|
+
}
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import frameworkUtils from '../utils/FrameworkUtils.ts'
|
|
2
|
-
import usePermissionHooks from '../hooks/usePermissionHooks'
|
|
3
|
-
import { userInfoStore } from '../stores/userInfoStore'
|
|
4
|
-
import commonUtils from '../utils/commonUtils'
|
|
5
|
-
|
|
6
|
-
export default function useOpenNewMenu(menuCode: string, module: { getModules: Function }) {
|
|
7
|
-
const usePermission = usePermissionHooks(module)
|
|
8
|
-
const userInfo = userInfoStore()
|
|
9
|
-
const handleView = async (businessId: string,menuName?: string, params: any = '') => {
|
|
10
|
-
const newId = menuCode + businessId
|
|
11
|
-
let menu = frameworkUtils.getOpenMenuInfoWujie().find((item: any) => item.id === newId)
|
|
12
|
-
if (!menu) {
|
|
13
|
-
menu = JSON.parse(
|
|
14
|
-
JSON.stringify(userInfo.getUserInfo.menuList.find((item) => item.code === menuCode)),
|
|
15
|
-
)
|
|
16
|
-
if (menu) {
|
|
17
|
-
menu.code = menuCode + commonUtils.jsonToUrlQuery(params)
|
|
18
|
-
menu.id = newId
|
|
19
|
-
menu.name = menuName??menu.name
|
|
20
|
-
await usePermission.openMenuByFramework(menu, params)
|
|
21
|
-
}
|
|
22
|
-
} else {
|
|
23
|
-
await usePermission.openMenuByFramework(menu)
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return {
|
|
28
|
-
handleView,
|
|
29
|
-
}
|
|
30
|
-
}
|
|
1
|
+
import frameworkUtils from '../utils/FrameworkUtils.ts'
|
|
2
|
+
import usePermissionHooks from '../hooks/usePermissionHooks'
|
|
3
|
+
import { userInfoStore } from '../stores/userInfoStore'
|
|
4
|
+
import commonUtils from '../utils/commonUtils'
|
|
5
|
+
|
|
6
|
+
export default function useOpenNewMenu(menuCode: string, module: { getModules: Function }) {
|
|
7
|
+
const usePermission = usePermissionHooks(module)
|
|
8
|
+
const userInfo = userInfoStore()
|
|
9
|
+
const handleView = async (businessId: string,menuName?: string, params: any = '') => {
|
|
10
|
+
const newId = menuCode + businessId
|
|
11
|
+
let menu = frameworkUtils.getOpenMenuInfoWujie().find((item: any) => item.id === newId)
|
|
12
|
+
if (!menu) {
|
|
13
|
+
menu = JSON.parse(
|
|
14
|
+
JSON.stringify(userInfo.getUserInfo.menuList.find((item) => item.code === menuCode)),
|
|
15
|
+
)
|
|
16
|
+
if (menu) {
|
|
17
|
+
menu.code = menuCode + commonUtils.jsonToUrlQuery(params)
|
|
18
|
+
menu.id = newId
|
|
19
|
+
menu.name = menuName??menu.name
|
|
20
|
+
await usePermission.openMenuByFramework(menu, params)
|
|
21
|
+
}
|
|
22
|
+
} else {
|
|
23
|
+
await usePermission.openMenuByFramework(menu)
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return {
|
|
28
|
+
handleView,
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -1,139 +1,139 @@
|
|
|
1
|
-
import {useRouter} from 'vue-router'
|
|
2
|
-
import {h} from 'vue'
|
|
3
|
-
import type {ISysMenuInfoVo} from '../interface/ISysMenuInfoVo.ts'
|
|
4
|
-
import {permissionStore} from '../stores/permissionStore.ts'
|
|
5
|
-
import WujieVue from 'wujie-vue3'
|
|
6
|
-
import frameworkUtil from '../utils/FrameworkUtils.ts'
|
|
7
|
-
import { ElMessage } from 'element-plus'
|
|
8
|
-
import { userInfoStore } from '../stores/userInfoStore'
|
|
9
|
-
|
|
10
|
-
export default function usePermissionHooks(module:{getModules:Function}) {
|
|
11
|
-
const router = useRouter()
|
|
12
|
-
const permission = permissionStore()
|
|
13
|
-
/**
|
|
14
|
-
* 获取当前路由菜单信息
|
|
15
|
-
*/
|
|
16
|
-
const getRouteMenuInfo = (): ISysMenuInfoVo => {
|
|
17
|
-
return router.currentRoute.value.meta.sysMenuData as ISysMenuInfoVo
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* 新增菜单路由
|
|
21
|
-
* @param sysMenu
|
|
22
|
-
*/
|
|
23
|
-
const addRoute = async (sysMenu: ISysMenuInfoVo,params?:any): Promise<string> => {
|
|
24
|
-
const rootRoute = router.getRoutes().find((c) => c.name === '/')
|
|
25
|
-
if (!rootRoute?.children.find((c: any) => c.name === sysMenu.code)) {
|
|
26
|
-
// const comp = modules[sysMenu.component]
|
|
27
|
-
// console.log(comp, text)
|
|
28
|
-
let comp = null
|
|
29
|
-
if (sysMenu.isLink !== 1 && sysMenu.applicationModule !== 'system') {
|
|
30
|
-
comp = module.getModules(sysMenu.path)
|
|
31
|
-
}
|
|
32
|
-
if (comp) {
|
|
33
|
-
const r = {
|
|
34
|
-
name: sysMenu.code,
|
|
35
|
-
path: '/' + sysMenu.code,
|
|
36
|
-
meta: {
|
|
37
|
-
sysMenuData: sysMenu,
|
|
38
|
-
params:params,
|
|
39
|
-
link: sysMenu.isLink === 1,
|
|
40
|
-
applicationModule: sysMenu.applicationModule,
|
|
41
|
-
},
|
|
42
|
-
component: async () => {
|
|
43
|
-
const cpn = await comp()
|
|
44
|
-
cpn.default.__name = sysMenu.code
|
|
45
|
-
return h(cpn.default)
|
|
46
|
-
},
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
// rootRoute?.children.push(r)
|
|
50
|
-
//@ts-ignore
|
|
51
|
-
// router.addRoute(rootRoute)
|
|
52
|
-
router.addRoute('/', r)
|
|
53
|
-
return sysMenu.code
|
|
54
|
-
} else {
|
|
55
|
-
const r1 = {
|
|
56
|
-
name: sysMenu.code,
|
|
57
|
-
path: '/' + sysMenu.code,
|
|
58
|
-
meta: {
|
|
59
|
-
sysMenuData: sysMenu,
|
|
60
|
-
params:params,
|
|
61
|
-
link: sysMenu.isLink === 1,
|
|
62
|
-
applicationModule: sysMenu.applicationModule,
|
|
63
|
-
},
|
|
64
|
-
component: null,
|
|
65
|
-
}
|
|
66
|
-
//@ts-ignore
|
|
67
|
-
rootRoute?.children.push(r1)
|
|
68
|
-
//@ts-ignore
|
|
69
|
-
router.addRoute(rootRoute)
|
|
70
|
-
return sysMenu.code
|
|
71
|
-
}
|
|
72
|
-
} else {
|
|
73
|
-
return sysMenu.code
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* 打开菜单
|
|
78
|
-
* @param sysMenu
|
|
79
|
-
*/
|
|
80
|
-
const openMenu = async (sysMenu: ISysMenuInfoVo, params?: any) => {
|
|
81
|
-
// permission.setOpenMenuInfo(sysMenu)
|
|
82
|
-
const name = await addRoute(sysMenu,params)
|
|
83
|
-
router.push({ name: name })
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* 通过框架打开菜单
|
|
87
|
-
* @param sysMenu
|
|
88
|
-
*/
|
|
89
|
-
const openMenuByFramework = async (sysMenu: ISysMenuInfoVo,params?: any) => {
|
|
90
|
-
WujieVue.bus.$emit('openMenu', sysMenu,params)
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* 通过随机数打开菜单
|
|
94
|
-
* @param menuId 菜单id(用于判断是否打开过)
|
|
95
|
-
* @param menuCode 菜单code
|
|
96
|
-
* @param name 菜单tab显示名称
|
|
97
|
-
* @param param 菜单参数 route.meta.params
|
|
98
|
-
*/
|
|
99
|
-
const openMenuByRandom = async (menuId: string, menuCode: string, name: string, param?: any) => {
|
|
100
|
-
if (!menuId || !menuCode || !name) {
|
|
101
|
-
ElMessage.error('菜单打开参数缺失')
|
|
102
|
-
return ''
|
|
103
|
-
}
|
|
104
|
-
let menu = frameworkUtil.getOpenMenuInfoWujie().find((item:any)=>item.id === menuId)
|
|
105
|
-
if (!menu) {
|
|
106
|
-
const userInfo = userInfoStore()
|
|
107
|
-
menu = JSON.parse(JSON.stringify(userInfo.getUserInfo.menuList.find(item => item.code === menuCode)))
|
|
108
|
-
if (menu) {
|
|
109
|
-
const random = (Math.random() * 100000).toFixed(0)
|
|
110
|
-
menu.code = menu.code + random
|
|
111
|
-
menu.name = name
|
|
112
|
-
menu.id = menuId
|
|
113
|
-
await openMenuByFramework(menu, param)
|
|
114
|
-
return menu.code
|
|
115
|
-
} else {
|
|
116
|
-
ElMessage.error('无"'+ name +'"权限')
|
|
117
|
-
}
|
|
118
|
-
} else {
|
|
119
|
-
await openMenuByFramework(menu, param)
|
|
120
|
-
return menu.code
|
|
121
|
-
}
|
|
122
|
-
return ''
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* 关闭当前菜单
|
|
126
|
-
* @param sysMenu
|
|
127
|
-
*/
|
|
128
|
-
const closeMenu = (sysMenu: ISysMenuInfoVo) => {
|
|
129
|
-
if (sysMenu.id === permission.getActiveMenuInfo?.id) {
|
|
130
|
-
WujieVue.bus.$emit('close-sonPage')
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
}
|
|
134
|
-
const closeCurrentMenu = () => {
|
|
135
|
-
closeMenu(getRouteMenuInfo())
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
return {openMenu, getRouteMenuInfo, openMenuByFramework, closeMenu, closeCurrentMenu, openMenuByRandom}
|
|
139
|
-
}
|
|
1
|
+
import {useRouter} from 'vue-router'
|
|
2
|
+
import {h} from 'vue'
|
|
3
|
+
import type {ISysMenuInfoVo} from '../interface/ISysMenuInfoVo.ts'
|
|
4
|
+
import {permissionStore} from '../stores/permissionStore.ts'
|
|
5
|
+
import WujieVue from 'wujie-vue3'
|
|
6
|
+
import frameworkUtil from '../utils/FrameworkUtils.ts'
|
|
7
|
+
import { ElMessage } from 'element-plus'
|
|
8
|
+
import { userInfoStore } from '../stores/userInfoStore'
|
|
9
|
+
|
|
10
|
+
export default function usePermissionHooks(module:{getModules:Function}) {
|
|
11
|
+
const router = useRouter()
|
|
12
|
+
const permission = permissionStore()
|
|
13
|
+
/**
|
|
14
|
+
* 获取当前路由菜单信息
|
|
15
|
+
*/
|
|
16
|
+
const getRouteMenuInfo = (): ISysMenuInfoVo => {
|
|
17
|
+
return router.currentRoute.value.meta.sysMenuData as ISysMenuInfoVo
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 新增菜单路由
|
|
21
|
+
* @param sysMenu
|
|
22
|
+
*/
|
|
23
|
+
const addRoute = async (sysMenu: ISysMenuInfoVo,params?:any): Promise<string> => {
|
|
24
|
+
const rootRoute = router.getRoutes().find((c) => c.name === '/')
|
|
25
|
+
if (!rootRoute?.children.find((c: any) => c.name === sysMenu.code)) {
|
|
26
|
+
// const comp = modules[sysMenu.component]
|
|
27
|
+
// console.log(comp, text)
|
|
28
|
+
let comp = null
|
|
29
|
+
if (sysMenu.isLink !== 1 && sysMenu.applicationModule !== 'system') {
|
|
30
|
+
comp = module.getModules(sysMenu.path)
|
|
31
|
+
}
|
|
32
|
+
if (comp) {
|
|
33
|
+
const r = {
|
|
34
|
+
name: sysMenu.code,
|
|
35
|
+
path: '/' + sysMenu.code,
|
|
36
|
+
meta: {
|
|
37
|
+
sysMenuData: sysMenu,
|
|
38
|
+
params:params,
|
|
39
|
+
link: sysMenu.isLink === 1,
|
|
40
|
+
applicationModule: sysMenu.applicationModule,
|
|
41
|
+
},
|
|
42
|
+
component: async () => {
|
|
43
|
+
const cpn = await comp()
|
|
44
|
+
cpn.default.__name = sysMenu.code
|
|
45
|
+
return h(cpn.default)
|
|
46
|
+
},
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// rootRoute?.children.push(r)
|
|
50
|
+
//@ts-ignore
|
|
51
|
+
// router.addRoute(rootRoute)
|
|
52
|
+
router.addRoute('/', r)
|
|
53
|
+
return sysMenu.code
|
|
54
|
+
} else {
|
|
55
|
+
const r1 = {
|
|
56
|
+
name: sysMenu.code,
|
|
57
|
+
path: '/' + sysMenu.code,
|
|
58
|
+
meta: {
|
|
59
|
+
sysMenuData: sysMenu,
|
|
60
|
+
params:params,
|
|
61
|
+
link: sysMenu.isLink === 1,
|
|
62
|
+
applicationModule: sysMenu.applicationModule,
|
|
63
|
+
},
|
|
64
|
+
component: null,
|
|
65
|
+
}
|
|
66
|
+
//@ts-ignore
|
|
67
|
+
rootRoute?.children.push(r1)
|
|
68
|
+
//@ts-ignore
|
|
69
|
+
router.addRoute(rootRoute)
|
|
70
|
+
return sysMenu.code
|
|
71
|
+
}
|
|
72
|
+
} else {
|
|
73
|
+
return sysMenu.code
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* 打开菜单
|
|
78
|
+
* @param sysMenu
|
|
79
|
+
*/
|
|
80
|
+
const openMenu = async (sysMenu: ISysMenuInfoVo, params?: any) => {
|
|
81
|
+
// permission.setOpenMenuInfo(sysMenu)
|
|
82
|
+
const name = await addRoute(sysMenu,params)
|
|
83
|
+
router.push({ name: name })
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* 通过框架打开菜单
|
|
87
|
+
* @param sysMenu
|
|
88
|
+
*/
|
|
89
|
+
const openMenuByFramework = async (sysMenu: ISysMenuInfoVo,params?: any) => {
|
|
90
|
+
WujieVue.bus.$emit('openMenu', sysMenu,params)
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* 通过随机数打开菜单
|
|
94
|
+
* @param menuId 菜单id(用于判断是否打开过)
|
|
95
|
+
* @param menuCode 菜单code
|
|
96
|
+
* @param name 菜单tab显示名称
|
|
97
|
+
* @param param 菜单参数 route.meta.params
|
|
98
|
+
*/
|
|
99
|
+
const openMenuByRandom = async (menuId: string, menuCode: string, name: string, param?: any) => {
|
|
100
|
+
if (!menuId || !menuCode || !name) {
|
|
101
|
+
ElMessage.error('菜单打开参数缺失')
|
|
102
|
+
return ''
|
|
103
|
+
}
|
|
104
|
+
let menu = frameworkUtil.getOpenMenuInfoWujie().find((item:any)=>item.id === menuId)
|
|
105
|
+
if (!menu) {
|
|
106
|
+
const userInfo = userInfoStore()
|
|
107
|
+
menu = JSON.parse(JSON.stringify(userInfo.getUserInfo.menuList.find(item => item.code === menuCode)))
|
|
108
|
+
if (menu) {
|
|
109
|
+
const random = (Math.random() * 100000).toFixed(0)
|
|
110
|
+
menu.code = menu.code + random
|
|
111
|
+
menu.name = name
|
|
112
|
+
menu.id = menuId
|
|
113
|
+
await openMenuByFramework(menu, param)
|
|
114
|
+
return menu.code
|
|
115
|
+
} else {
|
|
116
|
+
ElMessage.error('无"'+ name +'"权限')
|
|
117
|
+
}
|
|
118
|
+
} else {
|
|
119
|
+
await openMenuByFramework(menu, param)
|
|
120
|
+
return menu.code
|
|
121
|
+
}
|
|
122
|
+
return ''
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* 关闭当前菜单
|
|
126
|
+
* @param sysMenu
|
|
127
|
+
*/
|
|
128
|
+
const closeMenu = (sysMenu: ISysMenuInfoVo) => {
|
|
129
|
+
if (sysMenu.id === permission.getActiveMenuInfo?.id) {
|
|
130
|
+
WujieVue.bus.$emit('close-sonPage')
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
}
|
|
134
|
+
const closeCurrentMenu = () => {
|
|
135
|
+
closeMenu(getRouteMenuInfo())
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
return {openMenu, getRouteMenuInfo, openMenuByFramework, closeMenu, closeCurrentMenu, openMenuByRandom}
|
|
139
|
+
}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { permissionStore } from '../stores/permissionStore.ts'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Create by丁盼
|
|
5
|
-
* 说明: 权限工具Hooks.ts
|
|
6
|
-
* 创建时间: 2025/2/14 11:36
|
|
7
|
-
* 修改时间: 2025/2/14 11:36
|
|
8
|
-
*/
|
|
9
|
-
export default function usePermissionToolHooks() {
|
|
10
|
-
const permission = permissionStore()
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* 判断是否有操作权限
|
|
14
|
-
* @param operCode
|
|
15
|
-
* @constructor
|
|
16
|
-
*/
|
|
17
|
-
const IsOperationAuth = (operCode: string) => {
|
|
18
|
-
return permission.IsOperationAuth(operCode)
|
|
19
|
-
}
|
|
20
|
-
return { IsOperationAuth }
|
|
21
|
-
}
|
|
1
|
+
import { permissionStore } from '../stores/permissionStore.ts'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Create by丁盼
|
|
5
|
+
* 说明: 权限工具Hooks.ts
|
|
6
|
+
* 创建时间: 2025/2/14 11:36
|
|
7
|
+
* 修改时间: 2025/2/14 11:36
|
|
8
|
+
*/
|
|
9
|
+
export default function usePermissionToolHooks() {
|
|
10
|
+
const permission = permissionStore()
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* 判断是否有操作权限
|
|
14
|
+
* @param operCode
|
|
15
|
+
* @constructor
|
|
16
|
+
*/
|
|
17
|
+
const IsOperationAuth = (operCode: string) => {
|
|
18
|
+
return permission.IsOperationAuth(operCode)
|
|
19
|
+
}
|
|
20
|
+
return { IsOperationAuth }
|
|
21
|
+
}
|