agilebuilder-ui 1.1.38 → 1.1.39-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.
- package/lib/{401-d4103b15.js → 401-994c9198.js} +1 -1
- package/lib/{404-bbbf1615.js → 404-529e9d04.js} +1 -1
- package/lib/{iframe-page-eeb30592.js → iframe-page-8416d7e7.js} +1 -1
- package/lib/{index-93dc7bbc.js → index-f2020c47.js} +13764 -13655
- package/lib/super-ui.css +1 -1
- package/lib/super-ui.js +1 -1
- package/lib/super-ui.umd.cjs +82 -79
- package/lib/{tab-content-iframe-index-82db069a.js → tab-content-iframe-index-b9c23a8b.js} +1 -1
- package/lib/{tab-content-index-06291a81.js → tab-content-index-289ae3af.js} +22 -22
- package/lib/{tache-subprocess-history-661219ec.js → tache-subprocess-history-3ad4baa1.js} +1 -1
- package/package.json +1 -1
- package/packages/department-tree-inline/src/department-single-tree-inline.vue +3 -1
- package/packages/department-user-tree-inline/src/department-user-multiple-tree-inline.vue +5 -1
- package/packages/department-user-tree-inline/src/department-user-single-tree-inline.vue +2 -1
- package/packages/department-user-tree-inline/src/department-user-tree-multi-service.js +0 -1
- package/packages/department-user-tree-mobile/src/department-user-tree-inline-app.vue +3 -1
- package/packages/fs-preview/src/fs-preview.vue +44 -7
- package/packages/fs-upload-list/src/fs-upload-list.vue +50 -24
- package/packages/fs-upload-new/src/fs-button-upload.vue +12 -0
- package/packages/fs-upload-new/src/fs-drag-upload.vue +12 -0
- package/packages/fs-upload-new/src/fs-preview-new.vue +24 -5
- package/packages/fs-upload-new/src/fs-upload-new.vue +20 -0
- package/packages/organization-input/src/organization-input.vue +3 -3
- package/packages/super-grid/src/components/mobile-table-card.jsx +0 -1
- package/packages/super-grid/src/custom-formatter.js +1 -1
- package/packages/super-grid/src/dynamic-input.vue +16 -22
- package/packages/super-grid/src/normal-column-content.vue +25 -13
- package/packages/super-grid/src/row-operation.vue +13 -9
- package/packages/super-grid/src/search-form-item.vue +75 -17
- package/packages/super-grid/src/search-form-mobile.vue +5 -0
- package/packages/super-grid/src/search-form-ordinarySearch.vue +5 -0
- package/packages/super-grid/src/search-methods.js +3 -1
- package/packages/utils/organization.ts +56 -40
- package/packages/workflow-history-list/src/workflow-history-list.vue +41 -3
- package/src/api/sso-service.js +2 -1
- package/src/directives/permission/permission.js +7 -1
- package/src/i18n/langs/cn.js +10 -3
- package/src/i18n/langs/en.js +10 -3
- package/src/permission.js +2 -1
- package/src/store/modules/user.js +4 -1
- package/src/utils/common-util.js +1 -1
- package/src/utils/file-util.ts +12 -4
- package/src/utils/jump-page-utils.js +1 -0
- package/src/utils/permission.js +2 -2
- package/src/utils/permissionAuth.js +11 -7
- package/src/utils/util.js +19 -0
- package/src/views/dsc-component/Sidebar/Item.vue +18 -7
- package/src/views/dsc-component/Sidebar/SidebarItem.vue +10 -2
- package/src/views/dsc-component/Sidebar/index.vue +0 -2
- package/src/views/layout/components/Menubar/Item.vue +20 -3
- package/src/views/layout/components/Menubar/SidebarItem.vue +46 -18
- package/vite.config.js +1 -2
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
:additional-settings="controlConfig"
|
|
14
14
|
:parent="parentFormData"
|
|
15
15
|
:prop="column.prop"
|
|
16
|
+
:custom-params="myCustomParams"
|
|
16
17
|
:row="row"
|
|
17
18
|
:row-index="position ? position.row : null"
|
|
18
19
|
:select-options="options"
|
|
@@ -545,7 +546,8 @@ import {
|
|
|
545
546
|
getEntityFieldValue,
|
|
546
547
|
setEntityFieldValue,
|
|
547
548
|
getPropValueNew,
|
|
548
|
-
watchPageContextDynamicVariable
|
|
549
|
+
watchPageContextDynamicVariable,
|
|
550
|
+
formatCustomParams
|
|
549
551
|
} from '../../../src/utils/util'
|
|
550
552
|
import { getToken } from '../../../src/utils/auth'
|
|
551
553
|
import apis from './apis'
|
|
@@ -662,16 +664,17 @@ export default {
|
|
|
662
664
|
const gridData = gridParams.gridData
|
|
663
665
|
const subTableData = gridParams.subTableData
|
|
664
666
|
const isSubTableShowPage = gridParams.isSubTableShowPage
|
|
665
|
-
|
|
666
|
-
if (this.column.controlConfig) {
|
|
667
|
-
controlConfig = JSON.parse(this.column.controlConfig)
|
|
668
|
-
}
|
|
667
|
+
|
|
669
668
|
const additionalParamMap = getAdditionalParamMap(gridParams)
|
|
670
669
|
const pageContext = gridParams.options.pageContext
|
|
671
670
|
const isMobile = isMobileBrowser()
|
|
672
671
|
|
|
673
672
|
const componentId = this.listCode + '_' + this.column.prop
|
|
674
673
|
let scanEnable = false
|
|
674
|
+
let controlConfig = {}
|
|
675
|
+
if (this.column.controlConfig) {
|
|
676
|
+
controlConfig = JSON.parse(this.column.controlConfig)
|
|
677
|
+
}
|
|
675
678
|
if (controlConfig.scanEnable) {
|
|
676
679
|
scanEnable = true
|
|
677
680
|
}
|
|
@@ -760,7 +763,8 @@ export default {
|
|
|
760
763
|
isShowScanIcon,
|
|
761
764
|
baseURL,
|
|
762
765
|
colConfigure, // v10字段配置原信息
|
|
763
|
-
designProperty // 字段配置
|
|
766
|
+
designProperty, // 字段配置
|
|
767
|
+
myCustomParams: {}
|
|
764
768
|
}
|
|
765
769
|
},
|
|
766
770
|
computed: {},
|
|
@@ -808,6 +812,12 @@ export default {
|
|
|
808
812
|
},
|
|
809
813
|
created() {
|
|
810
814
|
const gridParams = store.get(this.listCode)
|
|
815
|
+
if (this.controlConfig?.customParams) {
|
|
816
|
+
if (!this.pageContext) {
|
|
817
|
+
this.pageContext = gridParams.options.pageContext
|
|
818
|
+
}
|
|
819
|
+
this.myCustomParams = formatCustomParams(this.controlConfig.customParams, this.pageContext, this.row)
|
|
820
|
+
}
|
|
811
821
|
this.gridParams = gridParams
|
|
812
822
|
this.isCreateRow = gridParams.isCreateRow
|
|
813
823
|
this.setTreeType()
|
|
@@ -901,14 +911,6 @@ export default {
|
|
|
901
911
|
const that = this
|
|
902
912
|
// 选择文件结束
|
|
903
913
|
eventBus.$on(this.componentId + '-pickFileDone', (data) => {
|
|
904
|
-
console.log(
|
|
905
|
-
'superPage666611---pickFileDone--data.componentId=',
|
|
906
|
-
data.componentId,
|
|
907
|
-
'data.listCode=',
|
|
908
|
-
data.listCode,
|
|
909
|
-
'data=',
|
|
910
|
-
data
|
|
911
|
-
)
|
|
912
914
|
if (that.$refs.fileUploadRef) {
|
|
913
915
|
that.$refs.fileUploadRef.pickFileDone(data)
|
|
914
916
|
}
|
|
@@ -921,14 +923,6 @@ export default {
|
|
|
921
923
|
})
|
|
922
924
|
// 扫描结束
|
|
923
925
|
eventBus.$on(this.componentId + '-scanDone', (data) => {
|
|
924
|
-
console.log(
|
|
925
|
-
'superPage666611---scanDone--data.componentId=',
|
|
926
|
-
data.componentId,
|
|
927
|
-
'data.listCode=',
|
|
928
|
-
data.listCode,
|
|
929
|
-
'data=',
|
|
930
|
-
data
|
|
931
|
-
)
|
|
932
926
|
that.innerValue = data.result
|
|
933
927
|
that.blurEvent()
|
|
934
928
|
this.callCustomEvent('afterScanDone')
|
|
@@ -96,6 +96,7 @@
|
|
|
96
96
|
:grid-data="gridData"
|
|
97
97
|
:page-grid-data="pageGridData"
|
|
98
98
|
:current-page="currentPage"
|
|
99
|
+
:custom-params="controlConfig ? controlConfig.customParams : null"
|
|
99
100
|
@refresh-list="refreshList"
|
|
100
101
|
/>
|
|
101
102
|
<row-operation
|
|
@@ -106,6 +107,7 @@
|
|
|
106
107
|
:is-show="operation.isShow"
|
|
107
108
|
:label="operation.props.label ? operation.props.label : row[column.prop]"
|
|
108
109
|
:on-click="operation.onClick"
|
|
110
|
+
:operation="operation"
|
|
109
111
|
:operation-index="operationIndex"
|
|
110
112
|
:operation-setting="operation.props"
|
|
111
113
|
:event-name="operation.eventName"
|
|
@@ -133,6 +135,7 @@
|
|
|
133
135
|
:additional-param-map="additionalParamMap"
|
|
134
136
|
:additional-settings="additionalSettings"
|
|
135
137
|
:page-context="options?.pageContext"
|
|
138
|
+
:custom-params="controlConfig ? controlConfig.customParams : null"
|
|
136
139
|
/>
|
|
137
140
|
</span>
|
|
138
141
|
<!-- 自定义格式的时候 -->
|
|
@@ -170,6 +173,7 @@
|
|
|
170
173
|
:component-id="componentId"
|
|
171
174
|
:additional-settings="additionalSettings"
|
|
172
175
|
:page-context="options?.pageContext"
|
|
176
|
+
:custom-params="controlConfig ? controlConfig.customParams : null"
|
|
173
177
|
@prohibitToEdit="prohibitToEdit"
|
|
174
178
|
@refresh-list="refreshList"
|
|
175
179
|
/></span>
|
|
@@ -235,15 +239,17 @@
|
|
|
235
239
|
:title="getMyHyperLinkSetting(row, rowIndex).title"
|
|
236
240
|
:class="textOverflow === 'newline' ? 'wrap-text' : 'ellipsis cell--span'"
|
|
237
241
|
>{{ getMyHyperLinkSetting(row, rowIndex).label }}
|
|
238
|
-
<
|
|
239
|
-
|
|
240
|
-
|
|
242
|
+
<SuperIcon
|
|
243
|
+
v-if="getMyHyperLinkSetting(row, rowIndex).icon"
|
|
244
|
+
:iconValue="getMyHyperLinkSetting(row, rowIndex).icon"
|
|
245
|
+
></SuperIcon>
|
|
241
246
|
</span>
|
|
242
247
|
<span v-else :id="column.prop + 'DomData' + rowIndex" :class="isShowForm ? '' : 'cell--span'"
|
|
243
248
|
>{{ getMyHyperLinkSetting(row, rowIndex).label }}
|
|
244
|
-
<
|
|
245
|
-
|
|
246
|
-
|
|
249
|
+
<SuperIcon
|
|
250
|
+
v-if="getMyHyperLinkSetting(row, rowIndex).icon"
|
|
251
|
+
:iconValue="getMyHyperLinkSetting(row, rowIndex).icon"
|
|
252
|
+
></SuperIcon>
|
|
247
253
|
</span>
|
|
248
254
|
</el-link>
|
|
249
255
|
<span
|
|
@@ -316,15 +322,17 @@
|
|
|
316
322
|
:title="$escapeHtml(getMyHyperLinkSetting(row, rowIndex).title)"
|
|
317
323
|
:class="textOverflow === 'newline' ? 'wrap-text' : 'ellipsis cell--span'"
|
|
318
324
|
>{{ $escapeHtml(getMyHyperLinkSetting(row, rowIndex).label) }}
|
|
319
|
-
<
|
|
320
|
-
|
|
321
|
-
|
|
325
|
+
<SuperIcon
|
|
326
|
+
v-if="getMyHyperLinkSetting(row, rowIndex).icon"
|
|
327
|
+
:iconValue="getMyHyperLinkSetting(row, rowIndex).icon"
|
|
328
|
+
></SuperIcon>
|
|
322
329
|
</span>
|
|
323
330
|
<span v-else :id="column.prop + 'DomData' + rowIndex" :class="isShowForm ? '' : 'cell--span'"
|
|
324
331
|
>{{ $escapeHtml(getMyHyperLinkSetting(row, rowIndex).label) }}
|
|
325
|
-
<
|
|
326
|
-
|
|
327
|
-
|
|
332
|
+
<SuperIcon
|
|
333
|
+
v-if="getMyHyperLinkSetting(row, rowIndex).icon"
|
|
334
|
+
:iconValue="getMyHyperLinkSetting(row, rowIndex).icon"
|
|
335
|
+
></SuperIcon>
|
|
328
336
|
</span>
|
|
329
337
|
</el-link>
|
|
330
338
|
<!-- 富文本 -->
|
|
@@ -387,7 +395,7 @@ import customFormatter from './custom-formatter'
|
|
|
387
395
|
import RowOperation from './row-operation.vue'
|
|
388
396
|
import apis from './apis'
|
|
389
397
|
import { mapGetters } from 'vuex'
|
|
390
|
-
import { getEntityFieldValue, getParentObjectUtil } from '../../../src/utils/util'
|
|
398
|
+
import { getEntityFieldValue, getParentObjectUtil, formatCustomParams } from '../../../src/utils/util'
|
|
391
399
|
import ViewImageDialog from './view-image-dialog.vue'
|
|
392
400
|
import eventBus from './eventBus'
|
|
393
401
|
import FsPreview from '../../fs-preview'
|
|
@@ -700,6 +708,10 @@ export default {
|
|
|
700
708
|
this.requiredClass = this.isRequired(this.row.$editing) ? 'm-requried' : ''
|
|
701
709
|
},
|
|
702
710
|
mounted() {
|
|
711
|
+
if (this.controlConfig) {
|
|
712
|
+
const gridParams = store.get(this.listCode)
|
|
713
|
+
formatCustomParams(this.controlConfig.customParams, gridParams.pageContext, this.row)
|
|
714
|
+
}
|
|
703
715
|
// 监听取消自定义编辑事件
|
|
704
716
|
eventBus.$on('clearTableAllStartEditing', () => {
|
|
705
717
|
this.clearAllEditing()
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<!--将@click改为@mousedown.native是因为操作列保存按钮时事件和input等组件的@blur冲突,导致保存需要保存两次,因为
|
|
3
3
|
@blur先于@click执行的,所以只会执行@blur,@click就失效了,@mousedown是先于@blur执行的-->
|
|
4
|
-
<span :style="myStyle">
|
|
4
|
+
<span class="table-operation-row-btn" :style="myStyle">
|
|
5
5
|
<template v-if="isShowButton()">
|
|
6
6
|
<el-tooltip :disabled="tooltipDisabled" :content="label" placement="top">
|
|
7
|
-
<template v-if="operationSettingData
|
|
7
|
+
<template v-if="operationSettingData?.permission">
|
|
8
8
|
<component
|
|
9
9
|
v-bind="operationSettingData"
|
|
10
10
|
:is="isElementType"
|
|
@@ -77,9 +77,13 @@ export default {
|
|
|
77
77
|
type: String,
|
|
78
78
|
default: null,
|
|
79
79
|
},
|
|
80
|
+
operation: {
|
|
81
|
+
type: Object,
|
|
82
|
+
default: () => ({}),
|
|
83
|
+
},
|
|
80
84
|
operationSetting: {
|
|
81
85
|
type: Object,
|
|
82
|
-
default:
|
|
86
|
+
default: () => ({}),
|
|
83
87
|
},
|
|
84
88
|
operationIndex: {
|
|
85
89
|
type: Number,
|
|
@@ -148,16 +152,16 @@ export default {
|
|
|
148
152
|
},
|
|
149
153
|
// 后置图标
|
|
150
154
|
suffixIcon() {
|
|
151
|
-
if(['right'].includes(this.
|
|
155
|
+
if(['right'].includes(this.operationSetting.iconPosition)) return this.operationSetting.iconValue
|
|
152
156
|
return undefined
|
|
153
157
|
},
|
|
154
158
|
// 是否显示文字按钮 > 图标模式
|
|
155
159
|
isTextIcon() {
|
|
156
160
|
if (this.isTableBtnLinkShow) {
|
|
157
|
-
if (this.
|
|
161
|
+
if (this.operationSetting.isTextIcon === undefined) {
|
|
158
162
|
return this.isSaveRow || this.isDeleteRow || this.isEditRow || this.isRestoreRow
|
|
159
163
|
}
|
|
160
|
-
return this.
|
|
164
|
+
return this.operationSetting.isTextIcon
|
|
161
165
|
} else {
|
|
162
166
|
return false
|
|
163
167
|
}
|
|
@@ -172,14 +176,14 @@ export default {
|
|
|
172
176
|
},
|
|
173
177
|
// 是否自动开启表格 按钮 转 文字按钮
|
|
174
178
|
isTableBtnLinkShow() {
|
|
175
|
-
if (this.operationSetting
|
|
179
|
+
if (this.operationSetting?.text) return true
|
|
176
180
|
if (this.isTableBtnLink && this.elementType === 'el-button') {
|
|
177
|
-
return [this.operationSetting
|
|
181
|
+
return [this.operationSetting?.text, this.operationSetting?.plain, this.operationSetting?.round].every(v => v === undefined)
|
|
178
182
|
}
|
|
179
183
|
return false
|
|
180
184
|
},
|
|
181
185
|
operationSettingData() {
|
|
182
|
-
const dataList = { ...this.operationSetting }
|
|
186
|
+
const dataList = { ...(this.operationSetting ?? {}) }
|
|
183
187
|
if (this.isTableBtnLinkShow) {
|
|
184
188
|
dataList.underline = false
|
|
185
189
|
delete dataList.text
|
|
@@ -148,26 +148,30 @@
|
|
|
148
148
|
>
|
|
149
149
|
<el-option v-for="item in column.valueSet" :key="item.value" :label="item.label" :value="item.value" />
|
|
150
150
|
</el-select>
|
|
151
|
-
<
|
|
151
|
+
<template
|
|
152
152
|
v-else-if="
|
|
153
153
|
column.componentType &&
|
|
154
154
|
(column.componentType === 'multiselect' || column.componentType === 'select') &&
|
|
155
155
|
isDynamicDataSourceSource(column)
|
|
156
156
|
"
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
157
|
+
>
|
|
158
|
+
<dynamic-source-select
|
|
159
|
+
v-model:value="searchForm[column.prop]"
|
|
160
|
+
:allow-create="true"
|
|
161
|
+
:base-props="{
|
|
162
|
+
multiple: column.componentType === 'multiselect' ? true : false
|
|
163
|
+
}"
|
|
164
|
+
:entity="searchForm"
|
|
165
|
+
:filterable="true"
|
|
166
|
+
:is-join-table="isJoinTable"
|
|
167
|
+
:list-code="code"
|
|
168
|
+
:list-toolbar-form-data="listToolbarFormData"
|
|
169
|
+
:options="getDynamicDataSourceOptions(column)"
|
|
170
|
+
:table-name="tableName"
|
|
171
|
+
@change="multiselectChange"
|
|
172
|
+
@input="setValueToModelProp(column.prop, $event)"
|
|
173
|
+
/>
|
|
174
|
+
</template>
|
|
171
175
|
<!--
|
|
172
176
|
<el-input-number
|
|
173
177
|
v-else-if="column.componentType && column.componentType==='inputNumber'"
|
|
@@ -209,7 +213,18 @@
|
|
|
209
213
|
:style="column.searchControlWidth"
|
|
210
214
|
@keyup.enter="submitForm('searchForm')"
|
|
211
215
|
@input="setValueToModelProp(column.prop, $event)"
|
|
212
|
-
|
|
216
|
+
@focus="showEmpty()"
|
|
217
|
+
@blur="hiddenEmpty()"
|
|
218
|
+
>
|
|
219
|
+
<template #suffix>
|
|
220
|
+
<el-tooltip
|
|
221
|
+
:content="$t('superGrid.searchEmpty')"
|
|
222
|
+
placement="bottom"
|
|
223
|
+
>
|
|
224
|
+
<el-checkbox v-if="isShowEmtpty" v-model="checkedEmpty" @change="checkEmptyChange"/>
|
|
225
|
+
</el-tooltip>
|
|
226
|
+
</template>
|
|
227
|
+
</el-input>
|
|
213
228
|
</el-form-item>
|
|
214
229
|
</template>
|
|
215
230
|
|
|
@@ -277,7 +292,9 @@ export default {
|
|
|
277
292
|
dataTwo: null,
|
|
278
293
|
moduleConfig: {},
|
|
279
294
|
dateVal: this.getFormItemValue(this.column.prop),
|
|
280
|
-
controlConfig: getControlConfig(this.column)
|
|
295
|
+
controlConfig: getControlConfig(this.column),
|
|
296
|
+
isShowEmtptyFlag: false,
|
|
297
|
+
// checkedEmpty: false,
|
|
281
298
|
}
|
|
282
299
|
},
|
|
283
300
|
computed: {
|
|
@@ -287,6 +304,23 @@ export default {
|
|
|
287
304
|
return data.listToolbarFormData
|
|
288
305
|
}
|
|
289
306
|
return null
|
|
307
|
+
},
|
|
308
|
+
isShowEmtpty() {
|
|
309
|
+
return this.isShowEmtptyFlag
|
|
310
|
+
},
|
|
311
|
+
checkedEmpty(){
|
|
312
|
+
if(this.column._emptyValue && this.column._emptyValue === '#blank#'){
|
|
313
|
+
return true
|
|
314
|
+
}
|
|
315
|
+
if(this.column._resetValue || this.column._resetValue === undefined){
|
|
316
|
+
if(this.column._resetValue){
|
|
317
|
+
this.column._resetValue = undefined
|
|
318
|
+
this.isShowEmtptyFlag = false
|
|
319
|
+
}
|
|
320
|
+
return false
|
|
321
|
+
} else {
|
|
322
|
+
return true
|
|
323
|
+
}
|
|
290
324
|
}
|
|
291
325
|
},
|
|
292
326
|
created() {
|
|
@@ -471,6 +505,30 @@ export default {
|
|
|
471
505
|
} else {
|
|
472
506
|
return ['00:00:00']
|
|
473
507
|
}
|
|
508
|
+
},
|
|
509
|
+
multiselectChange(arr, selectedItem) {
|
|
510
|
+
if (arr.indexOf('saveAll') !== -1) {
|
|
511
|
+
if (this.searchForm[this.column.prop] && typeof this.searchForm[this.column.prop] === 'string') {
|
|
512
|
+
this.searchForm[this.column.prop] = this.searchForm[this.column.prop].split(',')
|
|
513
|
+
}
|
|
514
|
+
} else {
|
|
515
|
+
this.searchForm[this.column.prop] = arr
|
|
516
|
+
}
|
|
517
|
+
},
|
|
518
|
+
showEmpty(){
|
|
519
|
+
this.isShowEmtptyFlag = true
|
|
520
|
+
},
|
|
521
|
+
hiddenEmpty(){
|
|
522
|
+
if(!this.checkedEmpty){
|
|
523
|
+
this.isShowEmtptyFlag = false
|
|
524
|
+
}
|
|
525
|
+
},
|
|
526
|
+
checkEmptyChange(newValue) {
|
|
527
|
+
if(newValue){
|
|
528
|
+
this.column._emptyValue='#blank#'
|
|
529
|
+
} else {
|
|
530
|
+
this.column._emptyValue=undefined
|
|
531
|
+
}
|
|
474
532
|
}
|
|
475
533
|
},
|
|
476
534
|
emits: ['submit-form']
|
|
@@ -157,6 +157,11 @@ export default {
|
|
|
157
157
|
}
|
|
158
158
|
this.setDefaultQueryValue(column, this.searchForm)
|
|
159
159
|
}
|
|
160
|
+
// 清空空值状态
|
|
161
|
+
if(column._emptyValue){
|
|
162
|
+
column._emptyValue=undefined
|
|
163
|
+
column._resetValue=true
|
|
164
|
+
}
|
|
160
165
|
})
|
|
161
166
|
// 取消当前选中的条件列表的信息
|
|
162
167
|
// this.$refs.searchConditionList.editConditionId = null
|
|
@@ -162,6 +162,11 @@ export default {
|
|
|
162
162
|
}
|
|
163
163
|
this.setDefaultQueryValue(column, this.searchForm)
|
|
164
164
|
}
|
|
165
|
+
// 清空空值状态
|
|
166
|
+
if(column._emptyValue){
|
|
167
|
+
column._emptyValue=undefined
|
|
168
|
+
column._resetValue=true
|
|
169
|
+
}
|
|
165
170
|
})
|
|
166
171
|
// 取消当前选中的条件列表的信息
|
|
167
172
|
// this.$refs.searchConditionList.editConditionId = null
|
|
@@ -27,6 +27,7 @@ const searchMethods = {
|
|
|
27
27
|
param.formatter = column.formatter
|
|
28
28
|
? JSON.parse(JSON.stringify(column.formatter))
|
|
29
29
|
: column.formatter
|
|
30
|
+
param.isEmptyValue= column._emptyValue && column._emptyValue === '#blank#'?true:false
|
|
30
31
|
const values = this.getFormItemValue(column.prop)
|
|
31
32
|
if (column.dataType === 'DATE' || column.dataType === 'TIME') {
|
|
32
33
|
// 日期 或 时间类型
|
|
@@ -440,10 +441,11 @@ const searchMethods = {
|
|
|
440
441
|
num++
|
|
441
442
|
})
|
|
442
443
|
} else if (
|
|
444
|
+
param.isEmptyValue || (
|
|
443
445
|
typeof value !== 'undefined' &&
|
|
444
446
|
value !== '' &&
|
|
445
447
|
value !== null &&
|
|
446
|
-
!Array.isArray(value)
|
|
448
|
+
!Array.isArray(value))
|
|
447
449
|
) {
|
|
448
450
|
// 不是数组
|
|
449
451
|
param.propValue = value
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// 将选中的部门节点添加到结果集合中
|
|
2
|
-
export function addSelectedUserInfo
|
|
2
|
+
export function addSelectedUserInfo(selectNodeInfo, userData, containBranch) {
|
|
3
3
|
if (selectNodeInfo.userIds.indexOf(userData.id) < 0) {
|
|
4
4
|
// 表示集合中不存在该用户
|
|
5
5
|
selectNodeInfo.userIds.push(userData.id)
|
|
@@ -28,7 +28,7 @@ export function addSelectedUserInfo (selectNodeInfo, userData, containBranch) {
|
|
|
28
28
|
selectNodeInfo.userEnNames.push(userData.enName ? userData.enName : '')
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
export function packageSelectResult
|
|
31
|
+
export function packageSelectResult(user, containBranch) {
|
|
32
32
|
let name = user.name
|
|
33
33
|
if (user.enName && user.enName.trim() !== '') {
|
|
34
34
|
name = name + '(' + user.enName + ')'
|
|
@@ -47,29 +47,42 @@ export function packageSelectResult (user, containBranch) {
|
|
|
47
47
|
containBranch: containBranch,
|
|
48
48
|
user: user,
|
|
49
49
|
enName: user.enName ? user.enName : '',
|
|
50
|
-
subCompanyName: user.subCompanyName
|
|
50
|
+
subCompanyName: user.subCompanyName,
|
|
51
|
+
divisionManager: user.divisionManager,
|
|
52
|
+
divisionManagerName: user.divisionManagerName
|
|
51
53
|
}
|
|
52
54
|
// 表示是勾选单选按钮或 选中树节点
|
|
53
55
|
return selectNodeInfo
|
|
54
56
|
}
|
|
55
57
|
// 根据指定用户信息获得用户集合
|
|
56
|
-
function getSelectUsers
|
|
58
|
+
function getSelectUsers(searchField, selectUserInfo, separator) {
|
|
57
59
|
return new Promise((resolve, reject) => {
|
|
58
60
|
if (!searchField) {
|
|
59
61
|
resolve([])
|
|
60
62
|
} else if (!selectUserInfo) {
|
|
61
63
|
resolve([])
|
|
62
64
|
} else {
|
|
63
|
-
window['$vueApp'].config.globalProperties.$http
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
window['$vueApp'].config.globalProperties.$http
|
|
66
|
+
.get(
|
|
67
|
+
window['$vueApp'].config.globalProperties.baseAPI +
|
|
68
|
+
'/component/organization-trees/select-users-mobile?searchField=' +
|
|
69
|
+
searchField +
|
|
70
|
+
'&selectUserInfo=' +
|
|
71
|
+
selectUserInfo +
|
|
72
|
+
'&separator=' +
|
|
73
|
+
separator
|
|
74
|
+
)
|
|
75
|
+
.then((users) => {
|
|
76
|
+
resolve(users)
|
|
77
|
+
})
|
|
78
|
+
.catch((error) => {
|
|
79
|
+
reject(error)
|
|
80
|
+
})
|
|
68
81
|
}
|
|
69
82
|
})
|
|
70
83
|
}
|
|
71
84
|
// 部门人员树选中了组织结构树的根节点
|
|
72
|
-
function packageAllUser
|
|
85
|
+
function packageAllUser() {
|
|
73
86
|
// 表示集合中不存在该用户,则封装该用户
|
|
74
87
|
const tenantNodeId = -1
|
|
75
88
|
var allUser = {
|
|
@@ -79,7 +92,7 @@ function packageAllUser () {
|
|
|
79
92
|
return allUser
|
|
80
93
|
}
|
|
81
94
|
// 工作组人员树选中了组织结构树的根节点
|
|
82
|
-
function packageAllWgUser
|
|
95
|
+
function packageAllWgUser() {
|
|
83
96
|
// 表示集合中不存在该用户,则封装该用户
|
|
84
97
|
const tenantNodeId = -1
|
|
85
98
|
var allUser = {
|
|
@@ -88,7 +101,7 @@ function packageAllWgUser () {
|
|
|
88
101
|
}
|
|
89
102
|
return allUser
|
|
90
103
|
}
|
|
91
|
-
export function initSelectUsers
|
|
104
|
+
export function initSelectUsers(searchField, selectUserInfo, separator) {
|
|
92
105
|
return new Promise((resolve, reject) => {
|
|
93
106
|
const selectDepts = []
|
|
94
107
|
if (selectUserInfo) {
|
|
@@ -101,11 +114,13 @@ export function initSelectUsers (searchField, selectUserInfo, separator) {
|
|
|
101
114
|
resolve(selectDepts)
|
|
102
115
|
} else {
|
|
103
116
|
// 表示不是选择的所有用户
|
|
104
|
-
getSelectUsers(searchField, selectUserInfo, separator)
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
117
|
+
getSelectUsers(searchField, selectUserInfo, separator)
|
|
118
|
+
.then((users) => {
|
|
119
|
+
resolve(users)
|
|
120
|
+
})
|
|
121
|
+
.catch((error) => {
|
|
122
|
+
reject(error)
|
|
123
|
+
})
|
|
109
124
|
}
|
|
110
125
|
} else {
|
|
111
126
|
resolve(selectDepts)
|
|
@@ -113,9 +128,8 @@ export function initSelectUsers (searchField, selectUserInfo, separator) {
|
|
|
113
128
|
})
|
|
114
129
|
}
|
|
115
130
|
|
|
116
|
-
|
|
117
131
|
// import {getLanguageWithLocale} from '../../../src/utils/util'
|
|
118
|
-
export function resizeScrollTargetHeightUtil
|
|
132
|
+
export function resizeScrollTargetHeightUtil() {
|
|
119
133
|
const pagePadding = 16
|
|
120
134
|
let height = window.innerHeight - pagePadding
|
|
121
135
|
const header = document.querySelector('.el-page-header')
|
|
@@ -129,29 +143,31 @@ export function resizeScrollTargetHeightUtil () {
|
|
|
129
143
|
return height
|
|
130
144
|
}
|
|
131
145
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
146
|
+
export function getUserMainDeptName(user) {
|
|
147
|
+
let deptShowName = ''
|
|
148
|
+
if (user && user.data) {
|
|
149
|
+
const userData = JSON.parse(user.data)
|
|
150
|
+
if (
|
|
151
|
+
userData.mainDepartmentEnName &&
|
|
152
|
+
userData.mainDepartmentEnName !== '' &&
|
|
153
|
+
window['$locale'] &&
|
|
154
|
+
window['$locale'] !== 'cn'
|
|
155
|
+
) {
|
|
156
|
+
deptShowName = userData.mainDepartmentEnName
|
|
157
|
+
} else {
|
|
158
|
+
if (userData.mainDepartmentName && userData.mainDepartmentName !== '') {
|
|
159
|
+
deptShowName = userData.mainDepartmentName
|
|
160
|
+
}
|
|
142
161
|
}
|
|
143
162
|
}
|
|
144
|
-
|
|
145
|
-
return deptShowName
|
|
163
|
+
return deptShowName
|
|
146
164
|
}
|
|
147
165
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
deptShowName
|
|
155
|
-
}
|
|
156
|
-
return deptShowName
|
|
166
|
+
export function getDeptNamePath(dept) {
|
|
167
|
+
let deptShowName = ''
|
|
168
|
+
if (dept && dept.data) {
|
|
169
|
+
const deptData = JSON.parse(dept.data)
|
|
170
|
+
deptShowName = deptData.namePath
|
|
171
|
+
}
|
|
172
|
+
return deptShowName
|
|
157
173
|
}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
row-key="uuid"
|
|
16
16
|
style="width: 100%"
|
|
17
17
|
>
|
|
18
|
-
<el-table-column :label="$t('workflowHistoryList.index')" align="
|
|
18
|
+
<el-table-column :label="$t('workflowHistoryList.index')" align="center" width="80">
|
|
19
19
|
<template v-slot="scope">
|
|
20
20
|
{{ scope.$index + 1 }}
|
|
21
21
|
</template>
|
|
@@ -35,13 +35,13 @@
|
|
|
35
35
|
}}</span>
|
|
36
36
|
</template>
|
|
37
37
|
</el-table-column>
|
|
38
|
-
<el-table-column :label="$t('workflowHistoryList.operator')" align="left" width="
|
|
38
|
+
<el-table-column :label="$t('workflowHistoryList.operator')" align="left" width="120">
|
|
39
39
|
<template v-slot="scope">
|
|
40
40
|
<span v-if="scope.row.historyType && scope.row.historyType === 'PROCESS_END'" />
|
|
41
41
|
<span v-else>{{ scope.row.creatorName }}</span>
|
|
42
42
|
</template>
|
|
43
43
|
</el-table-column>
|
|
44
|
-
<el-table-column :label="$t('workflowHistoryList.operatorLg')" align="left" width="
|
|
44
|
+
<el-table-column :label="$t('workflowHistoryList.operatorLg')" align="left" width="160">
|
|
45
45
|
<template v-slot="scope">
|
|
46
46
|
<span v-if="scope.row.historyType && scope.row.historyType === 'PROCESS_END'" />
|
|
47
47
|
<span v-else>{{ scope.row.creator }}</span>
|
|
@@ -59,6 +59,28 @@
|
|
|
59
59
|
<span v-else>{{ scope.row.formatCreatedTime }}</span>
|
|
60
60
|
</template>
|
|
61
61
|
</el-table-column>
|
|
62
|
+
<el-table-column :label="$t('workflowHistoryList.taskState')" align="left" width="100">
|
|
63
|
+
<template v-slot="scope">
|
|
64
|
+
<span v-if="scope.row.historyType && scope.row.historyType === 'PROCESS_END'" />
|
|
65
|
+
<el-tag v-else-if="scope.row.current" type="warning">{{$t('workflowHistoryList.taskStateDoing')}}</el-tag>
|
|
66
|
+
<el-tag v-else type="success">{{$t('workflowHistoryList.taskStateDone')}}</el-tag>
|
|
67
|
+
</template>
|
|
68
|
+
</el-table-column>
|
|
69
|
+
<el-table-column :label="$t('workflowHistoryList.processingDuration')" align="center" width="120">
|
|
70
|
+
<template v-slot="scope">
|
|
71
|
+
<span v-if="scope.row.historyType && scope.row.historyType === 'PROCESS_END'" />
|
|
72
|
+
<span v-else-if="!scope.row.copyTask">{{ scope.row.processingDuration }}</span>
|
|
73
|
+
</template>
|
|
74
|
+
</el-table-column>
|
|
75
|
+
<el-table-column :label="$t('workflowHistoryList.isOverdue')" align="center" width="100">
|
|
76
|
+
<template v-slot="scope">
|
|
77
|
+
<span v-if="scope.row.historyType && scope.row.historyType === 'PROCESS_END'" />
|
|
78
|
+
<span v-else>
|
|
79
|
+
<div v-if="scope.row.overdueDuration && scope.row.overdueDuration > 0" class="red-circle"/>
|
|
80
|
+
<div v-else class="green-circle"/>
|
|
81
|
+
</span>
|
|
82
|
+
</template>
|
|
83
|
+
</el-table-column>
|
|
62
84
|
<el-table-column :label="$t('workflowHistoryList.operation')" align="left" width="400">
|
|
63
85
|
<template v-slot="scope">
|
|
64
86
|
<span v-if="scope.row.historyType && scope.row.historyType === 'PROCESS_END'" />
|
|
@@ -286,3 +308,19 @@ export default {
|
|
|
286
308
|
}
|
|
287
309
|
}
|
|
288
310
|
</script>
|
|
311
|
+
<style scoped>
|
|
312
|
+
.red-circle {
|
|
313
|
+
width: 20px; /* 圆圈的宽度 */
|
|
314
|
+
height: 20px; /* 圆圈的高度 */
|
|
315
|
+
background-color: red; /* 背景色设置为红色 */
|
|
316
|
+
border-radius: 50%; /* 边框半径设置为50%,使元素变为圆形 */
|
|
317
|
+
display: inline-block; /* 确保元素以块级元素显示 */
|
|
318
|
+
}
|
|
319
|
+
.green-circle {
|
|
320
|
+
width: 20px; /* 圆圈的宽度 */
|
|
321
|
+
height: 20px; /* 圆圈的高度 */
|
|
322
|
+
background-color: rgb(11, 177, 121); /* 背景色设置为红色 */
|
|
323
|
+
border-radius: 50%; /* 边框半径设置为50%,使元素变为圆形 */
|
|
324
|
+
display: inline-block; /* 确保元素以块级元素显示 */
|
|
325
|
+
}
|
|
326
|
+
</style>
|