agilebuilder-ui 1.1.10 → 1.1.12-tmp1

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 (35) hide show
  1. package/lib/super-ui.css +1 -1
  2. package/lib/super-ui.js +18680 -18550
  3. package/lib/super-ui.umd.cjs +78 -72
  4. package/package.json +1 -1
  5. package/packages/department-tree/src/department-tree.vue +2 -0
  6. package/packages/department-tree-mobile/src/department-tree-app.vue +1 -1
  7. package/packages/department-user-tree/src/department-user-multiple-tree.vue +1 -0
  8. package/packages/department-user-tree-inline/src/department-user-multiple-tree-inline.vue +704 -750
  9. package/packages/department-user-tree-mobile/src/department-user-tree-app.vue +1 -1
  10. package/packages/department-user-tree-mobile/src/department-user-tree-inline-app.vue +1 -1
  11. package/packages/fs-upload-list/src/fs-upload-list.vue +1 -1
  12. package/packages/fs-upload-new/src/file-upload-mobile/file-upload-app.vue +16 -2
  13. package/packages/fs-upload-new/src/file-upload-mobile/file-upload-browser.vue +9 -9
  14. package/packages/fs-upload-new/src/file-upload-mobile/file-upload-component.vue +3 -3
  15. package/packages/fs-upload-new/src/file-upload-mobile/file-upload-input.vue +1 -0
  16. package/packages/fs-upload-new/src/fs-preview-new.vue +3 -2
  17. package/packages/organization-input/src/organization-input.vue +13 -8
  18. package/packages/row-form/index.vue +68 -4
  19. package/packages/row-form/operation.vue +151 -0
  20. package/packages/super-grid/src/dynamic-input.vue +11 -0
  21. package/packages/super-grid/src/normal-column-content.vue +1 -7
  22. package/packages/super-grid/src/row-operation.vue +1 -0
  23. package/packages/super-grid/src/super-grid-service.js +1 -0
  24. package/packages/super-grid/src/super-grid.vue +19 -3
  25. package/packages/workgroup-tree/src/workgroup-tree.vue +2 -0
  26. package/packages/workgroup-tree-mobile/src/workgroup-tree-app.vue +1 -1
  27. package/packages/workgroup-user-tree/src/workgroup-user-tree.vue +2 -0
  28. package/packages/workgroup-user-tree-mobile/src/workgroup-user-tree-app.vue +1 -1
  29. package/packages/workgroup-user-tree-mobile/src/workgroup-user-tree-inline-app.vue +1 -1
  30. package/src/styles/index.scss +32 -0
  31. package/src/styles/theme/tiffany-blue-mobile/drawer.scss +6 -2
  32. package/src/utils/calculator/calculator-factory.js +18 -30
  33. package/src/utils/common-util.js +23 -1
  34. package/src/views/dsc-component/Sidebar/SidebarItem.vue +32 -61
  35. package/vite.config.js +0 -4
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <el-drawer v-model="isShowForm" direction="btt" size="100%" class="organization-tree" @close="closeTree()">
2
+ <el-drawer v-model="isShowForm" append-to-body :close-on-click-modal="false" :close-on-press-escape="false" direction="btt" size="100%" class="organization-tree" @close="closeTree()">
3
3
  <template #header>
4
4
  <div style="text-align: center;">
5
5
  {{$t('imatrixUIMessage.pleaseSelect')}}
@@ -39,7 +39,7 @@
39
39
  <div v-if="data.nodeType && data.nodeType === 'USER'" class="item-label">{{ data.showName }}
40
40
  <span style="color:#999">({{ data.loginName }}{{ getUserMainDeptName(data) ? '/'+getUserMainDeptName(data): ''}})</span>
41
41
  </div>
42
- <div v-else class="item-label">{{ data.showName }}<span v-if="data.parentNodeId !== '-1' && getDeptNamePath(data)" style="color:#999">({{ getDeptNamePath(data) }})</span></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
43
  <div v-if="!data.nodeType || data.nodeType !== 'USER'" class="item-side" @click="loadChildren(data,false)">
44
44
  <el-icon><ArrowRight /></el-icon>
45
45
  </div>
@@ -138,7 +138,7 @@ import { getSystemFrontendUrl, isPlateSys, isMobileBrowser } from '../../../src/
138
138
  import FsPreview from '../../fs-preview/src/fs-preview.vue'
139
139
  import { packageFile } from '../../super-grid/src/utils'
140
140
  import FileUploadInputMobile from '../../fs-upload-new/src/file-upload-mobile/file-upload-input.vue'
141
-
141
+ import { Base64 } from 'js-base64'
142
142
  export default {
143
143
  name: 'FsUploadList',
144
144
  props: {
@@ -156,7 +156,7 @@ const emits = defineEmits(['remove', 'uploadend'])
156
156
 
157
157
  // 表示点击了选择文件按钮
158
158
  function pickBrowserFiles() {
159
- // console.log('---点击了选择文件按钮---')
159
+ console.log('---点击了选择文件按钮---')
160
160
  const message = {
161
161
  type: 'pickFiles',
162
162
  multiple: props.multiple,
@@ -166,7 +166,21 @@ function pickBrowserFiles() {
166
166
  token: getToken(),
167
167
  listCode: props.listCode
168
168
  }
169
- window.parent.postMessage(JSON.stringify(message), '*')
169
+ if(window.parent && window.parent.parent && window.parent.parent.parent ) {
170
+ console.log('---点击了选择文件按钮111---')
171
+ message.myCustom = 'window.parent.parent.parent'
172
+ // 加上uniapp中的iframe,一共是4层iframe嵌套时.最多支持4层iframe嵌套。
173
+ window.parent.parent.parent.postMessage(JSON.stringify(message), '*')
174
+ } else if(window.parent && window.parent.parent) {
175
+ console.log('---点击了选择文件按钮222---')
176
+ message.myCustom = 'window.parent.parent'
177
+ // 加上uniapp中的iframe,一共是3层iframe嵌套时
178
+ window.parent.parent.postMessage(JSON.stringify(message), '*')
179
+ } else {
180
+ console.log('---点击了选择文件按钮444---')
181
+ message.myCustom = 'window.parent'
182
+ window.parent.postMessage(JSON.stringify(message), '*')
183
+ }
170
184
  }
171
185
 
172
186
  function pickFileDone(data) {
@@ -15,7 +15,7 @@
15
15
  @chooseFile="pickBrowserFiles"
16
16
  @remove="removeFile"
17
17
  />
18
- <template v-if="openCameraOrChoosePhoto && openCameraOrChoosePhoto === 'openCamera'">
18
+ <!-- <template v-if="openCameraOrChoosePhoto && openCameraOrChoosePhoto === 'openCamera'"> -->
19
19
  <!-- 由于直接打开capture相机属性的设置为空或者不是user/environment其中的任意一项时会打开的本地捕获音频 麦克风-->
20
20
  <!-- 所有使用 template 可查看 https://w3c.github.io/html-media-capture/#introduction -->
21
21
  <input
@@ -39,7 +39,7 @@
39
39
  :accept="myAccept"
40
40
  @change="uploadFiles"
41
41
  />
42
- </template>
42
+ <!-- </template>
43
43
  <template v-else>
44
44
  <input
45
45
  v-if="multiple && !disabled"
@@ -60,7 +60,7 @@
60
60
  :accept="myAccept"
61
61
  @change="uploadFiles"
62
62
  />
63
- </template>
63
+ </template> -->
64
64
  <el-drawer v-model="fileTypeFlag" direction="btt" @close="fileTypeFlag = false">
65
65
  <div><el-button
66
66
  link
@@ -261,17 +261,17 @@ function removeFile(param) {
261
261
  }
262
262
  }
263
263
  function pickBrowserFiles() {
264
- if (props.openCameraOrChoosePhoto && props.openCameraOrChoosePhoto === 'openCamera') {
264
+ // if (props.openCameraOrChoosePhoto && props.openCameraOrChoosePhoto === 'openCamera') {
265
265
  // 只打开相机
266
266
  myAccept.value = 'image/*'
267
267
  setTimeout(() => {
268
268
  fileRef.value.click()
269
269
  })
270
- } else {
271
- // 相机和文件都可以选
272
- myAccept.value = '*'
273
- fileTypeFlag.value = true
274
- }
270
+ // } else {
271
+ // // 相机和文件都可以选
272
+ // myAccept.value = '*'
273
+ // fileTypeFlag.value = true
274
+ // }
275
275
  }
276
276
 
277
277
  function confirmFileType(fileType: string) {
@@ -13,7 +13,7 @@
13
13
  <div class="file-name-container" >
14
14
  {{file.name}}
15
15
  </div></div>
16
- <img v-else class="el-upload-list__item-thumbnail" :src="getPreviewSrc(file.name, file.serverPath)" alt="" />
16
+ <img v-else class="el-upload-list__item-thumbnail" :src="getPreviewSrc(file.showName?file.showName: file.name, file.serverPath)" alt="" />
17
17
  <fs-preview-new :disabled="disabled" :file-list="fileListResult" :file="file" :system-code="systemCode" :before-remove="beforeRemove" :on-remove="onRemove" :before-download="beforeDownload" @remove="removeFile"/>
18
18
 
19
19
  </div>
@@ -81,7 +81,7 @@ let baseURL = props.baseURL
81
81
  const baseAPI = window.$vueApp.config.globalProperties.baseAPI
82
82
 
83
83
  const fileListResult = ref(props.fileList)
84
- console.log('file-upload-component---fileListResult=', fileListResult.value)
84
+ console.log('file-upload-component---fileListResult=', fileListResult.value?JSON.stringify(fileListResult.value):fileListResult.value)
85
85
  function changeFileList(fileList: any) {
86
86
  fileListResult.value = fileList
87
87
  }
@@ -90,7 +90,7 @@ const chooseFile = ()=>{
90
90
  emits('chooseFile')
91
91
  }
92
92
  const isImg = (file: Object) =>{
93
- return isImage(file.name)
93
+ return isImage(file.showName?file.showName:file.name)
94
94
  }
95
95
 
96
96
  function getPreviewSrc(showName: string, serverPath: string) {
@@ -179,6 +179,7 @@ const props = defineProps({
179
179
  const emits = defineEmits(['remove', 'uploadend'])
180
180
  const annexUploadFlag = ref(false)
181
181
  const fileNames = ref(null)
182
+ fileNames.value = props.fileList && props.fileList.length > 0 ? props.fileList.map((item: any) => item.showName).join(','): null
182
183
 
183
184
  const openAnnexUpload = ()=>{
184
185
  console.log('点击选择文件按钮---')
@@ -52,6 +52,7 @@ import { ref, defineProps } from 'vue'
52
52
  import { getSystemFrontendUrl, isPlateSys, isMobileBrowser, getReplaceUrlDomain } from '../../../src/utils/common-util'
53
53
  import { getToken } from '../../../src/utils/auth'
54
54
  import { isImage } from '../../../src/utils/util'
55
+ import { Base64 } from 'js-base64'
55
56
  const props = defineProps({
56
57
  systemCode: {
57
58
  type: String,
@@ -223,8 +224,8 @@ const previweDoc = (showName: string, serverPath: string) => {
223
224
  const myPreviewUrl = originUrl + '&fullfilename=' + showName
224
225
  console.log('myPreviewUrl====', myPreviewUrl)
225
226
  // http://127.0.0.1:8012/onlinePreview
226
- previewUrl = window.$vueApp.config.globalProperties.kkFileViewUrl + '?url=' + 1
227
- // encodeURIComponent(Base64.encode(myPreviewUrl))
227
+ previewUrl =
228
+ window.$vueApp.config.globalProperties.kkFileViewUrl + '?url=' + encodeURIComponent(Base64.encode(myPreviewUrl))
228
229
  console.log('previewUrl====', previewUrl)
229
230
  } else {
230
231
  previewUrl = baseUrl + '/common/fs-upload/preview?jwt=' + token
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <span style="width: 100%">
2
+ <span style="width: 100%" class="organization-input">
3
3
  <template v-if="disabled">
4
4
  <el-input
5
5
  :disabled="true"
@@ -221,7 +221,7 @@ export default {
221
221
  getPropName(prop, isJoinTable, tableName) {
222
222
  if (prop && prop.startsWith('${')) {
223
223
  // 格式是:${page.xxx} 或 ${data.xxx}
224
- prop = prop.substring(prop.indexOf('.')+1, prop.length - 1)
224
+ prop = prop.substring(prop.indexOf('.') + 1, prop.length - 1)
225
225
  }
226
226
  return getPropNameWhenJoinTable(prop, isJoinTable, tableName)
227
227
  },
@@ -296,7 +296,7 @@ export default {
296
296
  },
297
297
  getModelValue(model, propType) {
298
298
  let models = this.models
299
- if(propType && propType === 'page') {
299
+ if (propType && propType === 'page') {
300
300
  models = this.pageModels
301
301
  }
302
302
  let modelValue = ''
@@ -305,8 +305,8 @@ export default {
305
305
  modelValue = parentObj[model.substring(model.lastIndexOf('.') + 1)]
306
306
  } else {
307
307
  const name = this.getPropName(model)
308
- if(propType && propType === 'page') {
309
- modelValue = models?models[name]: null
308
+ if (propType && propType === 'page') {
309
+ modelValue = models ? models[name] : null
310
310
  } else {
311
311
  modelValue = models[name]
312
312
  }
@@ -520,11 +520,11 @@ export default {
520
520
  }
521
521
  },
522
522
  setValue(model, finallyOrgResult, propType) {
523
- if(!propType) {
524
- propType = this.getPropType(model)
523
+ if (!propType) {
524
+ propType = this.getPropType(model)
525
525
  }
526
526
  let models = this.models
527
- if(propType && propType === 'page') {
527
+ if (propType && propType === 'page') {
528
528
  models = this.pageModels
529
529
  }
530
530
  this.setEntityValue(model, finallyOrgResult, models)
@@ -579,3 +579,8 @@ export default {
579
579
  emits: ['replace', 'setValue', 'clear', 'focus', 'update:value', 'change']
580
580
  }
581
581
  </script>
582
+ <style lang="css">
583
+ .organization-input .el-input-group__append {
584
+ padding: 0 10px;
585
+ }
586
+ </style>
@@ -13,6 +13,19 @@
13
13
  </div>
14
14
  </template>
15
15
  <template #default>
16
+ <operation
17
+ v-if="operationColumn"
18
+ :column="operationColumn"
19
+ :list-code="listCode"
20
+ :currentPage="currentPage"
21
+ :grid-data="gridData"
22
+ :page-grid-data="pageGridData"
23
+ :row="gridData[realEditIndex]"
24
+ :rowIndex="realEditIndex"
25
+ :parentFormData="parentFormData"
26
+ @refreshList="refreshList"
27
+ @afterClick="afterClickBtn"
28
+ />
16
29
  <el-form label-width="auto">
17
30
  <template v-for="(column, index) in columns" >
18
31
  <el-form-item :key="index" v-if="column.prop != '$index' && column.prop != '$selection' && column.prop != 'operation'" :label="getMyHeaderLable(column)" >
@@ -57,6 +70,7 @@
57
70
  </template>
58
71
  <script lang="ts">
59
72
  export default {
73
+ components: { operation },
60
74
  name: 'RowForm'
61
75
  }
62
76
  </script>
@@ -66,6 +80,9 @@ import {
66
80
  getHeaderLable
67
81
  } from '../super-grid/src/utils'
68
82
  import { reactive, ref, onMounted, defineEmits, nextTick } from 'vue'
83
+ import RowOperation from '../super-grid/src/row-operation.vue'
84
+ import store from '../super-grid/src/store'
85
+ import operation from './operation.vue'
69
86
  const props = defineProps<{
70
87
  columns: {
71
88
  type: Array<any>
@@ -124,6 +141,16 @@ const props = defineProps<{
124
141
  type: Object
125
142
  default: null
126
143
  }
144
+ // 是否显示分页
145
+ showPage: {
146
+ type: Boolean
147
+ default: false
148
+ }
149
+ // 每页显示多少条
150
+ pageSize: {
151
+ type: Number,
152
+ default: null
153
+ }
127
154
  }>()
128
155
  const emits = defineEmits([
129
156
  'open-page',
@@ -132,11 +159,37 @@ const emits = defineEmits([
132
159
  'refresData',
133
160
  'refresPortData',
134
161
  'refresPortsData',
135
- 'refresMainTableFields'
162
+ 'refresMainTableFields',
163
+ 'refreshList'
136
164
  ])
137
- const realEditIndex: any = ref(props.rowIndex)
165
+ const realEditIndex: any = ref(getCurrentRowIndex())
166
+
138
167
  const isShowForm = ref(true)
139
168
  const reload = ref(true)
169
+ let parentFormData:any
170
+ const gridParams = store.get(props.listCode)
171
+ const options = gridParams.options
172
+ if (gridParams.options.extraParam && gridParams.options.extraParam.entityMap) {
173
+ parentFormData = gridParams.options.extraParam.entityMap
174
+ }
175
+ const operationColumn = ref(null)
176
+ const operationCols = props.columns?props.columns.filter(item=>item.prop&&item.prop==='operation'):null
177
+ if(operationCols && operationCols.length > 0) {
178
+ operationColumn.value= operationCols[0]
179
+ }
180
+
181
+ function getCurrentRowIndex() {
182
+ let realRowIndex:any = props.rowIndex
183
+ if(props.showPage){
184
+ if(props.rowIndex < props.pageSize) {
185
+ realRowIndex = ((props.currentPage-1) * props.pageSize) + props.rowIndex
186
+ } else {
187
+ realRowIndex = (props.currentPage * props.pageSize)-1
188
+ }
189
+ }
190
+ return realRowIndex
191
+ }
192
+
140
193
  function getMyHeaderLable(column) {
141
194
  return getHeaderLable(column)
142
195
  }
@@ -146,7 +199,6 @@ function prevRow() {
146
199
  nextTick(() => {
147
200
  reload.value = true
148
201
  })
149
- console.log(realEditIndex.value)
150
202
  }
151
203
  function nextRow() {
152
204
  reload.value = false
@@ -154,7 +206,6 @@ function nextRow() {
154
206
  nextTick(() => {
155
207
  reload.value = true
156
208
  })
157
- console.log(realEditIndex.value)
158
209
  }
159
210
  function isShowColumn(column) {
160
211
  let hidden = true
@@ -208,4 +259,17 @@ function refresPortsData(map) {
208
259
  function refresMainTableFields(map) {
209
260
  emits('refresMainTableFields', map)
210
261
  }
262
+
263
+ function refreshList() {
264
+ emits('refreshList')
265
+ }
266
+
267
+ function afterClickBtn(params) {
268
+ console.log('afterClickBtn----params=', params)
269
+ reload.value = false
270
+ realEditIndex.value=props.gridData.length - 1
271
+ nextTick(() => {
272
+ reload.value = true
273
+ })
274
+ }
211
275
  </script>
@@ -0,0 +1,151 @@
1
+ <template>
2
+ <div v-if="column.operations" class="grid-operation-buttons operation-area">
3
+ <span
4
+ v-for="(operation, operationIndex) in column.operations"
5
+ :key="operationIndex"
6
+ :class="isShowForm ? '' : 'cell--span'"
7
+ >
8
+ <el-dropdown
9
+ v-if="operation.isGroup"
10
+ :size="operation.buttons && operation.buttons.length > 0 ? operation.buttons[0].props.size : 'small'"
11
+ split-button
12
+ style="padding-left: 10px"
13
+ @command="handleCommand"
14
+ >
15
+ {{ $escapeHtml(operation.label) }}
16
+ <template v-slot:dropdown>
17
+ <el-dropdown-menu>
18
+ <span
19
+ v-for="(buttonChild, buttonChildIndex) in operation.buttons"
20
+ :key="buttonChild.props.code + buttonChildIndex"
21
+ >
22
+ <el-dropdown-item
23
+ v-permission="buttonChild.props.permission"
24
+ :command="beforeHandleCommand(buttonChild.props.code, row, rowIndex)"
25
+ :disabled="preventReclick"
26
+ >
27
+ {{ $escapeHtml(buttonChild.props.label) }}
28
+ </el-dropdown-item>
29
+ </span>
30
+ </el-dropdown-menu>
31
+ </template>
32
+ </el-dropdown>
33
+ <component
34
+ :is="operation.props.customControl"
35
+ v-else-if="operation.props.customControl"
36
+ v-permission="operation.props.permission"
37
+ :key="column.prop + '_' + rowIndex + '_' + currentPage"
38
+ :disabled="true"
39
+ :row="pageGridData[rowIndex]"
40
+ :entity="pageGridData[rowIndex]"
41
+ :prop="column.prop"
42
+ :parent="parentFormData"
43
+ :row-index="rowIndex"
44
+ :grid-data="gridData"
45
+ :page-grid-data="pageGridData"
46
+ :current-page="currentPage"
47
+ @refresh-list="refreshList"
48
+ />
49
+ <row-operation
50
+ v-else
51
+ :column="column"
52
+ :editing="row.$editing"
53
+ :entity="row"
54
+ :is-show="operation.isShow"
55
+ :label="operation.props.label ? operation.props.label : row[column.prop]"
56
+ :on-click="operation.onClick"
57
+ :operation-index="operationIndex"
58
+ :operation-setting="operation.props"
59
+ :row-index="rowIndex"
60
+ :list-code="listCode"
61
+ :parent-form-data="parentFormData"
62
+ @afterClick="afterClickBtn"
63
+ />
64
+ </span>
65
+ </div>
66
+ </template>
67
+ <script lang="ts">
68
+ export default {
69
+ name: 'RowForm'
70
+ }
71
+ </script>
72
+ <script setup lang="ts">
73
+ import NormalColumnContent from '../super-grid/src/normal-column-content.vue'
74
+ import { getHeaderLable } from '../super-grid/src/utils'
75
+ import { reactive, ref, onMounted, defineEmits, nextTick } from 'vue'
76
+ import RowOperation from '../super-grid/src/row-operation.vue'
77
+ import customFormatter from '../super-grid/src/custom-formatter'
78
+ const props = defineProps<{
79
+ column: {
80
+ type: Object,
81
+ default: null
82
+ }
83
+ listCode: {
84
+ type: String
85
+ default: null
86
+ }
87
+ currentPage: {
88
+ type: Number
89
+ default: 1
90
+ }
91
+ gridData: {
92
+ type: Array<any>
93
+ default: null
94
+ }
95
+ pageGridData: {
96
+ type: Array<any>
97
+ default: null
98
+ }
99
+ // 行记录序号
100
+ rowIndex: {
101
+ type: Number
102
+ default: 0
103
+ }
104
+ // 父表单实体
105
+ parentFormData: {
106
+ type: Object
107
+ default: null
108
+ }
109
+ row: {
110
+ type: Object
111
+ default: null
112
+ }
113
+ }>()
114
+ const emits = defineEmits([
115
+ 'refreshList',
116
+ 'afterClick'
117
+ ])
118
+ const realEditIndex: any = ref(props.rowIndex)
119
+ const isShowForm = ref(true)
120
+ const reload = ref(true)
121
+ function beforeHandleCommand(comman, row, rowIndex) {
122
+ return {
123
+ comman: comman,
124
+ row: row,
125
+ rowIndex: rowIndex
126
+ }
127
+ }
128
+ function handleCommand(comman) {
129
+ let prop = null
130
+ props.column.operations.forEach((item) => {
131
+ if (item.isGroup) {
132
+ item.buttons.forEach((button) => {
133
+ if (button.props.code === comman.comman) {
134
+ prop = button
135
+ }
136
+ })
137
+ }
138
+ })
139
+ if (prop) {
140
+ customFormatter.onClickFun(comman.row, props.column, prop.onClick, comman.rowIndex)
141
+ }
142
+ }
143
+
144
+ function refreshList() {
145
+ emits('refreshList')
146
+ }
147
+
148
+ function afterClickBtn() {
149
+ emits('afterClick',{row: props.row, column: props.column, rowIndex: props.rowIndex})
150
+ }
151
+ </script>
@@ -1022,15 +1022,26 @@ export default {
1022
1022
  }
1023
1023
  }
1024
1024
  },
1025
+ orgTreeSetSort() {
1026
+ // 设值排下序,否则出现所有映射还没设值完毕,就触发了change事件问题
1027
+ const columnPropIndex = this.fields.findIndex((filed) => filed.model === this.column.prop)
1028
+ if (columnPropIndex > -1) {
1029
+ const tempFiled = this.fields[columnPropIndex]
1030
+ this.fields.splice(columnPropIndex, 1)
1031
+ this.fields.push(tempFiled)
1032
+ }
1033
+ },
1025
1034
  // 显示组织树时需要计算指定部门
1026
1035
  showOrganizationTree() {
1027
1036
  if (this.column.orgTreeSet) {
1028
1037
  const orgTreeSet = JSON.parse(this.column.orgTreeSet)
1029
1038
  if (orgTreeSet.length) {
1030
1039
  this.fields = orgTreeSet
1040
+ this.orgTreeSetSort()
1031
1041
  } else {
1032
1042
  if (orgTreeSet.orgTreeSetArr) {
1033
1043
  this.fields = orgTreeSet.orgTreeSetArr
1044
+ this.orgTreeSetSort()
1034
1045
  }
1035
1046
  if (orgTreeSet.specifyType) {
1036
1047
  if (orgTreeSet.specifyType === 'dataTable') {
@@ -59,13 +59,7 @@
59
59
  :disabled="preventReclick"
60
60
  >
61
61
  {{
62
- $escapeHtml(
63
- buttonChild.props.label
64
- ? buttonChild.props.label
65
- : buttonChild.props.code === 'search'
66
- ? $t('superPageMessage.searchButtonLabel')
67
- : ''
68
- )
62
+ $escapeHtml(buttonChild.props.label)
69
63
  }}
70
64
  </el-dropdown-item>
71
65
  </span>
@@ -158,6 +158,7 @@ export default {
158
158
  this.rowIndex,
159
159
  button
160
160
  )
161
+ this.$emit('afterClick',{row: this.entity, column: this.column, rowIndex: this.rowIndex})
161
162
  },
162
163
  isShowButton() {
163
164
  // const start = new Date().getTime()
@@ -176,6 +176,7 @@ const superGridService = {
176
176
  gridParams.pagination = this.pagination
177
177
  gridParams.pageContext = this.pageContext
178
178
  gridParams.configureObj = this.configureObj
179
+ this.tableName = this.basicInfo.tableName
179
180
  gridParams.hiddenColumns = this.options.hiddenColumns?JSON.parse(JSON.stringify(this.options.hiddenColumns)):[]
180
181
  if (this.pagination) {
181
182
  // 监控每行显示多少条变量使用
@@ -229,6 +229,8 @@
229
229
  :grid-data="isSubTableShowPage ? subTableData : gridData"
230
230
  :page-grid-data="isSubTableShowPage ? getSubTableGridData(subTableData) : gridData"
231
231
  :line-edit="lineEdit"
232
+ :show-page="pagination && isShowPage"
233
+ :page-size="pagination?pagination.pageSize: null"
232
234
  @close="closeRowForm"
233
235
  @refresData="refresData"
234
236
  @refresPortData="refresPortData"
@@ -236,6 +238,7 @@
236
238
  @refresMainTableFields="refresMainTableFields"
237
239
  @open-page="openPageDialog"
238
240
  @prohibitToEdit="prohibitToEdit"
241
+ @refreshList="refreshList"
239
242
  />
240
243
  </div>
241
244
  </template>
@@ -2161,7 +2164,8 @@ export default {
2161
2164
  },
2162
2165
  getSearchParam() {
2163
2166
  const searchParam = {
2164
- code: this.code
2167
+ code: this.code,
2168
+ tableName: this.tableName
2165
2169
  }
2166
2170
  const gridParams = store.get(this.code)
2167
2171
  const pagination = this.getPaginationInfo()
@@ -2343,12 +2347,24 @@ export default {
2343
2347
  },
2344
2348
  packageSummaryColumnProps() {
2345
2349
  const summaryColumnProps = []
2346
- this.visibleColumns.forEach((item) => {
2350
+ // this.visibleColumns.forEach((item) => {
2351
+ // if (item.total !== undefined && item.total === true) {
2352
+ // summaryColumnProps.push(item.prop)
2353
+ // } else if (item.groupHeader && item.children && item.children.length > 0) {
2354
+ // setGroupHeaderChildernSummary(item.children, summaryColumnProps)
2355
+ // }
2356
+ // })
2357
+ this.setGroupHeaderChildernSummary(this.visibleColumns, summaryColumnProps)
2358
+ return summaryColumnProps
2359
+ },
2360
+ setGroupHeaderChildernSummary(columns, summaryColumnProps) {
2361
+ columns.forEach((item) => {
2347
2362
  if (item.total !== undefined && item.total === true) {
2348
2363
  summaryColumnProps.push(item.prop)
2364
+ } else if (item.groupHeader && item.children && item.children.length > 0) {
2365
+ this.setGroupHeaderChildernSummary(item.children, summaryColumnProps)
2349
2366
  }
2350
2367
  })
2351
- return summaryColumnProps
2352
2368
  },
2353
2369
  getSummaries(param) {
2354
2370
  // 后台返回时需要处理好序号列和多选列
@@ -3,6 +3,8 @@
3
3
  <WorkgroupMobileTree
4
4
  v-if="isMobile"
5
5
  ref="workgroupTree"
6
+ :close-on-click-modal="false"
7
+ :close-on-press-escape="false"
6
8
  :branch-info="branchInfo"
7
9
  :multiple="multiple"
8
10
  :search-field="searchField"
@@ -1,5 +1,5 @@
1
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()">
2
+ <el-drawer v-model="isShowForm" append-to-body :close-on-click-modal="false" :close-on-press-escape="false" direction="btt" size="100%" class="organization-tree" @close="closeTree()">
3
3
  <template #header>
4
4
  <div style="text-align: center;">
5
5
  {{$t('imatrixUIMessage.pleaseSelect')}}
@@ -2,6 +2,8 @@
2
2
  <div>
3
3
  <WorkgroupMobileUserTree
4
4
  v-if="isMobile"
5
+ :close-on-click-modal="false"
6
+ :close-on-press-escape="false"
5
7
  :multiple="multiple"
6
8
  :branch-info="branchInfo"
7
9
  :search-field="searchField"
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <el-drawer v-model="isShowForm" direction="btt" size="100%" class="organization-tree" @close="closeTree()">
2
+ <el-drawer v-model="isShowForm" append-to-body :close-on-click-modal="false" :close-on-press-escape="false" direction="btt" size="100%" class="organization-tree" @close="closeTree()">
3
3
  <template #header>
4
4
  <div style="text-align: center;">
5
5
  {{$t('imatrixUIMessage.pleaseSelect')}}
@@ -39,7 +39,7 @@
39
39
  <div v-if="data.nodeType && data.nodeType === 'USER'" class="item-label">{{ data.showName }}
40
40
  <span style="color:#999">({{ data.loginName }}{{ getUserMainDeptName(data) ? '/'+getUserMainDeptName(data): ''}})</span>
41
41
  </div>
42
- <div v-else class="item-label">{{ data.name }}</div>
42
+ <div v-else class="item-label" @click="loadChildren(data,false)">{{ data.name }}</div>
43
43
  <div v-if="!data.nodeType || data.nodeType !== 'USER'" class="item-side" @click="loadChildren(data,false)">
44
44
  <el-icon><ArrowRight /></el-icon>
45
45
  </div>