agilebuilder-ui 1.1.36-tmp4 → 1.1.37

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 (67) hide show
  1. package/lib/{401-c55bdcf2.js → 401-9314ce87.js} +1 -1
  2. package/lib/{404-c1dbd5e1.js → 404-572d631d.js} +1 -1
  3. package/lib/{iframe-page-917912ae.js → iframe-page-87c9c0d0.js} +1 -1
  4. package/lib/{index-6ec53ef7.js → index-79b98485.js} +12729 -12671
  5. package/lib/super-ui.css +1 -1
  6. package/lib/super-ui.js +1 -1
  7. package/lib/super-ui.umd.cjs +99 -99
  8. package/lib/{tab-content-iframe-index-46a76242.js → tab-content-iframe-index-070ce653.js} +1 -1
  9. package/lib/{tab-content-index-132379e6.js → tab-content-index-3b98efb4.js} +1 -1
  10. package/lib/{tache-subprocess-history-384455d6.js → tache-subprocess-history-46442012.js} +1 -1
  11. package/package.json +2 -2
  12. package/packages/department-tree/src/department-tree.vue +130 -123
  13. package/packages/department-tree-inline/src/department-multi-tree-inline.vue +435 -466
  14. package/packages/department-tree-inline/src/department-single-tree-inline.vue +335 -342
  15. package/packages/department-tree-inline/src/department-tree-inline.vue +18 -11
  16. package/packages/department-tree-inline/src/department-tree-service.js +10 -11
  17. package/packages/department-tree-mobile/src/department-tree-app.vue +103 -75
  18. package/packages/department-tree-mobile/src/department-tree-inline-app.vue +256 -225
  19. package/packages/department-tree-mobile/src/department-tree-service.ts +98 -75
  20. package/packages/department-user-tree/src/department-user-multiple-tree.vue +112 -115
  21. package/packages/department-user-tree/src/department-user-single-tree.vue +85 -88
  22. package/packages/department-user-tree/src/department-user-tree.vue +127 -119
  23. package/packages/department-user-tree-inline/src/department-user-multiple-tree-inline.vue +6 -1
  24. package/packages/department-user-tree-inline/src/department-user-single-tree-inline.vue +5 -0
  25. package/packages/department-user-tree-inline/src/department-user-tree-inline.vue +18 -11
  26. package/packages/department-user-tree-inline/src/department-user-tree-multi-service.js +26 -51
  27. package/packages/department-user-tree-inline/src/department-user-tree-single-service.js +25 -45
  28. package/packages/department-user-tree-inline/src/group-user/group-list.vue +97 -90
  29. package/packages/department-user-tree-inline/src/group-user/group-user.vue +28 -32
  30. package/packages/department-user-tree-mobile/src/department-user-tree-app.vue +103 -75
  31. package/packages/department-user-tree-mobile/src/department-user-tree-inline-app.vue +282 -224
  32. package/packages/department-user-tree-mobile/src/department-user-tree-service.ts +58 -51
  33. package/packages/fs-preview/src/fs-preview.vue +20 -2
  34. package/packages/fs-upload-list/src/fs-upload-list.vue +30 -7
  35. package/packages/fs-upload-new/src/file-upload-mobile/file-upload-browser.vue +1 -1
  36. package/packages/fs-upload-new/src/fs-preview-new.vue +27 -15
  37. package/packages/index.js +4 -4
  38. package/packages/organization-input/src/organization-input.vue +34 -12
  39. package/packages/super-grid/src/apis.js +21 -4
  40. package/packages/super-grid/src/dynamic-input.vue +58 -13
  41. package/packages/super-grid/src/normal-column-content.vue +1 -1
  42. package/packages/super-grid/src/row-operation.vue +10 -4
  43. package/packages/super-grid/src/super-grid.vue +51 -42
  44. package/packages/super-grid/src/utils.js +13 -8
  45. package/packages/super-icon/src/index.vue +4 -1
  46. package/packages/workgroup-tree/src/workgroup-tree.vue +117 -110
  47. package/packages/workgroup-tree-inline/src/workgroup-tree-inline.vue +6 -1
  48. package/packages/workgroup-tree-mobile/src/workgroup-tree-app.vue +103 -75
  49. package/packages/workgroup-tree-mobile/src/workgroup-tree-inline-app.vue +229 -208
  50. package/src/api/sso-service.js +6 -5
  51. package/src/directives/permission/index.js +4 -4
  52. package/src/index.js +71 -2
  53. package/src/store/modules/table.js +0 -1
  54. package/src/styles/theme/dark-blue/sidebar.scss +9 -0
  55. package/src/styles/theme/gray/sidebar.scss +9 -8
  56. package/src/styles/theme/green/sidebar.scss +10 -0
  57. package/src/styles/theme/ocean-blue/sidebar.scss +9 -0
  58. package/src/styles/theme/tiffany-blue-mobile/sidebar.scss +9 -0
  59. package/src/utils/insert_css.js +1 -1
  60. package/src/utils/util.js +19 -0
  61. package/src/views/dsc-component/Sidebar/SidebarItem.vue +2 -2
  62. package/src/views/dsc-component/Sidebar/index.vue +36 -18
  63. package/src/views/layout/components/Menubar/Item.vue +0 -9
  64. package/src/views/layout/components/Menubar/SidebarItem.vue +2 -2
  65. package/src/views/layout/components/Sidebar/Item.vue +4 -1
  66. package/src/views/layout/components/Sidebar/SidebarItem.vue +2 -2
  67. package/vite.config.js +1 -1
@@ -2,117 +2,134 @@
2
2
  <div>
3
3
  <el-card class="card-content" style="height: 50px">
4
4
  <el-row class="item-row item-row-all">
5
- <el-col style="width: 100%;">
5
+ <el-col style="width: 100%">
6
6
  <div style="display: flex">
7
- <div style="flex: 0 0 20%;text-align:left">
8
- <el-checkbox v-if="multiple" v-model="checkAll" :label="$t('departmentTreeInline.allCheck')" value="all" @change="changeAllCheck" />
7
+ <div style="flex: 0 0 20%; text-align: left">
8
+ <el-checkbox
9
+ v-if="multiple"
10
+ v-model="checkAll"
11
+ :label="$t('departmentTreeInline.allCheck')"
12
+ value="all"
13
+ @change="changeAllCheck"
14
+ />
9
15
  </div>
10
- <div style="flex: 0 0 80%;text-align:right">
11
- <el-input v-model="searchParam.searchValue" :placeholder="$t('departmentTreeInline.pleaseInputNameOrCode')" @clear="filterAppendNodes" @keyup.enter="filterAppendNodes" @blur="filterAppendNodes" clearable>
12
- <template v-slot:suffix>
13
- <el-icon @click="filterAppendNodes"><Search /></el-icon>
16
+ <div style="flex: 0 0 80%; text-align: right">
17
+ <el-input
18
+ v-model="searchParam.searchValue"
19
+ :placeholder="$t('departmentTreeInline.pleaseInputNameOrCode')"
20
+ @clear="filterAppendNodes"
21
+ @keyup.enter="filterAppendNodes"
22
+ @blur="filterAppendNodes"
23
+ clearable
24
+ >
25
+ <template v-slot:suffix>
26
+ <el-icon @click="filterAppendNodes"><Search /></el-icon>
14
27
  </template>
15
28
  </el-input>
16
29
  </div>
17
30
  </div>
18
- </el-col>
31
+ </el-col>
19
32
  </el-row>
20
33
  </el-card>
21
- <el-card v-if="tenantName" class="card-content" style="height: 40px">
34
+ <el-card v-if="tenantName" class="card-content" style="height: 40px">
22
35
  <el-row class="item-row item-row-all">
23
36
  <el-col class="item-label dept-path">
24
37
  <el-breadcrumb separator="/">
25
- <el-breadcrumb-item>
26
- <span>{{tenantName}}</span>
27
- </el-breadcrumb-item>
38
+ <el-breadcrumb-item>
39
+ <span>{{ tenantName }}</span>
40
+ </el-breadcrumb-item>
28
41
  </el-breadcrumb>
29
42
  </el-col>
30
43
  </el-row>
31
44
  </el-card>
32
- <el-card class="card-content org-tree" style="overflow: auto;">
45
+ <el-card class="card-content org-tree" style="overflow: auto">
33
46
  <el-tree
34
- ref="orgTreeRef"
35
- :data="departments"
36
- :show-checkbox="multiple"
37
- node-key="nodeId"
38
- check-on-click-node
39
- :default-checked-keys="defaultCheckedKeys"
40
- @check-change="handleCheckNode"
41
- @node-click="handleClickNode"
42
- >
43
- <template #default="{ node, data }">
44
- <div class="item-row">
45
- <div class="item-label">{{ data.name }}</div>
46
- <!-- <div v-if="!data.leaf" class="item-side" @click="loadChildren(data,false)">
47
+ ref="orgTreeRef"
48
+ :data="departments"
49
+ :show-checkbox="multiple"
50
+ node-key="nodeId"
51
+ check-on-click-node
52
+ :default-checked-keys="defaultCheckedKeys"
53
+ @check-change="handleCheckNode"
54
+ @node-click="handleClickNode"
55
+ >
56
+ <template #default="{ node, data }">
57
+ <div class="item-row">
58
+ <div class="item-label">{{ data.name }}</div>
59
+ <!-- <div v-if="!data.leaf" class="item-side" @click="loadChildren(data,false)">
47
60
  <el-icon><ArrowRight /></el-icon>
48
61
  </div> -->
49
- </div>
50
- </template>
51
- </el-tree>
62
+ </div>
63
+ </template>
64
+ </el-tree>
52
65
  </el-card>
53
- <el-card class="card-footer" style="height: 40px">
54
- <div style="display: flex;">
55
- <div class="select-result" @click="showResult">
56
- <!-- 已选择:6人,其中有一个部门(含子部门) -->
57
- <span v-if="multiple" @click="showResult">
58
- <span v-if="selectDepts.length > 0">
59
- {{$t('departmentTreeInline.selectResultInfoHasSelect')}}{{$t('departmentTreeInline.workgroupTree',{num: selectDepts.length })}}
60
- <span style="padding-left: 10px"><el-icon><ArrowUpBold /></el-icon></span>
66
+ <el-card class="card-footer" style="height: 40px">
67
+ <div style="display: flex">
68
+ <div class="select-result" @click="showResult">
69
+ <!-- 已选择:6人,其中有一个部门(含子部门) -->
70
+ <span v-if="multiple" @click="showResult">
71
+ <span v-if="selectDepts.length > 0">
72
+ {{ $t('departmentTreeInline.selectResultInfoHasSelect')
73
+ }}{{ $t('departmentTreeInline.workgroupTree', { num: selectDepts.length }) }}
74
+ <span style="padding-left: 10px"
75
+ ><el-icon><ArrowUpBold /></el-icon
76
+ ></span>
77
+ </span>
61
78
  </span>
62
- </span>
63
- <span v-else-if="selectDepts.length > 0">
64
- {{$t('departmentTreeInline.selectResultInfoHasSelect')}}{{selectDepts[0].name }}
65
- </span>
66
- </div>
67
- <div class="button-area">
68
- <el-button size="large" type="primary" @click="saveDept">{{$t('imatrixUIPublicModel.sure')}}</el-button>
79
+ <span v-else-if="selectDepts.length > 0">
80
+ {{ $t('departmentTreeInline.selectResultInfoHasSelect') }}{{ selectDepts[0].name }}
81
+ </span>
82
+ </div>
83
+ <div class="button-area">
84
+ <el-button size="large" type="primary" @click="saveDept">{{ $t('imatrixUIPublicModel.sure') }}</el-button>
85
+ </div>
69
86
  </div>
70
- </div>
71
87
  </el-card>
72
- <deptResult ref="deptResultRef" :selectDepts="selectDepts" @removeDept="removeResultDept"/>
88
+ <deptResult ref="deptResultRef" :selectDepts="selectDepts" @removeDept="removeResultDept" />
73
89
  </div>
74
90
  </template>
75
91
 
76
- <script setup lang="ts">
77
- import { reactive,ref,onMounted, defineEmits,Ref } from 'vue'
78
- import {
79
- ArrowRight,
80
- Search,
81
- ArrowUpBold
82
- } from '@element-plus/icons-vue'
83
- import {getTenant, getTenantChildren, checkedDeptDefault, initSelectGroups} from './workgroup-tree-service.ts'
84
- import {resizeScrollTargetHeightUtil, getDeptNamePath} from '../../utils/organization.ts'
92
+ <script setup lang="ts">
93
+ import { reactive, ref, onMounted, defineEmits, Ref } from 'vue'
94
+ import { ArrowRight, Search, ArrowUpBold } from '@element-plus/icons-vue'
95
+ import { getTenant, getTenantChildren, checkedDeptDefault, initSelectGroups } from './workgroup-tree-service.ts'
96
+ import { resizeScrollTargetHeightUtil, getDeptNamePath } from '../../utils/organization.ts'
85
97
  import deptResult from './dept-result.vue'
86
- import {ElMessage} from 'element-plus'
87
- import {useI18n} from "vue-i18n"
98
+ import { ElMessage } from 'element-plus'
99
+ import { useI18n } from 'vue-i18n'
88
100
  const props = defineProps<{
89
- // 是否是多选树,默认是true
90
- multiple: {
91
- type: Boolean,
92
- default: true,
93
- },
94
- // 显示指定部门节点及其子节点,不传该属性,表示显示整个组织结构树
95
- branchInfo: {
96
- type: Array<any>,
97
- default: null,
98
- },
99
- // 多选部门树时,已选择部门id或部门名称或编码集合,多个之间以逗号隔开
100
- selectWorkgroupInfo: {
101
- type: [String, Number],
102
- default: null,
103
- },
104
- // 移除部门时,部门属性名称:id、name、code,默认是id
105
- searchField: {
106
- type: String,
107
- default: 'code',
108
- },
109
- // 多选树时结果之间的分隔符,默认是逗号分隔
110
- separator: {
111
- type: String,
112
- default: ','
113
- }
114
- }>()
115
- const emits = defineEmits(["close"])
101
+ // 是否是多选树,默认是true
102
+ multiple: {
103
+ type: Boolean
104
+ default: true
105
+ }
106
+ // 显示指定部门节点及其子节点,不传该属性,表示显示整个组织结构树
107
+ branchInfo: {
108
+ type: Array<any>
109
+ default: null
110
+ }
111
+ // 多选部门树时,已选择部门id或部门名称或编码集合,多个之间以逗号隔开
112
+ selectWorkgroupInfo: {
113
+ type: [String, Number]
114
+ default: null
115
+ }
116
+ // 移除部门时,部门属性名称:id、name、code,默认是id
117
+ searchField: {
118
+ type: String
119
+ default: 'code'
120
+ }
121
+ // 多选树时结果之间的分隔符,默认是逗号分隔
122
+ separator: {
123
+ type: String
124
+ default: ','
125
+ }
126
+ // 根据变量限制部门时,根据部门表的哪个字段进行过滤,默认是code
127
+ limitFilterColumn: {
128
+ type: String
129
+ default: 'code'
130
+ }
131
+ }>()
132
+ const emits = defineEmits(['close'])
116
133
  const orgTreeRef = ref(null)
117
134
  let tenantInfo = ref(null)
118
135
  let containBranch = ref(false)
@@ -124,23 +141,23 @@ let selectDepts = ref([])
124
141
  let selectDeptNodeIds = ref([])
125
142
  let clickDepts = ref([])
126
143
  let defaultCheckedKeys = ref([])
127
- let deptResultRef:Ref<any> = ref(null)
144
+ let deptResultRef: Ref<any> = ref(null)
128
145
  let checkAll = ref(false)
129
146
  let searchParam = ref({
130
147
  searchValue: null,
131
148
  treeType: 'GROUP_TREE',
132
149
  departmentInfo: null
133
150
  })
134
- const {t} = useI18n()
135
- onMounted(()=>{
136
- initSelectGroups(props.searchField, props.selectWorkgroupInfo, props.separator ).then((departments)=>{
151
+ const { t } = useI18n()
152
+ onMounted(() => {
153
+ initSelectGroups(props.searchField, props.selectWorkgroupInfo, props.separator).then((departments) => {
137
154
  selectDepts.value = departments
138
155
  getTenantInfo()
139
156
  })
140
157
  resizeScrollTargetHeight()
141
158
  })
142
159
  function getTenantInfo() {
143
- getTenant().then(data=>{
160
+ getTenant().then((data) => {
144
161
  const tenantData = data[0].data
145
162
  tenantInfo.value = JSON.parse(tenantData)
146
163
  containBranch.value = data[0].containBranch
@@ -150,28 +167,28 @@ function getTenantInfo() {
150
167
  }
151
168
 
152
169
  function getTenantChildrenDept() {
153
- getTenantChildren(props.branchInfo, tenantNodeId).then(children=>{
154
- departments.value = children
155
- checkedDeptDefault(selectDepts.value, defaultCheckedKeys.value)
156
- })
170
+ getTenantChildren(props.branchInfo, tenantNodeId).then((children) => {
171
+ departments.value = children
172
+ checkedDeptDefault(selectDepts.value, defaultCheckedKeys.value)
173
+ })
157
174
  }
158
175
 
159
- function resizeScrollTargetHeight () {
160
- const scrollTarget = document.querySelector('.org-tree')
161
- let height = resizeScrollTargetHeightUtil(scrollTarget)
162
- const titleArea = 110
163
- const deptPathArea = 60
164
- const allCheckArea = 60
165
- const buttonArea = 60
166
- height = height - titleArea - deptPathArea - allCheckArea - buttonArea
167
- scrollTarget['style'].height = height + 'px'
168
- scrollTarget['style'].minHeight = '300px'
169
- // scrollTarget.style.maxHeight = height + 'px'
176
+ function resizeScrollTargetHeight() {
177
+ const scrollTarget = document.querySelector('.org-tree')
178
+ let height = resizeScrollTargetHeightUtil(scrollTarget)
179
+ const titleArea = 110
180
+ const deptPathArea = 60
181
+ const allCheckArea = 60
182
+ const buttonArea = 60
183
+ height = height - titleArea - deptPathArea - allCheckArea - buttonArea
184
+ scrollTarget['style'].height = height + 'px'
185
+ scrollTarget['style'].minHeight = '300px'
186
+ // scrollTarget.style.maxHeight = height + 'px'
170
187
  }
171
188
  // 点击复选框时处理
172
189
  function handleCheckNode(data, check, isChildrenCheck) {
173
- if(props.multiple){
174
- if(check) {
190
+ if (props.multiple) {
191
+ if (check) {
175
192
  // 表示选择节点时
176
193
  addToSelectDept(data)
177
194
  } else {
@@ -182,49 +199,48 @@ function handleCheckNode(data, check, isChildrenCheck) {
182
199
  }
183
200
 
184
201
  function handleClickNode(data, node, treenode, events) {
185
- if(!props.multiple && data.nodeType && data.nodeType === 'WORKGROUP') {
202
+ if (!props.multiple && data.nodeType && data.nodeType === 'WORKGROUP') {
186
203
  selectDepts.value = [data]
187
204
  }
188
205
  }
189
206
 
190
-
191
207
  function addToSelectDept(dept) {
192
208
  console.log('addToSelectDept---selectDepts.value=', selectDepts.value, 'dept=', dept)
193
- if(dept.nodeType && dept.nodeType === 'WORKGROUP') {
194
- const filterValue = selectDepts.value.filter(item=> item.nodeId === dept.nodeId)
195
- if(!filterValue || filterValue.length === 0) {
196
- // 表示集合中没有该记录,需要记录到结果集合中
197
- selectDepts.value.push(JSON.parse(JSON.stringify(dept)))
198
- }
209
+ if (dept.nodeType && dept.nodeType === 'WORKGROUP') {
210
+ const filterValue = selectDepts.value.filter((item) => item.nodeId === dept.nodeId)
211
+ if (!filterValue || filterValue.length === 0) {
212
+ // 表示集合中没有该记录,需要记录到结果集合中
213
+ selectDepts.value.push(JSON.parse(JSON.stringify(dept)))
199
214
  }
215
+ }
200
216
  }
201
217
 
202
218
  function removeSelectDept(dept) {
203
- const index = selectDepts.value.findIndex(selectItem=> selectItem.nodeId === dept.nodeId)
219
+ const index = selectDepts.value.findIndex((selectItem) => selectItem.nodeId === dept.nodeId)
204
220
  console.log('removeSelectDept---selectDepts.value=', selectDepts.value, 'dept=', dept, 'index=', index)
205
- if(index !== undefined && index !== -1) {
206
- // 删除指定元素
207
- selectDepts.value.splice(index, 1)
208
- }
209
- checkAll.value =false
221
+ if (index !== undefined && index !== -1) {
222
+ // 删除指定元素
223
+ selectDepts.value.splice(index, 1)
224
+ }
225
+ checkAll.value = false
210
226
  }
211
227
  function changeAllCheck(value: boolean) {
212
228
  console.log('changeCheck====value=', value)
213
- if(props.multiple) {
229
+ if (props.multiple) {
214
230
  // 表示是复选组织树
215
- if(value){
231
+ if (value) {
216
232
  // 表示全选时
217
- const allNodeIds = departments.value.map((item)=>{
218
- return item['nodeId'];
233
+ const allNodeIds = departments.value.map((item) => {
234
+ return item['nodeId']
219
235
  })
220
236
  orgTreeRef.value.setCheckedKeys(allNodeIds, false)
221
- departments.value.forEach(item=>{
237
+ departments.value.forEach((item) => {
222
238
  addToSelectDept(item)
223
239
  })
224
240
  } else {
225
241
  // 表示取消全选时
226
- departments.value.forEach(item=>{
227
- removeSelectDept(item)
242
+ departments.value.forEach((item) => {
243
+ removeSelectDept(item)
228
244
  })
229
245
  orgTreeRef.value.setCheckedKeys([], false)
230
246
  }
@@ -261,13 +277,13 @@ function showResult() {
261
277
  }
262
278
 
263
279
  function removeResultDept(dept) {
264
- const removeDeptInDepts = selectDepts.value.filter(item=>item.nodeId === dept.nodeId)
265
- console.log('removeResultDept-----removeDeptInDepts=', removeDeptInDepts)
266
- if(removeDeptInDepts && removeDeptInDepts.length > 0) {
280
+ const removeDeptInDepts = selectDepts.value.filter((item) => item.nodeId === dept.nodeId)
281
+ console.log('removeResultDept-----removeDeptInDepts=', removeDeptInDepts)
282
+ if (removeDeptInDepts && removeDeptInDepts.length > 0) {
267
283
  // departments结果存在当前移除的节点时,check-change事件会走removeSelectDept的逻辑
268
284
  const selectNodeIds = []
269
- selectDepts.value.forEach(item=>{
270
- if(item.nodeId !== dept.nodeId) {
285
+ selectDepts.value.forEach((item) => {
286
+ if (item.nodeId !== dept.nodeId) {
271
287
  selectNodeIds.push(item.nodeId)
272
288
  }
273
289
  })
@@ -278,98 +294,103 @@ function removeResultDept(dept) {
278
294
  }
279
295
 
280
296
  function saveDept() {
281
- if (props.multiple) {
282
- let leafSelectNodeInfo = {
283
- ids: [],
284
- names: [],
285
- codes: [],
286
- workgroups: []
287
- }
288
- // const parentIds = []
289
- selectDepts.value.forEach(node => {
290
- // node.data是部门对象的json字符串信息,通过JSON.parse(node.data)将json字符串转为对象
291
- let departmentData
292
- // 点开initSelectDepts 查询的数据只有一层
293
- if (node.data !== null && node.data !== undefined) {
294
- departmentData = JSON.parse(node.data)
295
- } else {
296
- departmentData = node
297
- }
298
- addSelectedDepartmentInfo(leafSelectNodeInfo, node, departmentData)
299
- })
300
- let selectNodeInfo = {
301
- ids: [],
302
- names: [],
303
- codes: [],
304
- workgroups: []
305
- }
306
- Object.assign(selectNodeInfo, leafSelectNodeInfo)
307
- if (selectNodeInfo.ids.length > 0) {
308
- emits('close', selectNodeInfo)
309
- } else {
310
- ElMessage({
311
- message: t('imatrixUIMessage.pleaseSelectDepartment'),
312
- type: 'warning',
313
- })
314
- }
297
+ if (props.multiple) {
298
+ let leafSelectNodeInfo = {
299
+ ids: [],
300
+ names: [],
301
+ codes: [],
302
+ workgroups: []
303
+ }
304
+ // const parentIds = []
305
+ selectDepts.value.forEach((node) => {
306
+ // node.data是部门对象的json字符串信息,通过JSON.parse(node.data)将json字符串转为对象
307
+ let departmentData
308
+ // 点开initSelectDepts 查询的数据只有一层
309
+ if (node.data !== null && node.data !== undefined) {
310
+ departmentData = JSON.parse(node.data)
315
311
  } else {
316
- const dept = selectDepts.value[0]
317
- const department = JSON.parse(dept.data)
318
- const showName = dept.name
319
- // if (this.containBranch && dept.branchName) {
320
- // // 如果包含分支机构,则拼接分支机构名称
321
- // name = name + '(' + dept.branchName + ')'
322
- // }
323
- department.tenantName = tenantInfo.value.tenantName
324
- department.tenantCode = tenantInfo.value.code
325
- const selectNodeInfo = {
326
- id: dept.id,
327
- name: showName,
328
- code: department.code,
329
- containBranch: containBranch.value,
330
- workgroup: department
331
- }
332
- emits('close', selectNodeInfo)
312
+ departmentData = node
333
313
  }
314
+ addSelectedDepartmentInfo(leafSelectNodeInfo, node, departmentData)
315
+ })
316
+ let selectNodeInfo = {
317
+ ids: [],
318
+ names: [],
319
+ codes: [],
320
+ workgroups: []
334
321
  }
335
- // 将选中的部门节点添加到结果集合中
336
- function addSelectedDepartmentInfo (result, node, department) {
337
- result.ids.push(node.id)
338
- result.codes.push(department.code)
339
- result.containBranch = containBranch.value
340
- department.tenantCode = tenantInfo.value.code
341
- department.tenantName = tenantInfo.value.tenantName
342
- result.workgroups.push(department)
343
- const showName = department.name
344
- // if (this.containBranch && node.branchName) {
345
- // // 如果包含分支机构,则拼接分支机构名称
346
- // name = name + '(' + node.branchName + ')'
347
- // }
348
- result.names.push(showName)
322
+ Object.assign(selectNodeInfo, leafSelectNodeInfo)
323
+ if (selectNodeInfo.ids.length > 0) {
324
+ emits('close', selectNodeInfo)
325
+ } else {
326
+ ElMessage({
327
+ message: t('imatrixUIMessage.pleaseSelectDepartment'),
328
+ type: 'warning'
329
+ })
330
+ }
331
+ } else {
332
+ const dept = selectDepts.value[0]
333
+ const department = JSON.parse(dept.data)
334
+ const showName = dept.name
335
+ // if (this.containBranch && dept.branchName) {
336
+ // // 如果包含分支机构,则拼接分支机构名称
337
+ // name = name + '(' + dept.branchName + ')'
338
+ // }
339
+ department.tenantName = tenantInfo.value.tenantName
340
+ department.tenantCode = tenantInfo.value.code
341
+ const selectNodeInfo = {
342
+ id: dept.id,
343
+ name: showName,
344
+ code: department.code,
345
+ containBranch: containBranch.value,
346
+ workgroup: department
349
347
  }
348
+ emits('close', selectNodeInfo)
349
+ }
350
+ }
351
+ // 将选中的部门节点添加到结果集合中
352
+ function addSelectedDepartmentInfo(result, node, department) {
353
+ result.ids.push(node.id)
354
+ result.codes.push(department.code)
355
+ result.containBranch = containBranch.value
356
+ department.tenantCode = tenantInfo.value.code
357
+ department.tenantName = tenantInfo.value.tenantName
358
+ result.workgroups.push(department)
359
+ const showName = department.name
360
+ // if (this.containBranch && node.branchName) {
361
+ // // 如果包含分支机构,则拼接分支机构名称
362
+ // name = name + '(' + node.branchName + ')'
363
+ // }
364
+ result.names.push(showName)
365
+ }
350
366
 
351
- function filterAppendNodes ( ) {
352
- if (searchParam.value.searchValue) {
353
- searchParam.value.searchValue = searchParam.value.searchValue.trim()
354
- searchParam.value.departmentInfo = props.branchInfo
355
- window['$vueApp'].config.globalProperties.$http.post(window['$vueApp'].config.globalProperties.baseAPI + '/component/organization-trees/search-mobile-workgroups', searchParam.value).then(result => {
367
+ function filterAppendNodes() {
368
+ if (searchParam.value.searchValue) {
369
+ searchParam.value.searchValue = searchParam.value.searchValue.trim()
370
+ searchParam.value.departmentInfo = props.branchInfo
371
+ window['$vueApp'].config.globalProperties.$http
372
+ .post(
373
+ window['$vueApp'].config.globalProperties.baseAPI + '/component/organization-trees/search-mobile-workgroups',
374
+ searchParam.value
375
+ )
376
+ .then((result) => {
356
377
  if (result) {
357
378
  if (result.length === 0) {
358
379
  ElMessage({
359
380
  message: t('imatrixUIMessage.queryResultIsEmpty'),
360
- type: 'warning',
381
+ type: 'warning'
361
382
  })
362
383
  }
363
384
  departments.value = result
364
385
  } else {
365
386
  ElMessage({
366
387
  message: t('imatrixUIMessage.queryResultIsEmpty'),
367
- type: 'warning',
388
+ type: 'warning'
368
389
  })
369
390
  }
370
391
  })
371
- } else {
372
- getTenantChildrenDept()
373
- }
392
+ } else {
393
+ getTenantChildrenDept()
394
+ }
374
395
  }
375
- </script>
396
+ </script>
@@ -141,11 +141,11 @@ function getUserLangAndTheme() {
141
141
  }
142
142
  }
143
143
 
144
- function forgetPasswordSendMail(username, email) {
145
- const userInfo = {
146
- username,
147
- email,
148
- }
144
+ function getForgetPasswordMailType(username) {
145
+ return request.get(window.$vueApp.config.globalProperties.baseAPI + '/sso/forget-passwords/mail-type?username=' + username)
146
+ }
147
+
148
+ function forgetPasswordSendMail(userInfo) {
149
149
  return request.post(
150
150
  window.$vueApp.config.globalProperties.baseAPI +
151
151
  '/sso/forget-passwords/send-mails',
@@ -236,6 +236,7 @@ export default {
236
236
  getUserLanguage,
237
237
  getUserLangAndTheme,
238
238
  forgetPasswordSendMail,
239
+ getForgetPasswordMailType,
239
240
  isResetPasswordJwtOverdue,
240
241
  resetPassword,
241
242
  isLoginTimeOut,
@@ -4,10 +4,10 @@ const install = function (Vue) {
4
4
  Vue.directive('permission', permission)
5
5
  }
6
6
 
7
- // if (window.Vue) {
8
- // window['permission'] = permission
9
- // window.$vueApp.use(install) // eslint-disable-line
10
- // }
7
+ if (window.Vue) {
8
+ window['permission'] = permission
9
+ window.$vueApp.use(install) // eslint-disable-line
10
+ }
11
11
 
12
12
  permission.install = install
13
13
  export default permission