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.
Files changed (68) hide show
  1. package/lib/{401-1bde8dc9.js → 401-75472dcd.js} +1 -1
  2. package/lib/{404-48d76996.js → 404-e5ce8455.js} +1 -1
  3. package/lib/{iframe-page-77e184a0.js → iframe-page-9d5ce6b0.js} +1 -1
  4. package/lib/index-789fbe10.js +92825 -0
  5. package/lib/super-ui.css +1 -1
  6. package/lib/super-ui.js +33 -32
  7. package/lib/super-ui.umd.cjs +172 -133
  8. package/lib/{tab-content-iframe-index-39745d49.js → tab-content-iframe-index-47fae8cf.js} +1 -1
  9. package/lib/{tab-content-index-65696e56.js → tab-content-index-6e5f5717.js} +1 -1
  10. package/lib/{tache-subprocess-history-ef943f95.js → tache-subprocess-history-1ed95cee.js} +1 -1
  11. package/package.json +7 -2
  12. package/packages/chat-embed/index.ts +6 -0
  13. package/packages/chat-embed/src/chat-embed-message.ts +79 -0
  14. package/packages/chat-embed/src/chat-embed.css +117 -0
  15. package/packages/chat-embed/src/chat-sender.vue +240 -0
  16. package/packages/chat-embed/src/header.vue +50 -0
  17. package/packages/chat-embed/src/index.vue +425 -0
  18. package/packages/chat-embed/src/recommendation-message.vue +37 -0
  19. package/packages/chat-embed/src/util.ts +33 -0
  20. package/packages/department-tree-inline/src/department-multi-tree-inline.vue +42 -34
  21. package/packages/department-tree-inline/src/department-single-tree-inline.vue +53 -42
  22. package/packages/department-tree-inline/src/search-result.vue +187 -219
  23. package/packages/department-user-tree-inline/src/department-user-multiple-tree-inline.vue +52 -43
  24. package/packages/department-user-tree-inline/src/department-user-single-tree-inline.vue +52 -42
  25. package/packages/department-user-tree-inline/src/search-result.vue +207 -220
  26. package/packages/dynamic-source-select/src/dynamic-source-select-service.js +7 -2
  27. package/packages/empty-state/index.vue +28 -0
  28. package/packages/fs-preview/src/fs-preview.vue +12 -3
  29. package/packages/fs-upload/src/fs-upload-multi.vue +6 -4
  30. package/packages/fs-upload/src/fs-upload-single.vue +7 -6
  31. package/packages/fs-upload/src/fs-upload.vue +3 -1
  32. package/packages/fs-upload/src/see-big-picture.vue +3 -0
  33. package/packages/fs-upload-list/src/fs-upload-list.vue +8 -2
  34. package/packages/fs-upload-new/src/fs-button-upload.vue +11 -4
  35. package/packages/fs-upload-new/src/fs-drag-upload.vue +11 -4
  36. package/packages/fs-upload-new/src/fs-preview-new.vue +8 -5
  37. package/packages/fs-upload-new/src/fs-upload-new.vue +17 -0
  38. package/packages/index.js +16 -13
  39. package/packages/json-view/index.ts +3 -0
  40. package/packages/json-view/json-view-dialog.vue +53 -0
  41. package/packages/json-view/json-view.vue +126 -0
  42. package/packages/plugins/export-data-new.js +2 -0
  43. package/packages/super-grid/src/apis.js +11 -0
  44. package/packages/super-grid/src/components/grid-icon.vue +6 -3
  45. package/packages/super-grid/src/custom-formatter.js +15 -2
  46. package/packages/super-grid/src/dynamic-input.vue +46 -4
  47. package/packages/super-grid/src/formatter.js +5 -1
  48. package/packages/super-grid/src/normal-column-content.vue +31 -38
  49. package/packages/super-grid/src/normal-column.vue +8 -1
  50. package/packages/super-grid/src/row-operation.vue +13 -9
  51. package/packages/super-grid/src/super-grid.vue +21 -8
  52. package/packages/utils/utils.js +26 -9
  53. package/packages/workgroup-tree-inline/src/workgroup-tree-inline.vue +50 -41
  54. package/packages/workgroup-user-tree-inline/src/workgroup-user-tree-inline.vue +45 -36
  55. package/src/assets/chat-embed/avatar.png +0 -0
  56. package/src/i18n/langs/cn.js +20 -6
  57. package/src/i18n/langs/en.js +19 -5
  58. package/src/store/modules/chat-ai-store.ts +78 -0
  59. package/src/store/modules/tab-content.js +9 -3
  60. package/src/styles/element-ui.scss +8 -7
  61. package/src/styles/index.scss +45 -0
  62. package/src/utils/chat-ai-util.ts +31 -0
  63. package/src/utils/common-util.js +78 -8
  64. package/src/utils/insert_css.js +14 -1
  65. package/src/utils/jump-page-utils.js +8 -4
  66. package/src/views/dsc-component/Sidebar/SidebarItem.vue +6 -0
  67. package/src/views/dsc-component/tabs/tab-content.vue +6 -0
  68. 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
- <div
24
- v-if="!searchValue"
25
- style="padding-top: 5px; overflow: auto; width: auto; display: inline-block !important"
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
- <template #default="{ node, data }">
39
- <span>
40
- <el-icon>
41
- <Menu v-if="node.data.id === -1" />
42
- <Calendar v-else />
43
- </el-icon>
44
- <span
45
- :class="
46
- data.nodeType &&
47
- data.nodeType === 'WORKGROUP' &&
48
- searchValue &&
49
- data.name.indexOf(searchValue) > -1
50
- ? 'searchResult'
51
- : ''
52
- "
53
- :title="node.label"
54
- >
55
- {{ node.label }}
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
- </span>
58
- </template>
59
- </el-tree>
60
- </div>
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
- <div
25
- v-if="!searchValue"
26
- style="padding-top: 5px; overflow: auto; width: auto; display: inline-block !important"
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
- <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 && data.nodeType === 'USER' && searchValue && filterUserVal(data, searchValue)
48
- ? 'searchResult'
49
- : ''
50
- "
51
- :title="node.label"
52
- >
53
- {{ node.label }}
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
- </span>
56
- </template>
57
- </el-tree>
58
- </div>
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
@@ -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
@@ -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 Name',
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 Name',
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
- .el-dialog {
14
- transform: none;
15
- left: 0;
16
- position: relative;
17
- margin: 0 auto;
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 {
@@ -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 }