three-trees-ui 1.0.98 → 1.1.0
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/three-trees-ui.common.js +641 -944
- package/lib/three-trees-ui.css +1 -1
- package/lib/three-trees-ui.umd.js +641 -944
- package/lib/three-trees-ui.umd.min.js +1 -1
- package/package.json +2 -4
- package/packages/Collapse/src/HtCollapse.vue +1 -4
- package/packages/CustomDialog/src/customDialog.vue +9 -26
- package/packages/CustomDialog/src/main.vue +115 -171
- package/packages/DimensionSelector/src/main.vue +43 -44
- package/packages/JobSelector/src/main.vue +81 -85
- package/packages/OnlineForm/src/Form.vue +5 -155
- package/packages/OrgSelector/src/main.vue +85 -87
- package/packages/PostSelector/src/main.vue +81 -86
- package/packages/Preview/src/FrameViewer.vue +0 -1
- package/packages/RoleSelector/src/main.vue +81 -87
- package/packages/TemplateForm/src/main.vue +0 -1
- package/packages/UserSelector/src/main.vue +101 -96
- package/src/directive/formulas.js +1 -7
- package/src/index.js +0 -2
- package/src/mixins/onlineSubtable.js +19 -63
- package/src/styles/selector.scss +2 -42
- package/src/styles/variables.scss +5 -6
- package/src/utils.js +0 -7
- package/packages/SubEditModeDialog/index.js +0 -7
- package/packages/SubEditModeDialog/src/main.vue +0 -115
|
@@ -10,28 +10,13 @@ export default {
|
|
|
10
10
|
transitionIndex: -1,
|
|
11
11
|
left_image: '',
|
|
12
12
|
right_image: '',
|
|
13
|
-
collapseType: 'expand',
|
|
14
|
-
subDataArr: [],
|
|
15
13
|
}
|
|
16
14
|
},
|
|
17
15
|
computed: {
|
|
18
|
-
showMobileEdit() {
|
|
19
|
-
return (subName) => {
|
|
20
|
-
if (this.permission && this.permission.fields[subName]) {
|
|
21
|
-
return Object.keys(this.permission.fields[subName]).some((k) => {
|
|
22
|
-
return (
|
|
23
|
-
this.permission.fields[subName][k] == 'b' ||
|
|
24
|
-
this.permission.fields[subName][k] == 'w'
|
|
25
|
-
)
|
|
26
|
-
})
|
|
27
|
-
}
|
|
28
|
-
return false
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
16
|
// 子表前端分页过滤器
|
|
32
17
|
pagingSubData() {
|
|
33
18
|
const me = this
|
|
34
|
-
return function(datapath) {
|
|
19
|
+
return function (datapath) {
|
|
35
20
|
// 通过子表数据路径获取分页数据
|
|
36
21
|
return SubPagination.pagingByPath(datapath, me)
|
|
37
22
|
}
|
|
@@ -69,25 +54,6 @@ export default {
|
|
|
69
54
|
}
|
|
70
55
|
},
|
|
71
56
|
methods: {
|
|
72
|
-
getSunExpandArr(data, type) {
|
|
73
|
-
return this.getExpandArr(data, type)
|
|
74
|
-
},
|
|
75
|
-
getSubEditModeData(data = {}, type) {
|
|
76
|
-
if (type === 'edit') return
|
|
77
|
-
this.$root.$emit(
|
|
78
|
-
'add-new-collapse-item',
|
|
79
|
-
data.sub_guid,
|
|
80
|
-
this.collapseType
|
|
81
|
-
)
|
|
82
|
-
this.subDataArr.push(data)
|
|
83
|
-
},
|
|
84
|
-
editSubRow(row, name) {
|
|
85
|
-
this.$refs[`HtSubEditModeDialog_${name}`].showDialog({
|
|
86
|
-
data: row,
|
|
87
|
-
mainData: this.data,
|
|
88
|
-
type: 'edit',
|
|
89
|
-
})
|
|
90
|
-
},
|
|
91
57
|
//合计计算
|
|
92
58
|
getSummaries(param, list) {
|
|
93
59
|
let CancelTheCalculation = sessionStorage.getItem(
|
|
@@ -291,7 +257,7 @@ export default {
|
|
|
291
257
|
let exp = calc.mathExp
|
|
292
258
|
if (!exp) return null
|
|
293
259
|
var reg = /([\[|\{]).*?\((.*?)\)[\}|\]]/g
|
|
294
|
-
exp = exp.replace(reg, function() {
|
|
260
|
+
exp = exp.replace(reg, function () {
|
|
295
261
|
var symbol = arguments[1],
|
|
296
262
|
name = arguments[2]
|
|
297
263
|
const prop = name.split('.')[1]
|
|
@@ -388,7 +354,6 @@ export default {
|
|
|
388
354
|
return num
|
|
389
355
|
},
|
|
390
356
|
getExpandArr(data, type) {
|
|
391
|
-
this.collapseType = type
|
|
392
357
|
if (type === 'expand' && data) {
|
|
393
358
|
let arr = []
|
|
394
359
|
data.forEach((item) => {
|
|
@@ -403,7 +368,7 @@ export default {
|
|
|
403
368
|
if (this.isPrint) {
|
|
404
369
|
this.$router.go(-1)
|
|
405
370
|
}
|
|
406
|
-
setTimeout(function() {
|
|
371
|
+
setTimeout(function () {
|
|
407
372
|
location.reload()
|
|
408
373
|
}, 200)
|
|
409
374
|
},
|
|
@@ -489,7 +454,7 @@ export default {
|
|
|
489
454
|
this.$forceUpdate()
|
|
490
455
|
},
|
|
491
456
|
//子表默认值回填
|
|
492
|
-
addSubTab(subTabPath
|
|
457
|
+
addSubTab(subTabPath) {
|
|
493
458
|
let pathArr = subTabPath.split('.')
|
|
494
459
|
if (pathArr.length < 3) {
|
|
495
460
|
this.$message({
|
|
@@ -509,9 +474,9 @@ export default {
|
|
|
509
474
|
//把数组里面的值为 null 转换为空字符串
|
|
510
475
|
let str = JSON.stringify(subInitData).replace(/null/g, '""')
|
|
511
476
|
let subData = JSON.parse(str)
|
|
512
|
-
|
|
477
|
+
const subDataArr = this.data[pathArr[1]][pathArr[2]]
|
|
513
478
|
//子表添加后的长度,因为在nextTick中,子表已经添加完毕。
|
|
514
|
-
const nextIndex =
|
|
479
|
+
const nextIndex = subDataArr.length
|
|
515
480
|
for (var key in subData) {
|
|
516
481
|
//点添加时判断要新增子表记录中的孙表是否有值
|
|
517
482
|
if (key.indexOf('sub_') == 0) {
|
|
@@ -532,16 +497,8 @@ export default {
|
|
|
532
497
|
}
|
|
533
498
|
let fillObj = this.toFillOrg(pathArr[1] + '.' + pathArr[2], subData)
|
|
534
499
|
fillObj.sub_guid = this.guid()
|
|
535
|
-
if (subEditMode == 2) {
|
|
536
|
-
this.$refs[`HtSubEditModeDialog_${name}`].showDialog({
|
|
537
|
-
data: fillObj,
|
|
538
|
-
mainData: this.data,
|
|
539
|
-
type: 'add',
|
|
540
|
-
})
|
|
541
|
-
return
|
|
542
|
-
}
|
|
543
500
|
this.$root.$emit('add-new-collapse-item', fillObj.sub_guid)
|
|
544
|
-
|
|
501
|
+
subDataArr.push(fillObj)
|
|
545
502
|
}
|
|
546
503
|
},
|
|
547
504
|
//子表添加头部样式
|
|
@@ -557,13 +514,14 @@ export default {
|
|
|
557
514
|
return { '--headerBgColor': color ? color : '#f4f4f4' }
|
|
558
515
|
},
|
|
559
516
|
guid() {
|
|
560
|
-
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
517
|
+
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(
|
|
518
|
+
/[xy]/g,
|
|
519
|
+
function (c) {
|
|
520
|
+
var r = (Math.random() * 16) | 0,
|
|
521
|
+
v = c == 'x' ? r : (r & 0x3) | 0x8
|
|
522
|
+
return v.toString(16)
|
|
523
|
+
}
|
|
524
|
+
)
|
|
567
525
|
},
|
|
568
526
|
//孙表默认值回填
|
|
569
527
|
addSunTab(subTabPath, index) {
|
|
@@ -840,17 +798,15 @@ export default {
|
|
|
840
798
|
if (conf.code) {
|
|
841
799
|
const codePath = conf.code.split('.')
|
|
842
800
|
if (!this.data[paths[0]][paths[1]][0][codePath[2]]) {
|
|
843
|
-
this.data[paths[0]][paths[1]][0][
|
|
844
|
-
|
|
845
|
-
] = this.fillOrg.code
|
|
801
|
+
this.data[paths[0]][paths[1]][0][codePath[2]] =
|
|
802
|
+
this.fillOrg.code
|
|
846
803
|
}
|
|
847
804
|
}
|
|
848
805
|
if (conf.name) {
|
|
849
806
|
const namePath = conf.name.split('.')
|
|
850
807
|
if (!this.data[paths[0]][paths[1]][0][namePath[2]]) {
|
|
851
|
-
this.data[paths[0]][paths[1]][0][
|
|
852
|
-
|
|
853
|
-
] = this.fillOrg.name
|
|
808
|
+
this.data[paths[0]][paths[1]][0][namePath[2]] =
|
|
809
|
+
this.fillOrg.name
|
|
854
810
|
}
|
|
855
811
|
}
|
|
856
812
|
}
|
package/src/styles/selector.scss
CHANGED
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
.ht-selector__table {
|
|
12
12
|
height: 380px;
|
|
13
13
|
}
|
|
14
|
-
.el-pagination
|
|
14
|
+
.el-pagination{
|
|
15
15
|
white-space: pre-wrap !important;
|
|
16
16
|
}
|
|
17
|
-
}
|
|
17
|
+
}
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
@media (min-width: 1400px) {
|
|
@@ -128,43 +128,3 @@
|
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
|
-
|
|
132
|
-
.custom-selector-mobile {
|
|
133
|
-
.custom-selector-mobile-box {
|
|
134
|
-
display: flex;
|
|
135
|
-
min-height: 32px;
|
|
136
|
-
align-items: center;
|
|
137
|
-
padding: 4px 14px;
|
|
138
|
-
flex-wrap: wrap;
|
|
139
|
-
gap: 4px;
|
|
140
|
-
line-height: 22px;
|
|
141
|
-
padding-right: 40px;
|
|
142
|
-
box-sizing: border-box;
|
|
143
|
-
.el-icon-error {
|
|
144
|
-
color: #909399;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
.el-input__inner {
|
|
148
|
-
position: absolute;
|
|
149
|
-
left: 0;
|
|
150
|
-
top: 0;
|
|
151
|
-
right: 0;
|
|
152
|
-
bottom: 0;
|
|
153
|
-
user-select: none;
|
|
154
|
-
background: none;
|
|
155
|
-
color: transparent !important;
|
|
156
|
-
pointer-events: none;
|
|
157
|
-
height: 100%;
|
|
158
|
-
}
|
|
159
|
-
.el-input__suffix-inner {
|
|
160
|
-
display: flex;
|
|
161
|
-
align-items: center;
|
|
162
|
-
}
|
|
163
|
-
.el-icon-circle-close {
|
|
164
|
-
margin-right: 3px;
|
|
165
|
-
}
|
|
166
|
-
.user-icon,
|
|
167
|
-
.el-icon-circle-close {
|
|
168
|
-
display: inline-block !important;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
@@ -90,17 +90,16 @@ col[width='1'] {
|
|
|
90
90
|
cursor: pointer;
|
|
91
91
|
color: #dbdbdb;
|
|
92
92
|
}
|
|
93
|
-
.el-icon-search,
|
|
94
93
|
.user-icon,
|
|
95
94
|
.org-icon {
|
|
96
95
|
display: none;
|
|
97
96
|
}
|
|
98
97
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
98
|
+
.el-input {
|
|
99
|
+
.el-input__inner {
|
|
100
|
+
color: #fff;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
104
103
|
}
|
|
105
104
|
.el-select__tags_readonly {
|
|
106
105
|
.tag-wrap {
|
package/src/utils.js
CHANGED
|
@@ -1163,13 +1163,6 @@ var utils = {
|
|
|
1163
1163
|
return url
|
|
1164
1164
|
}
|
|
1165
1165
|
},
|
|
1166
|
-
guid: () => {
|
|
1167
|
-
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
|
|
1168
|
-
var r = (Math.random() * 16) | 0,
|
|
1169
|
-
v = c == 'x' ? r : (r & 0x3) | 0x8
|
|
1170
|
-
return v.toString(16)
|
|
1171
|
-
})
|
|
1172
|
-
},
|
|
1173
1166
|
}
|
|
1174
1167
|
|
|
1175
1168
|
// 在数组上扩展一个删除指定项的方法
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<van-popup
|
|
3
|
-
v-if="dialogVisible"
|
|
4
|
-
v-model="dialogVisible"
|
|
5
|
-
position="right"
|
|
6
|
-
get-container="body"
|
|
7
|
-
class="ht-sub-edit-mode-dialog"
|
|
8
|
-
>
|
|
9
|
-
<van-nav-bar
|
|
10
|
-
title="子表编辑"
|
|
11
|
-
left-arrow
|
|
12
|
-
@click-left="dialogVisible = false"
|
|
13
|
-
/>
|
|
14
|
-
<el-form
|
|
15
|
-
v-if="dialogVisible"
|
|
16
|
-
v-form="{
|
|
17
|
-
formItemAlign: 'top',
|
|
18
|
-
inputsDisplay: 'block',
|
|
19
|
-
roInputDisplayMode: 'text',
|
|
20
|
-
}"
|
|
21
|
-
class="sub-edit-main"
|
|
22
|
-
:data-vv-scope="searchFormScope"
|
|
23
|
-
label-position="top"
|
|
24
|
-
>
|
|
25
|
-
<slot :row="{ row, index: 0 }"></slot>
|
|
26
|
-
</el-form>
|
|
27
|
-
<div class="sub-edit-footer">
|
|
28
|
-
<el-button @click="dialogVisible = false">取 消</el-button>
|
|
29
|
-
<el-button type="primary" @click="handleConfirm">确 定</el-button>
|
|
30
|
-
</div>
|
|
31
|
-
</van-popup>
|
|
32
|
-
</template>
|
|
33
|
-
<script>
|
|
34
|
-
import { cloneDeep } from 'lodash'
|
|
35
|
-
import utils from '@/utils.js'
|
|
36
|
-
|
|
37
|
-
export default {
|
|
38
|
-
name: 'HtSubEditModeDialog',
|
|
39
|
-
props: {},
|
|
40
|
-
data() {
|
|
41
|
-
return {
|
|
42
|
-
dialogVisible: false,
|
|
43
|
-
dialogType: 'add',
|
|
44
|
-
row: {},
|
|
45
|
-
orgRow: {}, // 存储原始数据,用来修改子表的数据
|
|
46
|
-
data: {}, // 主表数据,用来处理参数绑定、值回显等问题
|
|
47
|
-
permission: {},
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
computed: {
|
|
51
|
-
searchFormScope() {
|
|
52
|
-
return `Form${utils.guid()}`
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
methods: {
|
|
56
|
-
showDialog({ type, data, mainData }) {
|
|
57
|
-
this.dialogVisible = true
|
|
58
|
-
this.permission = utils.getOnlineFormInstance(this).permission || {}
|
|
59
|
-
this.dialogType = type
|
|
60
|
-
this.orgRow = data
|
|
61
|
-
this.data = mainData
|
|
62
|
-
this.row = cloneDeep(data)
|
|
63
|
-
},
|
|
64
|
-
handleConfirm() {
|
|
65
|
-
utils
|
|
66
|
-
.validateForm(this, this.searchFormScope)
|
|
67
|
-
.then(() => {
|
|
68
|
-
this.dialogVisible = false
|
|
69
|
-
// 点击确认更新子表数据
|
|
70
|
-
const keys = Object.keys(this.orgRow || {})
|
|
71
|
-
keys.forEach((key) => {
|
|
72
|
-
if (this.orgRow[key] !== this.row[key]) {
|
|
73
|
-
this.orgRow[key] = this.row[key]
|
|
74
|
-
}
|
|
75
|
-
})
|
|
76
|
-
this.$emit('getSubEditModeData', this.row, this.dialogType)
|
|
77
|
-
})
|
|
78
|
-
.catch(() => {})
|
|
79
|
-
},
|
|
80
|
-
},
|
|
81
|
-
}
|
|
82
|
-
</script>
|
|
83
|
-
<style lang="scss" scoped>
|
|
84
|
-
::v-deep {
|
|
85
|
-
.el-row {
|
|
86
|
-
display: flex;
|
|
87
|
-
flex-wrap: wrap;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
</style>
|
|
91
|
-
<style lang="scss">
|
|
92
|
-
.ht-sub-edit-mode-dialog {
|
|
93
|
-
width: 100%;
|
|
94
|
-
height: 100vh;
|
|
95
|
-
display: flex;
|
|
96
|
-
flex-direction: column;
|
|
97
|
-
|
|
98
|
-
.sub-edit-main {
|
|
99
|
-
flex: 1;
|
|
100
|
-
padding: 16px;
|
|
101
|
-
overflow-y: auto;
|
|
102
|
-
&.el-form--label-top .el-form-item__label {
|
|
103
|
-
padding-bottom: 0;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
.sub-edit-footer {
|
|
107
|
-
height: 46px;
|
|
108
|
-
display: flex;
|
|
109
|
-
align-items: center;
|
|
110
|
-
justify-content: center;
|
|
111
|
-
padding: 0 24px;
|
|
112
|
-
border-top: 1px solid #ebebeb;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
</style>
|