agilebuilder-ui 1.1.36 → 1.1.37-sit1

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 (64) hide show
  1. package/lib/{401-b8934d65.js → 401-ce7358c2.js} +1 -1
  2. package/lib/{404-743a4631.js → 404-8a0c9304.js} +1 -1
  3. package/lib/{iframe-page-5e102433.js → iframe-page-53f52856.js} +1 -1
  4. package/lib/{index-a0c08bb5.js → index-2e61e67f.js} +10747 -10648
  5. package/lib/super-ui.css +1 -1
  6. package/lib/super-ui.js +1 -1
  7. package/lib/super-ui.umd.cjs +98 -98
  8. package/lib/{tab-content-iframe-index-e9b465bf.js → tab-content-iframe-index-e0a67343.js} +1 -1
  9. package/lib/{tab-content-index-313404d0.js → tab-content-index-fd4f9ad4.js} +1 -1
  10. package/lib/{tache-subprocess-history-7d87cd77.js → tache-subprocess-history-7381fba2.js} +1 -1
  11. package/package.json +1 -1
  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/organization-input/src/organization-input.vue +34 -12
  38. package/packages/super-grid/src/apis.js +25 -4
  39. package/packages/super-grid/src/dynamic-input.vue +85 -15
  40. package/packages/super-grid/src/normal-column-content.vue +2 -1
  41. package/packages/super-grid/src/row-operation.vue +23 -13
  42. package/packages/super-grid/src/super-grid.vue +51 -42
  43. package/packages/super-grid/src/utils.js +28 -9
  44. package/packages/super-icon/src/index.vue +4 -1
  45. package/packages/workgroup-tree/src/workgroup-tree.vue +117 -110
  46. package/packages/workgroup-tree-inline/src/workgroup-tree-inline.vue +6 -1
  47. package/packages/workgroup-tree-mobile/src/workgroup-tree-app.vue +103 -75
  48. package/packages/workgroup-tree-mobile/src/workgroup-tree-inline-app.vue +229 -208
  49. package/src/api/sso-service.js +6 -5
  50. package/src/store/modules/table.js +0 -1
  51. package/src/styles/theme/dark-blue/sidebar.scss +9 -0
  52. package/src/styles/theme/gray/sidebar.scss +9 -8
  53. package/src/styles/theme/green/sidebar.scss +10 -0
  54. package/src/styles/theme/ocean-blue/sidebar.scss +9 -0
  55. package/src/styles/theme/tiffany-blue-mobile/sidebar.scss +9 -0
  56. package/src/utils/common-util.js +2 -1
  57. package/src/utils/insert_css.js +1 -1
  58. package/src/utils/util.js +19 -0
  59. package/src/views/dsc-component/Sidebar/SidebarItem.vue +2 -2
  60. package/src/views/dsc-component/Sidebar/index.vue +36 -18
  61. package/src/views/layout/components/Menubar/Item.vue +0 -9
  62. package/src/views/layout/components/Menubar/SidebarItem.vue +2 -2
  63. package/src/views/layout/components/Sidebar/Item.vue +4 -1
  64. package/src/views/layout/components/Sidebar/SidebarItem.vue +2 -2
@@ -2,122 +2,174 @@
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('departmentUserTree.pleaseEnterUserInformation')" @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('departmentUserTree.pleaseEnterUserInformation')"
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">
34
+ <el-card v-if="tenantName" class="card-content">
22
35
  <el-row class="item-row item-row-all">
23
- <el-col class="item-label dept-path"><deptPath :tenantName="tenantName" :clickDepts="clickDepts" @clickBreadcrumb="clickBreadcrumb"/></el-col>
36
+ <el-col class="item-label dept-path"
37
+ ><deptPath :tenantName="tenantName" :clickDepts="clickDepts" @clickBreadcrumb="clickBreadcrumb"
38
+ /></el-col>
24
39
  </el-row>
25
40
  </el-card>
26
- <el-card class="card-content org-tree" style="overflow: auto;">
41
+ <el-card class="card-content org-tree" style="overflow: auto">
27
42
  <el-tree
28
- ref="orgTreeRef"
29
- :data="departments"
30
- :show-checkbox="multiple"
31
- node-key="nodeId"
32
- :props="defaultProps"
33
- :default-checked-keys="defaultCheckedKeys"
34
- @check-change="handleCheckNode"
35
- @node-click="handleClickNode"
36
- >
37
- <template #default="{ node, data }">
38
- <div class="item-row">
39
- <div v-if="data.nodeType && data.nodeType === 'USER'" class="item-label">{{ data.showName }}
40
- <span style="color:#999">({{ data.loginName }}{{ getUserMainDeptName(data) ? '/'+getUserMainDeptName(data): ''}})</span>
41
- </div>
42
- <div v-else class="item-label" @click="loadChildren(data,false)">{{ data.showName }}<span v-if="data.parentNodeId !== '-1' && getDeptNamePath(data)" style="color:#999">({{ getDeptNamePath(data) }})</span></div>
43
- <div v-if="!data.nodeType || data.nodeType !== 'USER'" class="item-side" @click="loadChildren(data,false)">
44
- <el-icon><ArrowRight /></el-icon>
43
+ ref="orgTreeRef"
44
+ :data="departments"
45
+ :show-checkbox="multiple"
46
+ node-key="nodeId"
47
+ :props="defaultProps"
48
+ :default-checked-keys="defaultCheckedKeys"
49
+ @check-change="handleCheckNode"
50
+ @node-click="handleClickNode"
51
+ >
52
+ <template #default="{ node, data }">
53
+ <div class="item-row">
54
+ <div v-if="data.nodeType && data.nodeType === 'USER'" class="item-label">
55
+ {{ data.showName }}
56
+ <span style="color: #999"
57
+ >({{ data.loginName }}{{ getUserMainDeptName(data) ? '/' + getUserMainDeptName(data) : '' }})</span
58
+ >
59
+ </div>
60
+ <div v-else class="item-label" @click="loadChildren(data, false)">
61
+ {{ data.showName
62
+ }}<span v-if="data.parentNodeId !== '-1' && getDeptNamePath(data)" style="color: #999"
63
+ >({{ getDeptNamePath(data) }})</span
64
+ >
65
+ </div>
66
+ <div v-if="!data.nodeType || data.nodeType !== 'USER'" class="item-side" @click="loadChildren(data, false)">
67
+ <el-icon><ArrowRight /></el-icon>
68
+ </div>
45
69
  </div>
46
- </div>
47
- </template>
48
- </el-tree>
70
+ </template>
71
+ </el-tree>
49
72
  </el-card>
50
- <el-card class="card-footer">
51
- <div style="display: flex;">
52
- <div class="select-result" >
53
- <!-- 已选择:{useNum}个用户,{deptNum}个部门(含子部门) -->
54
- <!-- {{$t('departmentUserTree.selectResultInfo',{userNum: selectUsers.length, deptNum: selectDepts.length})}} -->
55
- <span v-if="multiple" @click="showResult">
56
- <span v-if="selectUsers.length > 0 && selectDepts.length > 0">{{$t('departmentTreeInline.selectResultInfoHasSelect')}}{{$t('departmentUserTree.selectUserResultInfo',{userNum: selectUsers.length })}}, {{$t('departmentUserTree.selectDeptResultInfo',{deptNum: selectDepts.length })}}</span>
57
- <span v-else-if="selectUsers.length > 0">{{$t('departmentTreeInline.selectResultInfoHasSelect')}}{{$t('departmentUserTree.selectUserResultInfo',{userNum: selectUsers.length })}}</span>
58
- <span v-else-if="selectDepts.length > 0">{{$t('departmentTreeInline.selectResultInfoHasSelect')}}{{$t('departmentUserTree.selectDeptResultInfo',{deptNum: selectDepts.length })}}</span>
59
- <span v-if="selectUsers.length > 0 || selectDepts.length > 0" style="padding-left: 10px"><el-icon><ArrowUpBold /></el-icon></span>
60
- </span>
61
- <span v-else-if="selectUsers.length > 0">
62
- {{$t('departmentTreeInline.selectResultInfoHasSelect')}}{{selectUsers[0].showName }}<span style="color:#999">({{ selectUsers[0].loginName }}{{ getUserMainDeptName(selectUsers[0]) ? '/'+getUserMainDeptName(selectUsers[0]): ''}})</span>
63
- </span>
64
-
65
- </div>
66
- <div class="button-area">
67
- <el-button size="large" type="primary" @click="saveDept">{{$t('imatrixUIPublicModel.sure')}}</el-button>
73
+ <el-card class="card-footer">
74
+ <div style="display: flex">
75
+ <div class="select-result">
76
+ <!-- 已选择:{useNum}个用户,{deptNum}个部门(含子部门) -->
77
+ <!-- {{$t('departmentUserTree.selectResultInfo',{userNum: selectUsers.length, deptNum: selectDepts.length})}} -->
78
+ <span v-if="multiple" @click="showResult">
79
+ <span v-if="selectUsers.length > 0 && selectDepts.length > 0"
80
+ >{{ $t('departmentTreeInline.selectResultInfoHasSelect')
81
+ }}{{ $t('departmentUserTree.selectUserResultInfo', { userNum: selectUsers.length }) }},
82
+ {{ $t('departmentUserTree.selectDeptResultInfo', { deptNum: selectDepts.length }) }}</span
83
+ >
84
+ <span v-else-if="selectUsers.length > 0"
85
+ >{{ $t('departmentTreeInline.selectResultInfoHasSelect')
86
+ }}{{ $t('departmentUserTree.selectUserResultInfo', { userNum: selectUsers.length }) }}</span
87
+ >
88
+ <span v-else-if="selectDepts.length > 0"
89
+ >{{ $t('departmentTreeInline.selectResultInfoHasSelect')
90
+ }}{{ $t('departmentUserTree.selectDeptResultInfo', { deptNum: selectDepts.length }) }}</span
91
+ >
92
+ <span v-if="selectUsers.length > 0 || selectDepts.length > 0" style="padding-left: 10px"
93
+ ><el-icon><ArrowUpBold /></el-icon
94
+ ></span>
95
+ </span>
96
+ <span v-else-if="selectUsers.length > 0">
97
+ {{ $t('departmentTreeInline.selectResultInfoHasSelect') }}{{ selectUsers[0].showName
98
+ }}<span style="color: #999"
99
+ >({{ selectUsers[0].loginName
100
+ }}{{ getUserMainDeptName(selectUsers[0]) ? '/' + getUserMainDeptName(selectUsers[0]) : '' }})</span
101
+ >
102
+ </span>
103
+ </div>
104
+ <div class="button-area">
105
+ <el-button size="large" type="primary" @click="saveDept">{{ $t('imatrixUIPublicModel.sure') }}</el-button>
106
+ </div>
68
107
  </div>
69
- </div>
70
108
  </el-card>
71
- <deptResult ref="deptResultRef" :selectUsers="selectUsers.concat(selectDepts)" @removeResult="removeResultDept"/>
109
+ <deptResult ref="deptResultRef" :selectUsers="selectUsers.concat(selectDepts)" @removeResult="removeResultDept" />
72
110
  </div>
73
111
  </template>
74
112
 
75
- <script setup lang="ts">
76
- import { reactive,ref,onMounted, defineEmits,Ref } from 'vue'
113
+ <script setup lang="ts">
114
+ import { reactive, ref, onMounted, defineEmits, Ref } from 'vue'
115
+ import { ArrowRight, Search, ArrowUpBold } from '@element-plus/icons-vue'
116
+ import {
117
+ getTenant,
118
+ getTenantChildren,
119
+ checkedDeptDefault,
120
+ loadDepartment,
121
+ getUserInDepartments
122
+ } from './department-user-tree-service.ts'
77
123
  import {
78
- ArrowRight,
79
- Search,
80
- ArrowUpBold
81
- } from '@element-plus/icons-vue'
82
- import {getTenant, getTenantChildren, checkedDeptDefault, loadDepartment, getUserInDepartments} from './department-user-tree-service.ts'
83
- import {resizeScrollTargetHeightUtil, getUserMainDeptName, getDeptNamePath,initSelectUsers, addSelectedUserInfo, packageSelectResult} from '../../utils/organization.ts'
124
+ resizeScrollTargetHeightUtil,
125
+ getUserMainDeptName,
126
+ getDeptNamePath,
127
+ initSelectUsers,
128
+ addSelectedUserInfo,
129
+ packageSelectResult
130
+ } from '../../utils/organization.ts'
84
131
  import deptPath from './dept-path.vue'
85
132
  import deptResult from './dept-result.vue'
86
- import {ElMessage} from 'element-plus'
87
- import {useI18n} from "vue-i18n"
133
+ import { ElMessage } from 'element-plus'
134
+ import { useI18n } from 'vue-i18n'
88
135
  const props = defineProps<{
89
- // 是否是多选树,默认是true
90
- multiple: {
91
- type: Boolean,
92
- default: true,
93
- },
94
- // 显示指定部门节点及其子节点,不传该属性,表示显示整个组织结构树
95
- departmentInfo: {
96
- type: Array<any>,
97
- default: null,
98
- },
99
- // 多选用户树时,已选择用户id或登录名集合,多个之间以逗号隔开
100
- selectUserInfo: {
101
- type: [String, Number],
102
- default: null,
103
- },
104
- // 移除用户时,用户属性名称:id、loginName、email、telephone,默认是loginName
105
- searchField: {
106
- type: String,
107
- default: 'loginName',
108
- },
109
- // 多选树时结果之间的分隔符,默认是逗号分隔
110
- separator: {
111
- type: String,
112
- default: ','
113
- }
114
- }>()
115
- const emits = defineEmits(["close"])
136
+ // 是否是多选树,默认是true
137
+ multiple: {
138
+ type: Boolean
139
+ default: true
140
+ }
141
+ // 显示指定部门节点及其子节点,不传该属性,表示显示整个组织结构树
142
+ departmentInfo: {
143
+ type: Array<any>
144
+ default: null
145
+ }
146
+ // 多选用户树时,已选择用户id或登录名集合,多个之间以逗号隔开
147
+ selectUserInfo: {
148
+ type: [String, Number]
149
+ default: null
150
+ }
151
+ // 移除用户时,用户属性名称:id、loginName、email、telephone,默认是loginName
152
+ searchField: {
153
+ type: String
154
+ default: 'loginName'
155
+ }
156
+ // 多选树时结果之间的分隔符,默认是逗号分隔
157
+ separator: {
158
+ type: String
159
+ default: ','
160
+ }
161
+ // 根据变量限制部门时,根据部门表的哪个字段进行过滤,默认是code
162
+ limitFilterColumn: {
163
+ type: String
164
+ default: 'code'
165
+ }
166
+ }>()
167
+ const emits = defineEmits(['close'])
116
168
  const orgTreeRef = ref(null)
117
169
  let tenantInfo = ref(null)
118
170
  let containBranch = ref(false)
119
171
  let tenantName = ref(null)
120
- let tenantNodeId = "-1"
172
+ let tenantNodeId = '-1'
121
173
  let departments = ref([])
122
174
  let checkedKeys = ref([])
123
175
  let selectUsers = ref([])
@@ -125,7 +177,7 @@ let selectDepts = ref([])
125
177
  let selectDeptNodeIds = ref([])
126
178
  let clickDepts = ref([])
127
179
  let defaultCheckedKeys = ref([])
128
- let deptResultRef:Ref<any> = ref(null)
180
+ let deptResultRef: Ref<any> = ref(null)
129
181
  let checkAll = ref(false)
130
182
  let searchParam = ref({
131
183
  userField: 'name',
@@ -134,20 +186,19 @@ let searchParam = ref({
134
186
  departmentInfo: null
135
187
  })
136
188
  let defaultProps = ref({
137
- disabled: 'disable'
138
-
189
+ disabled: 'disable'
139
190
  })
140
191
  let loading = ref(false)
141
- const {t} = useI18n()
142
- onMounted(()=>{
143
- initSelectUsers(props.searchField, props.selectUserInfo, props.separator ).then((departments)=>{
192
+ const { t } = useI18n()
193
+ onMounted(() => {
194
+ initSelectUsers(props.searchField, props.selectUserInfo, props.separator).then((departments) => {
144
195
  selectUsers.value = departments
145
196
  getTenantInfo()
146
197
  })
147
198
  resizeScrollTargetHeight()
148
199
  })
149
200
  function getTenantInfo() {
150
- getTenant().then(data=>{
201
+ getTenant().then((data) => {
151
202
  const tenantData = data[0].data
152
203
  tenantInfo.value = JSON.parse(tenantData)
153
204
  containBranch.value = data[0].containBranch
@@ -157,59 +208,59 @@ function getTenantInfo() {
157
208
  }
158
209
 
159
210
  function getTenantChildrenDept() {
160
- getTenantChildren(props.departmentInfo, tenantNodeId).then(children=>{
161
- departments.value = children
162
- checkedDeptDefault(selectUsers.value, defaultCheckedKeys.value)
163
- })
211
+ getTenantChildren(props.departmentInfo, tenantNodeId, props.limitFilterColumn).then((children) => {
212
+ departments.value = children
213
+ checkedDeptDefault(selectUsers.value, defaultCheckedKeys.value)
214
+ })
164
215
  }
165
216
 
166
- function resizeScrollTargetHeight () {
167
- const scrollTarget = document.querySelector('.org-tree')
168
- let height = resizeScrollTargetHeightUtil(scrollTarget)
169
- const titleArea = 110
170
- const deptPathArea = 60
171
- const allCheckArea = 60
172
- const buttonArea = 60
173
- height = height - titleArea - deptPathArea - allCheckArea - buttonArea
174
- scrollTarget['style'].height = height + 'px'
175
- scrollTarget['style'].minHeight = '300px'
176
- // scrollTarget.style.maxHeight = height + 'px'
217
+ function resizeScrollTargetHeight() {
218
+ const scrollTarget = document.querySelector('.org-tree')
219
+ let height = resizeScrollTargetHeightUtil(scrollTarget)
220
+ const titleArea = 110
221
+ const deptPathArea = 60
222
+ const allCheckArea = 60
223
+ const buttonArea = 60
224
+ height = height - titleArea - deptPathArea - allCheckArea - buttonArea
225
+ scrollTarget['style'].height = height + 'px'
226
+ scrollTarget['style'].minHeight = '300px'
227
+ // scrollTarget.style.maxHeight = height + 'px'
177
228
  }
178
229
  // 点击复选框时处理
179
230
  function handleCheckNode(data, check, isChildrenCheck) {
180
- if(props.multiple) {
181
- if(check) {
182
- // 表示选择节点时
183
- if(props.multiple) {
184
- // 表示是复选组织树
185
- addToSelectDept(data)
186
- }
187
- } else {
188
- // 表示取消选择
189
- if(props.multiple || (data.nodeType && data.nodeType === 'USER')) {
190
- removeSelectDept(data)
191
- }
231
+ if (props.multiple) {
232
+ if (check) {
233
+ // 表示选择节点时
234
+ if (props.multiple) {
235
+ // 表示是复选组织树
236
+ addToSelectDept(data)
237
+ }
238
+ } else {
239
+ // 表示取消选择
240
+ if (props.multiple || (data.nodeType && data.nodeType === 'USER')) {
241
+ removeSelectDept(data)
192
242
  }
193
243
  }
244
+ }
194
245
  }
195
246
 
196
247
  function handleClickNode(data, node, treenode, events) {
197
- if(!props.multiple && data.nodeType && data.nodeType === 'USER') {
248
+ if (!props.multiple && data.nodeType && data.nodeType === 'USER') {
198
249
  selectUsers.value = [data]
199
250
  }
200
251
  }
201
252
  function addToSelectDept(dept) {
202
- if(dept.nodeType && dept.nodeType === 'USER') {
253
+ if (dept.nodeType && dept.nodeType === 'USER') {
203
254
  // 表示是用户
204
- const filterValue = selectUsers.value.filter(item=> item.nodeId === dept.nodeId )
205
- if(!filterValue || filterValue.length === 0) {
255
+ const filterValue = selectUsers.value.filter((item) => item.nodeId === dept.nodeId)
256
+ if (!filterValue || filterValue.length === 0) {
206
257
  // 表示集合中没有该记录,需要记录到结果集合中
207
258
  selectUsers.value.push(JSON.parse(JSON.stringify(dept)))
208
259
  }
209
260
  } else {
210
261
  // 表示是部门
211
- const filterValue = selectDepts.value.filter(item=> item.nodeId === dept.nodeId)
212
- if(!filterValue || filterValue.length === 0) {
262
+ const filterValue = selectDepts.value.filter((item) => item.nodeId === dept.nodeId)
263
+ if (!filterValue || filterValue.length === 0) {
213
264
  // 表示集合中没有该记录,需要记录到结果集合中
214
265
  selectDepts.value.push(JSON.parse(JSON.stringify(dept)))
215
266
  }
@@ -217,35 +268,35 @@ function addToSelectDept(dept) {
217
268
  }
218
269
 
219
270
  function removeSelectDept(dept) {
220
- if(dept.nodeType && dept.nodeType === 'USER') {
221
- const index = selectUsers.value.findIndex(selectItem=> selectItem.nodeId === dept.nodeId)
271
+ if (dept.nodeType && dept.nodeType === 'USER') {
272
+ const index = selectUsers.value.findIndex((selectItem) => selectItem.nodeId === dept.nodeId)
222
273
  // 删除指定元素
223
274
  selectUsers.value.splice(index, 1)
224
275
  } else {
225
- const index = selectDepts.value.findIndex(selectItem=> selectItem.nodeId === dept.nodeId)
276
+ const index = selectDepts.value.findIndex((selectItem) => selectItem.nodeId === dept.nodeId)
226
277
  // 删除指定元素
227
278
  selectDepts.value.splice(index, 1)
228
279
  }
229
-
230
- checkAll.value =false
280
+
281
+ checkAll.value = false
231
282
  }
232
283
  function changeAllCheck(value: boolean) {
233
284
  console.log('changeCheck====value=', value)
234
- if(props.multiple) {
285
+ if (props.multiple) {
235
286
  // 表示是复选组织树
236
- if(value){
287
+ if (value) {
237
288
  // 表示全选时
238
- const allNodeIds = departments.value.map((item)=>{
239
- return item['nodeId'];
289
+ const allNodeIds = departments.value.map((item) => {
290
+ return item['nodeId']
240
291
  })
241
292
  orgTreeRef.value.setCheckedKeys(allNodeIds, false)
242
- departments.value.forEach(item=>{
293
+ departments.value.forEach((item) => {
243
294
  addToSelectDept(item)
244
295
  })
245
296
  } else {
246
297
  // 表示取消全选时
247
- departments.value.forEach(item=>{
248
- removeSelectDept(item)
298
+ departments.value.forEach((item) => {
299
+ removeSelectDept(item)
249
300
  })
250
301
  orgTreeRef.value.setCheckedKeys([], false)
251
302
  }
@@ -253,25 +304,25 @@ function changeAllCheck(value: boolean) {
253
304
  }
254
305
 
255
306
  function loadChildrenDept(dept) {
256
- loadDepartment(dept.id, dept.branchId).then(children=>{
307
+ loadDepartment(dept.id, dept.branchId).then((children) => {
257
308
  departments.value = children
258
- checkedDeptDefault(selectUsers.value, defaultCheckedKeys.value)
309
+ checkedDeptDefault(selectUsers.value, defaultCheckedKeys.value)
259
310
  })
260
311
  }
261
- function loadChildren (dept, isBreadcrumb) {
262
- clickDepts.value.push(dept)
263
- loadChildrenDept(dept)
312
+ function loadChildren(dept, isBreadcrumb) {
313
+ clickDepts.value.push(dept)
314
+ loadChildrenDept(dept)
264
315
  }
265
316
 
266
317
  function clickBreadcrumb(item, isTenant, index) {
267
- if(isTenant) {
318
+ if (isTenant) {
268
319
  // 表示点击的时公司节点
269
320
  clickDepts.value = []
270
321
  getTenantChildrenDept()
271
322
  } else {
272
323
  // 表示点击的是部门节点
273
324
  // 删除指定元素
274
- clickDepts.value.splice(index+1, clickDepts.value.length - (index + 1) )
325
+ clickDepts.value.splice(index + 1, clickDepts.value.length - (index + 1))
275
326
  loadChildrenDept(item)
276
327
  }
277
328
  }
@@ -281,17 +332,17 @@ function showResult() {
281
332
  }
282
333
 
283
334
  function removeResultDept(dept) {
284
- const removeDeptInDepts = departments.value.filter(item=>item.nodeId === dept.nodeId)
285
- if(removeDeptInDepts && removeDeptInDepts.length > 0) {
335
+ const removeDeptInDepts = departments.value.filter((item) => item.nodeId === dept.nodeId)
336
+ if (removeDeptInDepts && removeDeptInDepts.length > 0) {
286
337
  // departments结果存在当前移除的节点时,check-change事件会走removeSelectDept的逻辑
287
338
  const selectNodeIds = []
288
- selectUsers.value.forEach(item=>{
289
- if(item.nodeId !== dept.nodeId) {
339
+ selectUsers.value.forEach((item) => {
340
+ if (item.nodeId !== dept.nodeId) {
290
341
  selectNodeIds.push(item.nodeId)
291
342
  }
292
343
  })
293
- selectDepts.value.forEach(item=>{
294
- if(item.nodeId !== dept.nodeId) {
344
+ selectDepts.value.forEach((item) => {
345
+ if (item.nodeId !== dept.nodeId) {
295
346
  selectNodeIds.push(item.nodeId)
296
347
  }
297
348
  })
@@ -300,96 +351,103 @@ function removeResultDept(dept) {
300
351
  removeSelectDept(dept)
301
352
  }
302
353
 
303
- function saveDept () {
304
- if (selectDepts.value.length === 0 && selectUsers.value.length === 0 ) {
305
- ElMessage({
306
- message: t('imatrixUIMessage.pleaseSelectPersonnel'),
307
- type: 'warning',
354
+ function saveDept() {
355
+ if (selectDepts.value.length === 0 && selectUsers.value.length === 0) {
356
+ ElMessage({
357
+ message: t('imatrixUIMessage.pleaseSelectPersonnel'),
358
+ type: 'warning'
359
+ })
360
+ return
361
+ }
362
+ if (props.multiple) {
363
+ const selectNodeInfo = {
364
+ userIds: [],
365
+ userNames: [],
366
+ loginNames: [],
367
+ userZhNames: [],
368
+ userEnNames: [],
369
+ emails: [],
370
+ telephones: [],
371
+ users: []
372
+ }
373
+ const departmentIds = []
374
+ selectDepts.value.forEach((node) => {
375
+ // 部门集合,最后确定时会使用该集合去后台获得用户集合
376
+ departmentIds.push(node.id)
377
+ })
378
+ selectUsers.value.forEach((node) => {
379
+ // 用户集合
380
+ // node.data是部门对象的json字符串信息,通过JSON.parse(node.data)将json字符串转为对象
381
+ const userData = JSON.parse(node.data)
382
+ addSelectedUserInfo(selectNodeInfo, userData, containBranch.value)
383
+ })
384
+ loading.value = true
385
+ if (departmentIds.length > 0) {
386
+ getUserInDepartments(departmentIds)
387
+ .then((users) => {
388
+ if (users) {
389
+ users.forEach((user) => {
390
+ addSelectedUserInfo(selectNodeInfo, user, containBranch.value)
308
391
  })
309
- return
310
- }
311
- if (props.multiple) {
312
- const selectNodeInfo = {
313
- userIds: [],
314
- userNames: [],
315
- loginNames: [],
316
- userZhNames: [],
317
- userEnNames: [],
318
- emails: [],
319
- telephones: [],
320
- users: []
321
- }
322
- const departmentIds = []
323
- selectDepts.value.forEach(node => {
324
- // 部门集合,最后确定时会使用该集合去后台获得用户集合
325
- departmentIds.push(node.id)
326
- })
327
- selectUsers.value.forEach(node => {
328
- // 用户集合
329
- // node.data是部门对象的json字符串信息,通过JSON.parse(node.data)将json字符串转为对象
330
- const userData = JSON.parse(node.data)
331
- addSelectedUserInfo(selectNodeInfo, userData, containBranch.value)
332
- })
333
- loading.value = true
334
- if (departmentIds.length > 0) {
335
- getUserInDepartments(departmentIds).then(users => {
336
- if (users) {
337
- users.forEach(user => {
338
- addSelectedUserInfo(selectNodeInfo, user, containBranch.value)
339
- })
340
- }
341
- loading.value = false
342
- if (selectNodeInfo.userIds.length > 0) {
343
- emits('close', selectNodeInfo)
344
- } else {
345
- ElMessage({
346
- message: t('imatrixUIMessage.pleaseSelectPersonnel'),
347
- type: 'warning',
348
- })
349
- }
350
- }).catch(() => {
351
- loading.value = false
352
- })
353
- } else {
354
- loading.value = false
392
+ }
393
+ loading.value = false
355
394
  if (selectNodeInfo.userIds.length > 0) {
356
395
  emits('close', selectNodeInfo)
357
396
  } else {
358
- ElMessage({
359
- message: t('imatrixUIMessage.pleaseSelectPersonnel'),
360
- type: 'warning',
361
- })
397
+ ElMessage({
398
+ message: t('imatrixUIMessage.pleaseSelectPersonnel'),
399
+ type: 'warning'
400
+ })
362
401
  }
363
- }
364
- } else {
365
- const user = JSON.parse(selectUsers.value[0].data)
366
- const selectNodeInfo = packageSelectResult(user, containBranch.value)
402
+ })
403
+ .catch(() => {
404
+ loading.value = false
405
+ })
406
+ } else {
407
+ loading.value = false
408
+ if (selectNodeInfo.userIds.length > 0) {
367
409
  emits('close', selectNodeInfo)
410
+ } else {
411
+ ElMessage({
412
+ message: t('imatrixUIMessage.pleaseSelectPersonnel'),
413
+ type: 'warning'
414
+ })
368
415
  }
369
416
  }
417
+ } else {
418
+ const user = JSON.parse(selectUsers.value[0].data)
419
+ const selectNodeInfo = packageSelectResult(user, containBranch.value)
420
+ emits('close', selectNodeInfo)
421
+ }
422
+ }
370
423
 
371
- function filterAppendNodes ( ) {
372
- if (searchParam.value.searchValue) {
373
- searchParam.value.searchValue = searchParam.value.searchValue.trim()
374
- searchParam.value.departmentInfo = props.departmentInfo
375
- window['$vueApp'].config.globalProperties.$http.post(window['$vueApp'].config.globalProperties.baseAPI + '/component/organization-trees/search-users-mobile', searchParam.value).then(result => {
424
+ function filterAppendNodes() {
425
+ if (searchParam.value.searchValue) {
426
+ searchParam.value.searchValue = searchParam.value.searchValue.trim()
427
+ searchParam.value.departmentInfo = props.departmentInfo
428
+ window['$vueApp'].config.globalProperties.$http
429
+ .post(
430
+ window['$vueApp'].config.globalProperties.baseAPI + '/component/organization-trees/search-users-mobile',
431
+ searchParam.value
432
+ )
433
+ .then((result) => {
376
434
  if (result) {
377
435
  if (result.length === 0) {
378
436
  ElMessage({
379
437
  message: t('imatrixUIMessage.queryResultIsEmpty'),
380
- type: 'warning',
438
+ type: 'warning'
381
439
  })
382
440
  }
383
441
  departments.value = result
384
442
  } else {
385
443
  ElMessage({
386
444
  message: t('imatrixUIMessage.queryResultIsEmpty'),
387
- type: 'warning',
445
+ type: 'warning'
388
446
  })
389
447
  }
390
448
  })
391
- } else {
392
- getTenantChildrenDept()
393
- }
449
+ } else {
450
+ getTenantChildrenDept()
451
+ }
394
452
  }
395
- </script>
453
+ </script>