agilebuilder-ui 1.1.45 → 1.1.46-sit2
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/lib/{401-1bde8dc9.js → 401-75472dcd.js} +1 -1
- package/lib/{404-48d76996.js → 404-e5ce8455.js} +1 -1
- package/lib/{iframe-page-77e184a0.js → iframe-page-9d5ce6b0.js} +1 -1
- package/lib/index-789fbe10.js +92825 -0
- package/lib/super-ui.css +1 -1
- package/lib/super-ui.js +33 -32
- package/lib/super-ui.umd.cjs +172 -133
- package/lib/{tab-content-iframe-index-39745d49.js → tab-content-iframe-index-47fae8cf.js} +1 -1
- package/lib/{tab-content-index-65696e56.js → tab-content-index-6e5f5717.js} +1 -1
- package/lib/{tache-subprocess-history-ef943f95.js → tache-subprocess-history-1ed95cee.js} +1 -1
- package/package.json +7 -2
- package/packages/chat-embed/index.ts +6 -0
- package/packages/chat-embed/src/chat-embed-message.ts +79 -0
- package/packages/chat-embed/src/chat-embed.css +117 -0
- package/packages/chat-embed/src/chat-sender.vue +240 -0
- package/packages/chat-embed/src/header.vue +50 -0
- package/packages/chat-embed/src/index.vue +425 -0
- package/packages/chat-embed/src/recommendation-message.vue +37 -0
- package/packages/chat-embed/src/util.ts +33 -0
- package/packages/department-tree-inline/src/department-multi-tree-inline.vue +42 -34
- package/packages/department-tree-inline/src/department-single-tree-inline.vue +53 -42
- package/packages/department-tree-inline/src/search-result.vue +187 -219
- package/packages/department-user-tree-inline/src/department-user-multiple-tree-inline.vue +52 -43
- package/packages/department-user-tree-inline/src/department-user-single-tree-inline.vue +52 -42
- package/packages/department-user-tree-inline/src/search-result.vue +207 -220
- package/packages/dynamic-source-select/src/dynamic-source-select-service.js +7 -2
- package/packages/empty-state/index.vue +28 -0
- package/packages/fs-preview/src/fs-preview.vue +12 -3
- package/packages/fs-upload/src/fs-upload-multi.vue +6 -4
- package/packages/fs-upload/src/fs-upload-single.vue +7 -6
- package/packages/fs-upload/src/fs-upload.vue +3 -1
- package/packages/fs-upload/src/see-big-picture.vue +3 -0
- package/packages/fs-upload-list/src/fs-upload-list.vue +8 -2
- package/packages/fs-upload-new/src/fs-button-upload.vue +11 -4
- package/packages/fs-upload-new/src/fs-drag-upload.vue +11 -4
- package/packages/fs-upload-new/src/fs-preview-new.vue +8 -5
- package/packages/fs-upload-new/src/fs-upload-new.vue +17 -0
- package/packages/index.js +16 -13
- package/packages/json-view/index.ts +3 -0
- package/packages/json-view/json-view-dialog.vue +53 -0
- package/packages/json-view/json-view.vue +126 -0
- package/packages/plugins/export-data-new.js +2 -0
- package/packages/super-grid/src/apis.js +11 -0
- package/packages/super-grid/src/components/grid-icon.vue +6 -3
- package/packages/super-grid/src/custom-formatter.js +15 -2
- package/packages/super-grid/src/dynamic-input.vue +46 -4
- package/packages/super-grid/src/formatter.js +5 -1
- package/packages/super-grid/src/normal-column-content.vue +31 -38
- package/packages/super-grid/src/normal-column.vue +8 -1
- package/packages/super-grid/src/row-operation.vue +13 -9
- package/packages/super-grid/src/super-grid.vue +21 -8
- package/packages/utils/utils.js +26 -9
- package/packages/workgroup-tree-inline/src/workgroup-tree-inline.vue +50 -41
- package/packages/workgroup-user-tree-inline/src/workgroup-user-tree-inline.vue +45 -36
- package/src/assets/chat-embed/avatar.png +0 -0
- package/src/i18n/langs/cn.js +20 -6
- package/src/i18n/langs/en.js +19 -5
- package/src/store/modules/chat-ai-store.ts +78 -0
- package/src/store/modules/tab-content.js +9 -3
- package/src/styles/element-ui.scss +8 -7
- package/src/styles/index.scss +45 -0
- package/src/utils/chat-ai-util.ts +31 -0
- package/src/utils/common-util.js +78 -8
- package/src/utils/insert_css.js +14 -1
- package/src/utils/jump-page-utils.js +8 -4
- package/src/views/dsc-component/Sidebar/SidebarItem.vue +6 -0
- package/src/views/dsc-component/tabs/tab-content.vue +6 -0
- package/lib/index-465b0d69.js +0 -73558
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<el-container style="height: 395px">
|
|
4
4
|
<el-aside width="430px">
|
|
5
5
|
<el-container style="height: 390px">
|
|
6
|
-
<el-header style="text-align: right; font-size: 12px">
|
|
6
|
+
<el-header style="text-align: right; font-size: 12px; height: 35px">
|
|
7
7
|
<el-autocomplete
|
|
8
8
|
v-model="filterText"
|
|
9
9
|
:fetch-suggestions="querySearch"
|
|
@@ -20,44 +20,48 @@
|
|
|
20
20
|
</el-autocomplete>
|
|
21
21
|
</el-header>
|
|
22
22
|
<el-main>
|
|
23
|
-
<
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
<el-tree
|
|
28
|
-
ref="workgroupTree"
|
|
29
|
-
:filter-node-method="filterNode"
|
|
30
|
-
:load="loadNode"
|
|
31
|
-
:props="defaultProps"
|
|
32
|
-
:show-checkbox="multiple"
|
|
33
|
-
lazy
|
|
34
|
-
node-key="id"
|
|
35
|
-
@check="handleCheckNode"
|
|
36
|
-
@node-click="handleNodeClick"
|
|
23
|
+
<template v-if="!searchValue">
|
|
24
|
+
<div
|
|
25
|
+
v-if="canShowOrgTree"
|
|
26
|
+
style="padding-top: 5px; overflow: auto; width: auto; display: inline-block !important"
|
|
37
27
|
>
|
|
38
|
-
<
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
28
|
+
<el-tree
|
|
29
|
+
ref="workgroupTree"
|
|
30
|
+
:filter-node-method="filterNode"
|
|
31
|
+
:load="loadNode"
|
|
32
|
+
:props="defaultProps"
|
|
33
|
+
:show-checkbox="multiple"
|
|
34
|
+
lazy
|
|
35
|
+
node-key="id"
|
|
36
|
+
@check="handleCheckNode"
|
|
37
|
+
@node-click="handleNodeClick"
|
|
38
|
+
>
|
|
39
|
+
<template #default="{ node, data }">
|
|
40
|
+
<span>
|
|
41
|
+
<el-icon>
|
|
42
|
+
<Menu v-if="node.data.id === -1" />
|
|
43
|
+
<Calendar v-else />
|
|
44
|
+
</el-icon>
|
|
45
|
+
<span
|
|
46
|
+
:class="
|
|
47
|
+
data.nodeType &&
|
|
48
|
+
data.nodeType === 'WORKGROUP' &&
|
|
49
|
+
searchValue &&
|
|
50
|
+
data.name.indexOf(searchValue) > -1
|
|
51
|
+
? 'searchResult'
|
|
52
|
+
: ''
|
|
53
|
+
"
|
|
54
|
+
:title="node.label"
|
|
55
|
+
>
|
|
56
|
+
{{ node.label }}
|
|
57
|
+
</span>
|
|
56
58
|
</span>
|
|
57
|
-
</
|
|
58
|
-
</
|
|
59
|
-
</
|
|
60
|
-
|
|
59
|
+
</template>
|
|
60
|
+
</el-tree>
|
|
61
|
+
</div>
|
|
62
|
+
<!-- 暂无信息 -->
|
|
63
|
+
<EmptyState v-else style="width: 100%; height: 100%" />
|
|
64
|
+
</template>
|
|
61
65
|
<div v-if="searchValue && searchValue.length > 0" style="height: 100%; overflow: hidden">
|
|
62
66
|
<workgroup-result
|
|
63
67
|
ref="workgroupResult"
|
|
@@ -116,7 +120,7 @@ import localStorage from '../../../src/utils/local-storage'
|
|
|
116
120
|
import utils from '../../utils/utils'
|
|
117
121
|
import workgroupTreeService from './workgroup-tree-service'
|
|
118
122
|
import WorkgroupResult from './search-result.vue'
|
|
119
|
-
|
|
123
|
+
import EmptyState from '../../empty-state/index.vue'
|
|
120
124
|
export default {
|
|
121
125
|
data() {
|
|
122
126
|
return {
|
|
@@ -145,12 +149,14 @@ export default {
|
|
|
145
149
|
selectWorkgroupData: null,
|
|
146
150
|
// 公司根节点信息
|
|
147
151
|
tenantInfo: {},
|
|
148
|
-
ElIconSearch
|
|
152
|
+
ElIconSearch,
|
|
153
|
+
canShowOrgTree: false
|
|
149
154
|
}
|
|
150
155
|
},
|
|
151
156
|
name: 'InlineWorkgroupTree',
|
|
152
157
|
components: {
|
|
153
|
-
WorkgroupResult
|
|
158
|
+
WorkgroupResult,
|
|
159
|
+
EmptyState
|
|
154
160
|
},
|
|
155
161
|
props: {
|
|
156
162
|
// 是否是多选树,默认是true
|
|
@@ -195,6 +201,9 @@ export default {
|
|
|
195
201
|
}
|
|
196
202
|
},
|
|
197
203
|
created() {
|
|
204
|
+
utils.canShowOrgTree().then((showOrgTree) => {
|
|
205
|
+
this.canShowOrgTree = showOrgTree
|
|
206
|
+
})
|
|
198
207
|
if (this.multiple) {
|
|
199
208
|
this.initSelectGroups(this.searchField, this.selectGroupInfo, this.separator).then((selectGroups) => {
|
|
200
209
|
if (selectGroups) {
|
|
@@ -537,7 +546,7 @@ export default {
|
|
|
537
546
|
}
|
|
538
547
|
</script>
|
|
539
548
|
|
|
540
|
-
<style>
|
|
549
|
+
<style scoped>
|
|
541
550
|
.searchResult {
|
|
542
551
|
color: red;
|
|
543
552
|
}
|
|
@@ -21,41 +21,45 @@
|
|
|
21
21
|
</el-autocomplete>
|
|
22
22
|
</el-header>
|
|
23
23
|
<el-main style="padding: 10px">
|
|
24
|
-
<
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
<el-tree
|
|
29
|
-
ref="workgroupUserTree"
|
|
30
|
-
:filter-node-method="filterNode"
|
|
31
|
-
:load="loadNode"
|
|
32
|
-
:props="defaultProps"
|
|
33
|
-
:show-checkbox="multiple"
|
|
34
|
-
lazy
|
|
35
|
-
node-key="nodeId"
|
|
36
|
-
@check="handleCheckNode"
|
|
37
|
-
@node-click="handleNodeClick"
|
|
24
|
+
<template v-if="!searchValue">
|
|
25
|
+
<div
|
|
26
|
+
v-if="canShowOrgTree"
|
|
27
|
+
style="padding-top: 5px; overflow: auto; width: auto; display: inline-block !important"
|
|
38
28
|
>
|
|
39
|
-
<
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
29
|
+
<el-tree
|
|
30
|
+
ref="workgroupUserTree"
|
|
31
|
+
:filter-node-method="filterNode"
|
|
32
|
+
:load="loadNode"
|
|
33
|
+
:props="defaultProps"
|
|
34
|
+
:show-checkbox="multiple"
|
|
35
|
+
lazy
|
|
36
|
+
node-key="nodeId"
|
|
37
|
+
@check="handleCheckNode"
|
|
38
|
+
@node-click="handleNodeClick"
|
|
39
|
+
>
|
|
40
|
+
<template #default="{ node, data }">
|
|
41
|
+
<span>
|
|
42
|
+
<el-icon>
|
|
43
|
+
<Menu v-if="node.data.id === -1" />
|
|
44
|
+
<Calendar v-else />
|
|
45
|
+
</el-icon>
|
|
46
|
+
<span
|
|
47
|
+
:class="
|
|
48
|
+
data.nodeType && data.nodeType === 'USER' && searchValue && filterUserVal(data, searchValue)
|
|
49
|
+
? 'searchResult'
|
|
50
|
+
: ''
|
|
51
|
+
"
|
|
52
|
+
:title="node.label"
|
|
53
|
+
>
|
|
54
|
+
{{ node.label }}
|
|
55
|
+
</span>
|
|
54
56
|
</span>
|
|
55
|
-
</
|
|
56
|
-
</
|
|
57
|
-
</
|
|
58
|
-
|
|
57
|
+
</template>
|
|
58
|
+
</el-tree>
|
|
59
|
+
</div>
|
|
60
|
+
<!-- 暂无信息 -->
|
|
61
|
+
<EmptyState v-else style="width: 100%; height: 100%" />
|
|
62
|
+
</template>
|
|
59
63
|
<div v-if="searchValue && searchValue.length > 0" style="height: 100%; overflow: hidden">
|
|
60
64
|
<workgroup-user-result
|
|
61
65
|
ref="workgroupUserResult"
|
|
@@ -114,7 +118,7 @@ import localStorage from '../../../src/utils/local-storage'
|
|
|
114
118
|
import utils from '../../utils/utils'
|
|
115
119
|
import workgroupTreeInlineService from './workgroup-tree-inline-service'
|
|
116
120
|
import WorkgroupUserResult from './search-result.vue'
|
|
117
|
-
|
|
121
|
+
import EmptyState from '../../empty-state/index.vue'
|
|
118
122
|
export default {
|
|
119
123
|
data() {
|
|
120
124
|
return {
|
|
@@ -153,12 +157,14 @@ export default {
|
|
|
153
157
|
selectNodeInfo: null,
|
|
154
158
|
// 公司根节点信息
|
|
155
159
|
tenantInfo: {},
|
|
156
|
-
ElIconSearch
|
|
160
|
+
ElIconSearch,
|
|
161
|
+
canShowOrgTree: false
|
|
157
162
|
}
|
|
158
163
|
},
|
|
159
164
|
name: 'InlineWorkgroupUserTree',
|
|
160
165
|
components: {
|
|
161
|
-
WorkgroupUserResult
|
|
166
|
+
WorkgroupUserResult,
|
|
167
|
+
EmptyState
|
|
162
168
|
},
|
|
163
169
|
props: {
|
|
164
170
|
// 是否是多选树,默认是true
|
|
@@ -198,6 +204,9 @@ export default {
|
|
|
198
204
|
}
|
|
199
205
|
},
|
|
200
206
|
created() {
|
|
207
|
+
utils.canShowOrgTree().then((showOrgTree) => {
|
|
208
|
+
this.canShowOrgTree = showOrgTree
|
|
209
|
+
})
|
|
201
210
|
if (this.multiple) {
|
|
202
211
|
this.initSelectUsers(this.searchField, this.selectUserInfo, this.separator).then((users) => {
|
|
203
212
|
if (users) {
|
|
Binary file
|
package/src/i18n/langs/cn.js
CHANGED
|
@@ -56,7 +56,7 @@ const cn = {
|
|
|
56
56
|
pleaseRemoveallpersonnelBeforeSelectingSpecificPersonnel: '请先移除所有人员,再选择具体人员',
|
|
57
57
|
queryResultIsEmpty: '查询结果为空',
|
|
58
58
|
pleaseSelectATeam: '请选择工作组',
|
|
59
|
-
pleaseEnterTeamName: '
|
|
59
|
+
pleaseEnterTeamName: '请输入工作组信息筛选',
|
|
60
60
|
validationFailed: '验证失败',
|
|
61
61
|
selectionDate: '选择日期',
|
|
62
62
|
selectTime: '选择时间',
|
|
@@ -84,7 +84,7 @@ const cn = {
|
|
|
84
84
|
uploadFileTip: '上传的文件不超过{fileSize}M',
|
|
85
85
|
asyncExportJumpMsg: '或点击我跳转到下载页面',
|
|
86
86
|
mustFill: '{label} 必须填写',
|
|
87
|
-
filePathNotFound: '文件UUID未找到,请检查配置'
|
|
87
|
+
filePathNotFound: '文件UUID未找到,请检查配置'
|
|
88
88
|
},
|
|
89
89
|
// 列表组件
|
|
90
90
|
superGrid: {
|
|
@@ -136,13 +136,13 @@ const cn = {
|
|
|
136
136
|
prevRow: '上一行',
|
|
137
137
|
nextRow: '下一行',
|
|
138
138
|
detail: '详情',
|
|
139
|
-
searchEmpty:'查询空值'
|
|
139
|
+
searchEmpty: '查询空值'
|
|
140
140
|
},
|
|
141
141
|
// 部门树组件
|
|
142
142
|
departmentTree: {},
|
|
143
143
|
// 嵌入部门树组件
|
|
144
144
|
departmentTreeInline: {
|
|
145
|
-
pleaseEnterDepartmentName: '
|
|
145
|
+
pleaseEnterDepartmentName: '请输入部门信息筛选',
|
|
146
146
|
name: '部门名称',
|
|
147
147
|
code: '部门编码',
|
|
148
148
|
removeDepartment: '移除部门',
|
|
@@ -156,7 +156,7 @@ const cn = {
|
|
|
156
156
|
},
|
|
157
157
|
// 用户树
|
|
158
158
|
departmentUserTree: {
|
|
159
|
-
pleaseEnterUserInformation: '
|
|
159
|
+
pleaseEnterUserInformation: '请输入用户信息筛选',
|
|
160
160
|
selectedPeople: '已选人员',
|
|
161
161
|
searchFieldUserName: '姓名',
|
|
162
162
|
searchFieldLoginName: '登录名',
|
|
@@ -284,7 +284,9 @@ const cn = {
|
|
|
284
284
|
theNumberOfUploadsExceedsTheLimitTheLimitIs: '上传数量超过限制,限制数量为',
|
|
285
285
|
image: '图片',
|
|
286
286
|
video: '视频',
|
|
287
|
-
updateSuccess: '更新成功'
|
|
287
|
+
updateSuccess: '更新成功',
|
|
288
|
+
more: '更多',
|
|
289
|
+
uploadFailed: '上传失败!'
|
|
288
290
|
},
|
|
289
291
|
messageVideo: {
|
|
290
292
|
attemptingToIdentify: '正在尝试识别....',
|
|
@@ -299,6 +301,18 @@ const cn = {
|
|
|
299
301
|
},
|
|
300
302
|
imatrixUIPromptMessage: {
|
|
301
303
|
NoContent: '暂无内容'
|
|
304
|
+
},
|
|
305
|
+
chatEmbed: {
|
|
306
|
+
name: '小助手',
|
|
307
|
+
history: '历史记录',
|
|
308
|
+
minimize: '缩小',
|
|
309
|
+
fullscreen: '全屏',
|
|
310
|
+
close: '关闭',
|
|
311
|
+
regenerate: '重新生成',
|
|
312
|
+
copy: '复制',
|
|
313
|
+
newChat: '新建会话',
|
|
314
|
+
copySuccess: '复制成功',
|
|
315
|
+
requestFailed: '请求会话失败!'
|
|
302
316
|
}
|
|
303
317
|
}
|
|
304
318
|
export default cn
|
package/src/i18n/langs/en.js
CHANGED
|
@@ -57,7 +57,7 @@ const en = {
|
|
|
57
57
|
'Please Remove All Personnel Before Selecting Specific Personnel',
|
|
58
58
|
queryResultIsEmpty: 'Query Result Is Empty',
|
|
59
59
|
pleaseSelectATeam: 'Please Select A Team',
|
|
60
|
-
pleaseEnterTeamName: 'Please Enter Team
|
|
60
|
+
pleaseEnterTeamName: 'Please Enter Team Info Filter',
|
|
61
61
|
validationFailed: 'Validation Failed',
|
|
62
62
|
selectionDate: 'Selection Date',
|
|
63
63
|
selectTime: 'Select Time',
|
|
@@ -136,11 +136,11 @@ const en = {
|
|
|
136
136
|
prevRow: 'Prev Row',
|
|
137
137
|
nextRow: 'Next Row',
|
|
138
138
|
detail: 'Detail',
|
|
139
|
-
searchEmpty:'Search Empty'
|
|
139
|
+
searchEmpty: 'Search Empty'
|
|
140
140
|
},
|
|
141
141
|
departmentTree: {},
|
|
142
142
|
departmentTreeInline: {
|
|
143
|
-
pleaseEnterDepartmentName: 'Please Enter Department
|
|
143
|
+
pleaseEnterDepartmentName: 'Please Enter Department Info Filter',
|
|
144
144
|
name: 'Department Name',
|
|
145
145
|
code: 'Department Code',
|
|
146
146
|
removeDepartment: 'Remove Department',
|
|
@@ -154,7 +154,7 @@ const en = {
|
|
|
154
154
|
},
|
|
155
155
|
// 用户树
|
|
156
156
|
departmentUserTree: {
|
|
157
|
-
pleaseEnterUserInformation: 'Please Enter User Information',
|
|
157
|
+
pleaseEnterUserInformation: 'Please Enter User Information Filter',
|
|
158
158
|
selectedPeople: 'Selected People',
|
|
159
159
|
searchFieldUserName: 'Name',
|
|
160
160
|
searchFieldLoginName: 'Login Name',
|
|
@@ -283,7 +283,9 @@ const en = {
|
|
|
283
283
|
theNumberOfUploadsExceedsTheLimitTheLimitIs: 'The number of uploads exceeds the limit. The limit is',
|
|
284
284
|
image: 'Image',
|
|
285
285
|
video: 'Video',
|
|
286
|
-
updateSuccess: 'Update success'
|
|
286
|
+
updateSuccess: 'Update success',
|
|
287
|
+
more: 'More',
|
|
288
|
+
uploadFailed: 'Upload failed!'
|
|
287
289
|
},
|
|
288
290
|
messageVideo: {
|
|
289
291
|
attemptingToIdentify: 'Attempting to identify',
|
|
@@ -298,6 +300,18 @@ const en = {
|
|
|
298
300
|
},
|
|
299
301
|
imatrixUIPromptMessage: {
|
|
300
302
|
NoContent: 'No content'
|
|
303
|
+
},
|
|
304
|
+
chatEmbed: {
|
|
305
|
+
name: 'Assistant',
|
|
306
|
+
history: 'History',
|
|
307
|
+
minimize: 'Minimize',
|
|
308
|
+
fullscreen: 'Full Screen',
|
|
309
|
+
close: 'Close',
|
|
310
|
+
regenerate: 'Regenerate',
|
|
311
|
+
copy: 'Copy',
|
|
312
|
+
newChat: 'New Chat',
|
|
313
|
+
copySuccess: 'Copy successful',
|
|
314
|
+
requestFailed: 'Request failed!'
|
|
301
315
|
}
|
|
302
316
|
}
|
|
303
317
|
export default en
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { ref, computed, reactive } from 'vue'
|
|
2
|
+
import { defineStore } from 'pinia'
|
|
3
|
+
|
|
4
|
+
type Menu = {
|
|
5
|
+
menuCode: string
|
|
6
|
+
menuName: string
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export default defineStore('ChatAiStore', () => {
|
|
10
|
+
const currentTabName = ref('chat')
|
|
11
|
+
const activeMenu = ref<Menu>({
|
|
12
|
+
menuCode: '',
|
|
13
|
+
menuName: ''
|
|
14
|
+
})
|
|
15
|
+
const pageInfo = ref<any>({})
|
|
16
|
+
|
|
17
|
+
// 最后操作的表格实例
|
|
18
|
+
const pageRef = ref<any>(null)
|
|
19
|
+
const pageData = ref<any[]>([])
|
|
20
|
+
|
|
21
|
+
function setCurrentTabName(name: string) {
|
|
22
|
+
currentTabName.value = name
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function getCurrentTabName() {
|
|
26
|
+
return currentTabName.value
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function setPageInfoToChatStore(menuCode: string, info: any) {
|
|
30
|
+
pageInfo.value[menuCode] = info
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function getPageInfo(menuCode: string) {
|
|
34
|
+
return pageInfo.value[menuCode] || null
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function getActiveMenuPageInfo() {
|
|
38
|
+
return pageInfo.value[activeMenu.value.menuCode] || null
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function setPageData(newSelection: any[]) {
|
|
42
|
+
pageData.value = JSON.parse(JSON.stringify(newSelection))
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function getPageData() {
|
|
46
|
+
return pageData.value
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function clearPageData() {
|
|
50
|
+
pageData.value = []
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function setActiveMenu(menu: any) {
|
|
54
|
+
activeMenu.value = menu
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function getActiveMenu() {
|
|
58
|
+
return activeMenu.value
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function getPageType() {}
|
|
62
|
+
|
|
63
|
+
return {
|
|
64
|
+
setCurrentTabName,
|
|
65
|
+
getCurrentTabName,
|
|
66
|
+
setPageData,
|
|
67
|
+
getPageData,
|
|
68
|
+
clearPageData,
|
|
69
|
+
getActiveMenu,
|
|
70
|
+
setActiveMenu,
|
|
71
|
+
getPageType,
|
|
72
|
+
setPageInfoToChatStore,
|
|
73
|
+
getPageInfo,
|
|
74
|
+
getActiveMenuPageInfo,
|
|
75
|
+
pageData,
|
|
76
|
+
activeMenu
|
|
77
|
+
}
|
|
78
|
+
})
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { setActiveMenuToChatAiStore } from '../../utils/chat-ai-util.ts'
|
|
1
2
|
const tabContent = {
|
|
2
3
|
state: {
|
|
3
4
|
openTab: [], // 所有打开的路由
|
|
4
|
-
activeIndex: null
|
|
5
|
+
activeIndex: null // 激活状态
|
|
5
6
|
},
|
|
6
7
|
mutations: {
|
|
7
8
|
// 添加tabs
|
|
@@ -21,6 +22,11 @@ const tabContent = {
|
|
|
21
22
|
},
|
|
22
23
|
// 设置当前激活的tab
|
|
23
24
|
set_active_index(state, index) {
|
|
25
|
+
const activeTab = state.openTab.find((item) => item.code === index)
|
|
26
|
+
setActiveMenuToChatAiStore({
|
|
27
|
+
menuCode: index,
|
|
28
|
+
menuName: activeTab?.name || ''
|
|
29
|
+
})
|
|
24
30
|
state.activeIndex = index
|
|
25
31
|
},
|
|
26
32
|
// 清空tabs
|
|
@@ -28,9 +34,9 @@ const tabContent = {
|
|
|
28
34
|
if (state.openTab.length > 0) {
|
|
29
35
|
state.openTab.splice(0, state.openTab.length)
|
|
30
36
|
}
|
|
31
|
-
}
|
|
37
|
+
}
|
|
32
38
|
},
|
|
33
|
-
actions: {}
|
|
39
|
+
actions: {}
|
|
34
40
|
}
|
|
35
41
|
|
|
36
42
|
export default tabContent
|
|
@@ -9,13 +9,14 @@
|
|
|
9
9
|
display: none;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
//暂时性解决diolag 问题 https://github.com/ElemeFE/element/issues/2461
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
//暂时性解决diolag 问题 https://github.com/ElemeFE/element/issues/2461 Dialog内select tree等组件在点击箭头时有虚晃
|
|
13
|
+
// 去掉这个配置是因为margin: 0 auto;影响弹框位置,紧贴浏览器顶部,没有间距。例如:权限系统/授权管理/分支字段权限管理/新建按钮弹框
|
|
14
|
+
// .el-dialog {
|
|
15
|
+
// transform: none;
|
|
16
|
+
// left: 0;
|
|
17
|
+
// position: relative;
|
|
18
|
+
// margin: 0 auto;
|
|
19
|
+
// }
|
|
19
20
|
|
|
20
21
|
//element ui upload
|
|
21
22
|
.upload-container {
|
package/src/styles/index.scss
CHANGED
|
@@ -303,4 +303,49 @@ body .el-table colgroup.gutter {
|
|
|
303
303
|
|
|
304
304
|
.dec-page-main {
|
|
305
305
|
padding: var(--dec-page-main-padding, 15px);
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
// 必填背景色
|
|
309
|
+
.required_bg {
|
|
310
|
+
background-color: #fff3e0 !important;
|
|
311
|
+
border-left: 4px solid #ff9800 !important;
|
|
312
|
+
padding: 10px;
|
|
313
|
+
display: block;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
// 必填时右上角标样式
|
|
317
|
+
.required-corner::after {
|
|
318
|
+
content: "*";
|
|
319
|
+
color: #e74c3c;
|
|
320
|
+
font-size: 18px;
|
|
321
|
+
font-weight: bold;
|
|
322
|
+
position: absolute;
|
|
323
|
+
top: 3px;
|
|
324
|
+
right: 5px;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
|
|
328
|
+
// "暂无更多" 样式
|
|
329
|
+
.empty_center_area {
|
|
330
|
+
width: 100%;
|
|
331
|
+
position: relative;
|
|
332
|
+
|
|
333
|
+
.empty_notAvailable {
|
|
334
|
+
background-image: url('../assets/nonemessage.png');
|
|
335
|
+
background-size: 100%;
|
|
336
|
+
position: absolute;
|
|
337
|
+
top: 30%;
|
|
338
|
+
left: 50%;
|
|
339
|
+
transform: translate(-50%, -50%);
|
|
340
|
+
|
|
341
|
+
.empty_notAvailable_text {
|
|
342
|
+
position: absolute;
|
|
343
|
+
bottom: 0;
|
|
344
|
+
left: 50%;
|
|
345
|
+
transform: translate(-50%, 100%);
|
|
346
|
+
color: #313233;
|
|
347
|
+
font-weight: regular;
|
|
348
|
+
font-size: 14px;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
306
351
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
function setPageDataToChatAiStore(ref, newSelection, type = 'list') {
|
|
2
|
+
try {
|
|
3
|
+
if (window.top.ChatAiStore) {
|
|
4
|
+
window.top.ChatAiStore.setPageData(ref, newSelection, type)
|
|
5
|
+
}
|
|
6
|
+
} catch (error) {
|
|
7
|
+
console.error('ChatAiStore not found', error)
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
function setActiveMenuToChatAiStore(activeMenu) {
|
|
12
|
+
try {
|
|
13
|
+
if (window.top.ChatAiStore) {
|
|
14
|
+
window.top.ChatAiStore.setActiveMenu(activeMenu)
|
|
15
|
+
}
|
|
16
|
+
} catch (error) {
|
|
17
|
+
console.error('ChatAiStore not found', error)
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function setPageInfoToChatStore(menuCode, info) {
|
|
22
|
+
try {
|
|
23
|
+
if (window.top.ChatAiStore) {
|
|
24
|
+
window.top.ChatAiStore.setPageInfoToChatStore(menuCode, info)
|
|
25
|
+
}
|
|
26
|
+
} catch (error) {
|
|
27
|
+
console.error('ChatAiStore not found', error)
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export { setPageDataToChatAiStore, setActiveMenuToChatAiStore, setPageInfoToChatStore }
|