agilebuilder-ui 1.0.76 → 1.0.77

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 (53) hide show
  1. package/lib/super-ui.css +1 -1
  2. package/lib/super-ui.js +80258 -78821
  3. package/lib/super-ui.umd.cjs +103 -103
  4. package/package.json +1 -1
  5. package/packages/department-tree/src/department-tree.vue +0 -1
  6. package/packages/department-tree-mobile/src/department-tree-inline-app.vue +15 -15
  7. package/packages/department-user-tree/src/department-user-tree.vue +1 -0
  8. package/packages/department-user-tree-mobile/src/department-user-tree-inline-app.vue +17 -19
  9. package/packages/department-user-tree-mobile/src/department-user-tree-service.ts +0 -11
  10. package/packages/dynamic-source-select/src/dynamic-source-select.vue +5 -5
  11. package/packages/fs-upload-list/src/fs-upload-list.vue +179 -119
  12. package/packages/fs-upload-new/src/file-upload-mobile/file-upload-app.vue +2 -6
  13. package/packages/fs-upload-new/src/file-upload-mobile/file-upload-browser.vue +2 -6
  14. package/packages/fs-upload-new/src/file-upload-mobile/file-upload-component.vue +2 -2
  15. package/packages/fs-upload-new/src/file-upload-mobile/file-upload-input.vue +1 -6
  16. package/packages/fs-upload-new/src/file-upload-mobile/file-upload.vue +0 -6
  17. package/packages/fs-upload-new/src/fs-upload-new.vue +15 -13
  18. package/packages/index.js +8 -2
  19. package/packages/organization-input/src/organization-input.vue +3 -0
  20. package/packages/plugins/export-data-new.js +34 -1
  21. package/packages/scan-code-input/src/scan-code-input.vue +136 -104
  22. package/packages/scan-code-input-browser/index.js +6 -0
  23. package/packages/{scan-code-input/src/scan-code-input-colse.vue → scan-code-input-browser/src/scan-code-input.vue} +1 -28
  24. package/packages/super-grid/src/apis.js +12 -0
  25. package/packages/super-grid/src/dynamic-input.vue +236 -14
  26. package/packages/super-grid/src/normal-column.vue +37 -2
  27. package/packages/super-grid/src/scan-util.ts +243 -0
  28. package/packages/super-grid/src/search-form-advancedQuery.vue +3 -1
  29. package/packages/super-grid/src/search-form-item.vue +4 -2
  30. package/packages/super-grid/src/super-grid-service.js +2 -1
  31. package/packages/super-grid/src/super-grid.vue +19 -0
  32. package/packages/super-grid/src/utils.js +9 -0
  33. package/packages/workgroup-tree/src/workgroup-tree.vue +31 -0
  34. package/packages/workgroup-tree-inline/src/workgroup-tree-inline.vue +28 -0
  35. package/packages/workgroup-tree-inline/src/workgroup-tree-service.js +26 -0
  36. package/packages/workgroup-tree-mobile/index.js +6 -0
  37. package/packages/workgroup-tree-mobile/src/dept-result.vue +51 -0
  38. package/packages/workgroup-tree-mobile/src/workgroup-tree-app.vue +120 -0
  39. package/packages/workgroup-tree-mobile/src/workgroup-tree-inline-app.vue +375 -0
  40. package/packages/workgroup-tree-mobile/src/workgroup-tree-service.ts +62 -0
  41. package/packages/workgroup-user-tree/src/workgroup-user-tree.vue +15 -0
  42. package/packages/workgroup-user-tree-inline/src/workgroup-tree-inline-service.js +27 -0
  43. package/packages/workgroup-user-tree-inline/src/workgroup-user-tree-inline.vue +11 -0
  44. package/packages/workgroup-user-tree-mobile/index.js +6 -0
  45. package/packages/workgroup-user-tree-mobile/src/dept-path.vue +36 -0
  46. package/packages/workgroup-user-tree-mobile/src/dept-result.vue +58 -0
  47. package/packages/workgroup-user-tree-mobile/src/workgroup-user-tree-app.vue +119 -0
  48. package/packages/workgroup-user-tree-mobile/src/workgroup-user-tree-inline-app.vue +394 -0
  49. package/packages/workgroup-user-tree-mobile/src/workgroup-user-tree-service.ts +41 -0
  50. package/src/i18n/langs/cn.js +3 -1
  51. package/src/i18n/langs/en.js +3 -1
  52. package/src/utils/common-util.js +18 -2
  53. package/src/views/layout/EmptyLayout.vue +1 -44
@@ -285,6 +285,7 @@
285
285
  v-model:value="scope.row.value"
286
286
  :prop="scope.row.prop"
287
287
  :row="scope.row"
288
+ :additional-settings="controlConfig"
288
289
  class="customComponent"
289
290
  @focus="selectRow(scope.row)"
290
291
  @input="
@@ -374,7 +375,7 @@ import searchFormNumber from './search-form-number.vue'
374
375
  import store from './store'
375
376
  import SearchConditionInput from './search-condition-input.vue'
376
377
  import SearchConditionList from './search-condition-list.vue'
377
- import {getDynamicDataSourceOptions, isDynamicDataSourceSource} from './utils'
378
+ import {getDynamicDataSourceOptions, isDynamicDataSourceSource, getControlConfig} from './utils'
378
379
  import {
379
380
  CirclePlus,
380
381
  Remove,
@@ -434,6 +435,7 @@ export default {
434
435
  operationArr: [],
435
436
  tableName,
436
437
  isJoinTable: isHasJoinTable, // 是否是关联表
438
+ controlConfig: getControlConfig(this.column)
437
439
  }
438
440
  },
439
441
  computed: {},
@@ -22,6 +22,7 @@
22
22
  :is="column.componentName"
23
23
  :ref="column.componentName"
24
24
  :entity="searchForm"
25
+ :additional-settings="controlConfig"
25
26
  :model-value="getFormItemValue(column.prop)"
26
27
  :prop="column.prop"
27
28
  :row="searchForm"
@@ -237,7 +238,7 @@ import {$emit} from '../../utils/gogocodeTransfer'
237
238
  import searchMethods from './search-methods'
238
239
  import searchFormNumber from './search-form-number.vue'
239
240
  import store from './store'
240
- import {getDynamicDataSourceOptions, isDynamicDataSourceSource} from './utils'
241
+ import {getDynamicDataSourceOptions, isDynamicDataSourceSource, getControlConfig} from './utils'
241
242
 
242
243
  export default {
243
244
  name: 'SearchFormItem',
@@ -291,7 +292,8 @@ export default {
291
292
  dateOne: null,
292
293
  dataTwo: null,
293
294
  moduleConfig: {},
294
- dateVal: this.getFormItemValue(this.column.prop)
295
+ dateVal: this.getFormItemValue(this.column.prop),
296
+ controlConfig: getControlConfig(this.column)
295
297
  }
296
298
  },
297
299
  computed: {
@@ -295,7 +295,8 @@ const superGridService = {
295
295
  column.hasOwnProperty('prop')
296
296
  ) {
297
297
  if (column.prop !== '$index' && column.prop !== '$selection') {
298
- if (column.queryType && column.queryType !== 'no') {
298
+ if (column.queryType && column.queryType !== 'no' && column.componentType && (column.componentType === 'date' || column.componentType === 'dateSection' ||
299
+ column.componentType === 'timePicker' || column.componentType === 'dateTimePicker')) {
299
300
  // 配置了默认值
300
301
  if (column.controlConfig) {
301
302
  queryParameterSize++
@@ -3205,6 +3205,25 @@ export default {
3205
3205
  this.$refs.sf.showMobileSearch()
3206
3206
  }
3207
3207
 
3208
+ },
3209
+ // 移动端选择文件结束
3210
+ pickFileDone (data) {
3211
+ console.log('superPage5555---pickFileDone--data.componentId=', data.componentId, 'data.listCode=', data.listCode, 'data=', data)
3212
+ if (data && data.componentId) {
3213
+ eventBus.$emit(data.componentId + '-pickFileDone', data)
3214
+ }
3215
+ },
3216
+ // 移动端上传文件结束
3217
+ uploadFileDone (data) {
3218
+ if (data && data.componentId) {
3219
+ eventBus.$emit(data.componentId + '-uploadFileDone', data)
3220
+ }
3221
+ },
3222
+ // 移动端扫描结束
3223
+ scanDone (data) {
3224
+ if (data && data.componentId) {
3225
+ eventBus.$emit(data.componentId + '-scanDone', data)
3226
+ }
3208
3227
  }
3209
3228
  },
3210
3229
  emits: [
@@ -881,3 +881,12 @@ export function getAdditionalParamMap(gridParams) {
881
881
  }
882
882
  return additionalParamMap
883
883
  }
884
+
885
+ // 获得控件的配置信息,例如:自定义控件的附加配置等
886
+ export function getControlConfig(column) {
887
+ let controlConfig
888
+ if (column && column.controlConfig) {
889
+ controlConfig = JSON.parse(column.controlConfig)
890
+ }
891
+ return controlConfig
892
+ }
@@ -1,6 +1,17 @@
1
1
  <template>
2
2
  <div>
3
+ <WorkgroupMobileTree
4
+ v-if="isMobile"
5
+ ref="workgroupTree"
6
+ :branch-info="branchInfo"
7
+ :multiple="multiple"
8
+ :search-field="searchField"
9
+ :select-workgroup-info="selectWorkgroupInfo"
10
+ :separator="separator"
11
+ @close="result"
12
+ />
3
13
  <el-dialog
14
+ v-else
4
15
  :close-on-click-modal="false"
5
16
  :title="myTitle"
6
17
  :width="multiple ? '60%' : '40%'"
@@ -35,11 +46,14 @@
35
46
  <script>
36
47
  import {$emit} from '../../utils/gogocodeTransfer'
37
48
  import InlineWorkgroupTree from '../../workgroup-tree-inline/src/workgroup-tree-inline.vue'
49
+ import WorkgroupMobileTree from '../../workgroup-tree-mobile/src/workgroup-tree-app.vue'
50
+ import {isMobileBrowser} from '../../../src/utils/common-util'
38
51
 
39
52
  export default {
40
53
  name: 'WorkgroupTree',
41
54
  components: {
42
55
  InlineWorkgroupTree,
56
+ WorkgroupMobileTree
43
57
  },
44
58
  props: {
45
59
  // 是否是多选树,默认是true
@@ -62,14 +76,31 @@ export default {
62
76
  type: String,
63
77
  default: '60%',
64
78
  },
79
+ // 多选部门树时,已选择部门id或部门名称或编码集合,多个之间以逗号隔开
80
+ selectWorkgroupInfo: {
81
+ type: [String, Number],
82
+ default: null
83
+ },
84
+ // 移除部门时,部门属性名称:id、name、code,默认是id
85
+ searchField: {
86
+ type: String,
87
+ default: 'code',
88
+ },
89
+ // 多选树时结果之间的分隔符,默认是逗号分隔
90
+ separator: {
91
+ type: String,
92
+ default: ','
93
+ }
65
94
  },
66
95
  data() {
67
96
  let myTitle = this.$t('imatrixUIMessage.pleaseSelectATeam')
68
97
  if (this.title) {
69
98
  myTitle = this.title
70
99
  }
100
+ const isMobile = isMobileBrowser()
71
101
  return {
72
102
  myTitle,
103
+ isMobile
73
104
  }
74
105
  },
75
106
  methods: {
@@ -163,6 +163,21 @@ export default {
163
163
  type: Array,
164
164
  default: null,
165
165
  },
166
+ // 多选工作组树时,已选择工作组id或工作组名称或工作组编码集合,多个之间以逗号隔开
167
+ selectGroupInfo: {
168
+ type: [String, Number],
169
+ default: null,
170
+ },
171
+ // 工作组属性名称:id、name、code,默认是id
172
+ searchField: {
173
+ type: String,
174
+ default: 'code',
175
+ },
176
+ // 多选树时结果之间的分隔符,默认是逗号分隔
177
+ separator: {
178
+ type: String,
179
+ default: ',',
180
+ }
166
181
  },
167
182
  computed: {},
168
183
  watch: {
@@ -174,6 +189,19 @@ export default {
174
189
  }
175
190
  },
176
191
  },
192
+ created() {
193
+ if(this.multiple){
194
+ this.initSelectGroups(
195
+ this.searchField,
196
+ this.selectGroupInfo,
197
+ this.separator
198
+ ).then((selectGroups) => {
199
+ if (selectGroups) {
200
+ this.selectResult = selectGroups
201
+ }
202
+ })
203
+ }
204
+ },
177
205
  mounted() {
178
206
  var searchWorkgroup = localStorage.getObject(this.searchStoreKey)
179
207
  if (searchWorkgroup) {
@@ -89,5 +89,31 @@ const workgroupTreeService = {
89
89
  }
90
90
  })
91
91
  },
92
+ initSelectGroups(searchField, selectGroupInfo, separator) {
93
+ return new Promise((resolve, reject) => {
94
+ if (!searchField) {
95
+ resolve([])
96
+ } else if (!selectGroupInfo) {
97
+ resolve([])
98
+ } else {
99
+ this.$http
100
+ .get(
101
+ window.$vueApp.config.globalProperties.baseAPI +
102
+ '/component/organization-trees/select-workgroups?searchField=' +
103
+ searchField +
104
+ '&selectWorkgroupInfo=' +
105
+ selectGroupInfo +
106
+ '&separator=' +
107
+ separator
108
+ )
109
+ .then((groups) => {
110
+ resolve(groups)
111
+ })
112
+ .catch((error) => {
113
+ reject(error)
114
+ })
115
+ }
116
+ })
117
+ }
92
118
  }
93
119
  export default workgroupTreeService
@@ -0,0 +1,6 @@
1
+ import WorkgroupTreeMobile from './src/workgroup-tree-app.vue'
2
+ WorkgroupTreeMobile.install = function (Vue) {
3
+ Vue.component('WorkgroupTreeMobile', WorkgroupTreeMobile)
4
+ }
5
+
6
+ export default WorkgroupTreeMobile
@@ -0,0 +1,51 @@
1
+
2
+ <template>
3
+ <el-drawer v-model="isShowForm" direction="btt" size="80%" class="organization-tree">
4
+ <template #header>
5
+ <div style="text-align: center;">
6
+ {{$t('departmentTreeInline.selectResultTitle')}}
7
+ </div>
8
+ </template>
9
+ <template #default>
10
+ <el-tree
11
+ ref="orgResultTreeRef"
12
+ :data="selectDepts"
13
+ node-key="nodeId"
14
+ check-on-click-node
15
+ >
16
+ <template #default="{ node, data }">
17
+ <div class="item-row">
18
+ <div class="item-label">{{ data.name }}</div>
19
+ <div class="item-side" @click="removeDept(data)">
20
+ <el-icon><DeleteFilled /></el-icon>
21
+ </div>
22
+ </div>
23
+ </template>
24
+ </el-tree>
25
+ </template>
26
+ </el-drawer>
27
+ </template>
28
+ <script setup lang="ts">
29
+ import {
30
+ DeleteFilled
31
+ } from '@element-plus/icons-vue'
32
+ import { reactive,ref,onMounted, defineEmits } from 'vue'
33
+ const props = defineProps({
34
+ selectDepts: {
35
+ type: Array<any>,
36
+ default: null
37
+ }
38
+ })
39
+ let isShowForm = ref(false)
40
+ const emits = defineEmits(['removeDept'])
41
+ function removeDept (item) {
42
+ emits('removeDept', item )
43
+ }
44
+
45
+ function showResult() {
46
+ isShowForm.value = true
47
+ }
48
+
49
+ defineExpose({showResult})
50
+
51
+ </script>
@@ -0,0 +1,120 @@
1
+ <template>
2
+ <el-drawer v-model="isShowForm" :close-on-click-modal="false" :close-on-press-escape="false" direction="btt" size="100%" class="organization-tree" @close="closeTree()">
3
+ <template #header>
4
+ <div style="text-align: center;">
5
+ {{$t('imatrixUIMessage.pleaseSelect')}}
6
+ </div>
7
+ </template>
8
+ <template #default>
9
+ <InlineWorkgroupTreeApp v-if="isShowForm" :multiple="multiple" :branchInfo="branchInfo" :selectWorkgroupInfo="selectWorkgroupInfo" :searchField="searchField" :separator="separator" @close="closeTree"/>
10
+ </template>
11
+ </el-drawer>
12
+
13
+ </template>
14
+
15
+ <script lang="ts">
16
+ export default {
17
+ name: 'DepartmentTreeMobile'
18
+ }
19
+ </script>
20
+ <script setup lang="ts">
21
+ import InlineWorkgroupTreeApp from './workgroup-tree-inline-app.vue'
22
+ import { reactive,ref,onMounted, defineEmits } from 'vue'
23
+ const props = defineProps<{
24
+ // 是否是多选树,默认是true
25
+ multiple: {
26
+ type: Boolean,
27
+ default: true,
28
+ },
29
+ // 显示指定部门节点及其子节点,不传该属性,表示显示整个组织结构树
30
+ branchInfo: {
31
+ type: Array<any>,
32
+ default: null,
33
+ },
34
+ // 多选部门树时,已选择部门id或部门名称或编码集合,多个之间以逗号隔开
35
+ selectWorkgroupInfo: {
36
+ type: [String, Number],
37
+ default: null,
38
+ },
39
+ // 移除部门时,部门属性名称:id、name、code,默认是id
40
+ searchField: {
41
+ type: String,
42
+ default: 'code',
43
+ },
44
+ // 多选树时结果之间的分隔符,默认是逗号分隔
45
+ separator: {
46
+ type: String,
47
+ default: ','
48
+ }
49
+ }>()
50
+ const emits = defineEmits(['close'])
51
+ let isShowForm = ref(true)
52
+ // function showTree() {
53
+ // isShowForm.value = true
54
+ // }
55
+ function closeTree(selectNodeInfo) {
56
+ emits('close', selectNodeInfo)
57
+ isShowForm.value = false
58
+ }
59
+ function selectDepartment() {
60
+ // this.$refs.inlineDeparmentTree.selectDepartment()
61
+ }
62
+ // defineExpose({showTree})
63
+ </script>
64
+ <style>
65
+ .organization-tree, .organization-tree .el-checkbox__label,.organization-tree .el-breadcrumb__inner,.organization-tree .el-tree {
66
+ font-size: 17px;
67
+ font-weight: 700;
68
+ }
69
+
70
+ .organization-tree .el-breadcrumb__item:last-child .el-breadcrumb__inner, .el-breadcrumb__item:last-child .el-breadcrumb__inner a, .el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover, .el-breadcrumb__item:last-child .el-breadcrumb__inner:hover {
71
+ font-size: 17px;
72
+ font-weight: 700;
73
+ }
74
+ .organization-tree .el-card__body {
75
+ padding-top: 10px;
76
+ }
77
+ .organization-tree .card-content {
78
+ margin-top: 10px;
79
+ }
80
+ .organization-tree .item-row-all {
81
+ margin-bottom: 10px;
82
+ }
83
+ .organization-tree .item-row {
84
+ display: flex;
85
+ width: 100%;
86
+ }
87
+ .organization-tree .item-label {
88
+ flex: 0 0 90%;
89
+ text-align: left;
90
+ }
91
+ .organization-tree .item-side {
92
+ flex: 0 0 10%;
93
+ text-align: right;
94
+ }
95
+ .organization-tree .el-tree-node {
96
+ margin-bottom: 10px;
97
+ }
98
+
99
+ .organization-tree .el-tree-node__content>.el-tree-node__expand-icon {
100
+ padding: 0;
101
+ display: none;
102
+ }
103
+
104
+ .organization-tree .card-footer {
105
+ padding: 20px;
106
+ }
107
+ .organization-tree .card-footer .select-result {
108
+ color: #409EFF;
109
+ flex:1 1 75%;
110
+ text-align: left;
111
+ }
112
+ .organization-tree .card-footer .button-area {
113
+ flex:0 0 20%;
114
+ text-align: right;
115
+ }
116
+
117
+ .organization-tree .dept-path .breadcrumb-label-link{
118
+ color:#409EFF
119
+ }
120
+ </style>