vue2-client 1.8.11 → 1.8.13
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/CHANGELOG.md +692 -685
- package/package.json +92 -92
- package/src/assets/img/querySlotDemo.svg +15 -15
- package/src/base-client/components/common/AMisRender/index.vue +243 -257
- package/src/base-client/components/common/CitySelect/index.js +3 -3
- package/src/base-client/components/common/CitySelect/index.md +109 -109
- package/src/base-client/components/common/CreateQuery/CreateQuery.vue +13 -26
- package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +37 -9
- package/src/base-client/components/common/PersonSetting/index.js +3 -3
- package/src/base-client/components/common/Upload/index.js +3 -3
- package/src/base-client/components/common/XFormTable/XFormTable.vue +347 -384
- package/src/base-client/components/common/XImportExcel/XImportExcel.vue +15 -16
- package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
- package/src/config/CreateQueryConfig.js +11 -1
- package/src/pages/AMisDemo/AMisDemo.vue +67 -223
- package/src/router.js +13 -15
- package/src/services/api/common.js +10 -1
- package/src/services/api/restTools.js +24 -24
- package/src/base-client/components/common/AMisRender/index.js +0 -3
- package/src/pages/AMisDemo/AMisDemo2.vue +0 -70
|
@@ -1,109 +1,109 @@
|
|
|
1
|
-
# 省市区修改组件
|
|
2
|
-
|
|
3
|
-
> 下拉框数据从库里查询 divisions_of_china 表
|
|
4
|
-
> 省市区数据存储格式
|
|
5
|
-
|
|
6
|
-
+---------+-----+------------+--------+--------+----------+
|
|
7
|
-
|code |name |provinceCode|cityCode|areaCode|parentCode|
|
|
8
|
-
+---------+-----+------------+--------+--------+----------+
|
|
9
|
-
|11 |北京市 |NULL |NULL |NULL |NULL |
|
|
10
|
-
|1101 |市辖区 |11 |NULL |NULL |11 |
|
|
11
|
-
|110101 |东城区 |11 |1101 |NULL |1101 |
|
|
12
|
-
|110101001|东华门街道|11 |1101 |110101 |1101 |
|
|
13
|
-
|110101002|景山街道 |11 |1101 |110101 |1101 |
|
|
14
|
-
+---------+-----+------------+--------+--------+----------+
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
查询出来之后转成tree 作为数据 (截取了一段数据)
|
|
18
|
-
|
|
19
|
-
```json
|
|
20
|
-
[
|
|
21
|
-
{
|
|
22
|
-
"code": "11",
|
|
23
|
-
"name": "北京",
|
|
24
|
-
"label": "北京",
|
|
25
|
-
"value": "北京",
|
|
26
|
-
"children":
|
|
27
|
-
[
|
|
28
|
-
{
|
|
29
|
-
"code": "1101",
|
|
30
|
-
"parentcode": "11",
|
|
31
|
-
"name": "辖区",
|
|
32
|
-
"label": "辖区",
|
|
33
|
-
"value": "辖区",
|
|
34
|
-
"children":
|
|
35
|
-
[
|
|
36
|
-
{
|
|
37
|
-
"code": "110101",
|
|
38
|
-
"parentcode": "1101",
|
|
39
|
-
"name": "东城区",
|
|
40
|
-
"label": "东城区",
|
|
41
|
-
"value": "东城区"
|
|
42
|
-
}
|
|
43
|
-
]}]}]
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
可传递参数
|
|
47
|
-
```js
|
|
48
|
-
props = {
|
|
49
|
-
// 页面渲染内容 默认 省市区街道 四个 所以是4
|
|
50
|
-
contexts: {
|
|
51
|
-
type: Number,
|
|
52
|
-
default: 3
|
|
53
|
-
},
|
|
54
|
-
placeholder: {
|
|
55
|
-
type: String,
|
|
56
|
-
default: '请选择省市区'
|
|
57
|
-
},
|
|
58
|
-
// small lage 输入框大小
|
|
59
|
-
size: {
|
|
60
|
-
type: String,
|
|
61
|
-
default: undefined
|
|
62
|
-
},
|
|
63
|
-
// 类型 simple / undefined
|
|
64
|
-
// simple 就是用的 cascader 不穿就是用的 自己封装的
|
|
65
|
-
type: {
|
|
66
|
-
type: String,
|
|
67
|
-
default: undefined
|
|
68
|
-
},
|
|
69
|
-
// 框的样式
|
|
70
|
-
inputStyle: {
|
|
71
|
-
type: Object,
|
|
72
|
-
default: () => {
|
|
73
|
-
}
|
|
74
|
-
},
|
|
75
|
-
// 下拉框的样式
|
|
76
|
-
dropdownStyle: {
|
|
77
|
-
type: Object,
|
|
78
|
-
default: () => {
|
|
79
|
-
return {
|
|
80
|
-
width: '35rem',
|
|
81
|
-
padding: '1%'
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
},
|
|
85
|
-
// 标签的样式
|
|
86
|
-
tagStyle: {
|
|
87
|
-
type: Object,
|
|
88
|
-
default: () => {
|
|
89
|
-
return {
|
|
90
|
-
fontSize: '0.88rem',
|
|
91
|
-
width: '23%',
|
|
92
|
-
textAlign: 'left',
|
|
93
|
-
margin: '0.5%',
|
|
94
|
-
cursor: 'pointer'
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
// 用于v-model 绑定
|
|
99
|
-
value: {
|
|
100
|
-
type: String,
|
|
101
|
-
default: undefined
|
|
102
|
-
},
|
|
103
|
-
// 用于v-model 绑定 code :最后一级的code address: 所有级拼接的地址
|
|
104
|
-
valueType: {
|
|
105
|
-
type: String,
|
|
106
|
-
default: 'address'
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
```
|
|
1
|
+
# 省市区修改组件
|
|
2
|
+
|
|
3
|
+
> 下拉框数据从库里查询 divisions_of_china 表
|
|
4
|
+
> 省市区数据存储格式
|
|
5
|
+
|
|
6
|
+
+---------+-----+------------+--------+--------+----------+
|
|
7
|
+
|code |name |provinceCode|cityCode|areaCode|parentCode|
|
|
8
|
+
+---------+-----+------------+--------+--------+----------+
|
|
9
|
+
|11 |北京市 |NULL |NULL |NULL |NULL |
|
|
10
|
+
|1101 |市辖区 |11 |NULL |NULL |11 |
|
|
11
|
+
|110101 |东城区 |11 |1101 |NULL |1101 |
|
|
12
|
+
|110101001|东华门街道|11 |1101 |110101 |1101 |
|
|
13
|
+
|110101002|景山街道 |11 |1101 |110101 |1101 |
|
|
14
|
+
+---------+-----+------------+--------+--------+----------+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
查询出来之后转成tree 作为数据 (截取了一段数据)
|
|
18
|
+
|
|
19
|
+
```json
|
|
20
|
+
[
|
|
21
|
+
{
|
|
22
|
+
"code": "11",
|
|
23
|
+
"name": "北京",
|
|
24
|
+
"label": "北京",
|
|
25
|
+
"value": "北京",
|
|
26
|
+
"children":
|
|
27
|
+
[
|
|
28
|
+
{
|
|
29
|
+
"code": "1101",
|
|
30
|
+
"parentcode": "11",
|
|
31
|
+
"name": "辖区",
|
|
32
|
+
"label": "辖区",
|
|
33
|
+
"value": "辖区",
|
|
34
|
+
"children":
|
|
35
|
+
[
|
|
36
|
+
{
|
|
37
|
+
"code": "110101",
|
|
38
|
+
"parentcode": "1101",
|
|
39
|
+
"name": "东城区",
|
|
40
|
+
"label": "东城区",
|
|
41
|
+
"value": "东城区"
|
|
42
|
+
}
|
|
43
|
+
]}]}]
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
可传递参数
|
|
47
|
+
```js
|
|
48
|
+
props = {
|
|
49
|
+
// 页面渲染内容 默认 省市区街道 四个 所以是4
|
|
50
|
+
contexts: {
|
|
51
|
+
type: Number,
|
|
52
|
+
default: 3
|
|
53
|
+
},
|
|
54
|
+
placeholder: {
|
|
55
|
+
type: String,
|
|
56
|
+
default: '请选择省市区'
|
|
57
|
+
},
|
|
58
|
+
// small lage 输入框大小
|
|
59
|
+
size: {
|
|
60
|
+
type: String,
|
|
61
|
+
default: undefined
|
|
62
|
+
},
|
|
63
|
+
// 类型 simple / undefined
|
|
64
|
+
// simple 就是用的 cascader 不穿就是用的 自己封装的
|
|
65
|
+
type: {
|
|
66
|
+
type: String,
|
|
67
|
+
default: undefined
|
|
68
|
+
},
|
|
69
|
+
// 框的样式
|
|
70
|
+
inputStyle: {
|
|
71
|
+
type: Object,
|
|
72
|
+
default: () => {
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
// 下拉框的样式
|
|
76
|
+
dropdownStyle: {
|
|
77
|
+
type: Object,
|
|
78
|
+
default: () => {
|
|
79
|
+
return {
|
|
80
|
+
width: '35rem',
|
|
81
|
+
padding: '1%'
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
// 标签的样式
|
|
86
|
+
tagStyle: {
|
|
87
|
+
type: Object,
|
|
88
|
+
default: () => {
|
|
89
|
+
return {
|
|
90
|
+
fontSize: '0.88rem',
|
|
91
|
+
width: '23%',
|
|
92
|
+
textAlign: 'left',
|
|
93
|
+
margin: '0.5%',
|
|
94
|
+
cursor: 'pointer'
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
// 用于v-model 绑定
|
|
99
|
+
value: {
|
|
100
|
+
type: String,
|
|
101
|
+
default: undefined
|
|
102
|
+
},
|
|
103
|
+
// 用于v-model 绑定 code :最后一级的code address: 所有级拼接的地址
|
|
104
|
+
valueType: {
|
|
105
|
+
type: String,
|
|
106
|
+
default: 'address'
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
```
|
|
@@ -68,17 +68,17 @@
|
|
|
68
68
|
<a-button icon="import" @click="$message.warn('从创意库中选择并引用高质量的通用表单项配置,敬请期待')">从创意库引入</a-button>
|
|
69
69
|
</a-space>
|
|
70
70
|
<a-row :gutter="24">
|
|
71
|
-
<a-col :span="
|
|
71
|
+
<a-col :span="6">
|
|
72
72
|
<span style="font-weight: bold">
|
|
73
73
|
标签名
|
|
74
74
|
</span>
|
|
75
75
|
</a-col>
|
|
76
|
-
<a-col :span="
|
|
76
|
+
<a-col :span="6">
|
|
77
77
|
<span style="font-weight: bold">
|
|
78
78
|
字段名
|
|
79
79
|
</span>
|
|
80
80
|
</a-col>
|
|
81
|
-
<a-col :span="
|
|
81
|
+
<a-col :span="10">
|
|
82
82
|
<span style="font-weight: bold">
|
|
83
83
|
数据模式
|
|
84
84
|
</span>
|
|
@@ -102,17 +102,17 @@
|
|
|
102
102
|
<span class="dragTips">拖到此处放置</span>
|
|
103
103
|
</a-row>
|
|
104
104
|
<a-row :gutter="24" class="column_item">
|
|
105
|
-
<a-col :span="
|
|
105
|
+
<a-col :span="6">
|
|
106
106
|
<span style="font-weight: bold">
|
|
107
107
|
{{ columnItem.title }}
|
|
108
108
|
</span>
|
|
109
109
|
</a-col>
|
|
110
|
-
<a-col :span="
|
|
110
|
+
<a-col :span="6">
|
|
111
111
|
<span style="font-weight: bold">
|
|
112
112
|
{{ columnItem.key }}
|
|
113
113
|
</span>
|
|
114
114
|
</a-col>
|
|
115
|
-
<a-col :span="
|
|
115
|
+
<a-col :span="10">
|
|
116
116
|
<a-tooltip>
|
|
117
117
|
<template slot="title">
|
|
118
118
|
查询表单项
|
|
@@ -145,7 +145,13 @@
|
|
|
145
145
|
</a-tooltip>
|
|
146
146
|
<a-tooltip>
|
|
147
147
|
<template slot="title">
|
|
148
|
-
|
|
148
|
+
Excel导入项
|
|
149
|
+
</template>
|
|
150
|
+
<a-tag :color="columnItem.dataModeArray.includes('excelImportItem') ? '#107C41' : 'rgba(0, 0, 0, 0.25)'"><a-icon type="file-excel" /></a-tag>
|
|
151
|
+
</a-tooltip>
|
|
152
|
+
<a-tooltip>
|
|
153
|
+
<template slot="title">
|
|
154
|
+
数据组
|
|
149
155
|
</template>
|
|
150
156
|
<a-tag :color="columnItem.dataModeArray.includes('group') ? '#82A0D8' : 'rgba(0, 0, 0, 0.25)'"><a-icon type="crown" /></a-tag>
|
|
151
157
|
</a-tooltip>
|
|
@@ -385,27 +391,8 @@ export default {
|
|
|
385
391
|
}, this.toEditJson
|
|
386
392
|
)
|
|
387
393
|
for (const columnItem of this.form.column) {
|
|
388
|
-
// 数据模式兼容性处理
|
|
389
394
|
if (!(columnItem.dataMode || columnItem.dataModeArray)) {
|
|
390
395
|
columnItem.dataModeArray = ['queryForm', 'table', 'addOrEditForm', 'sqlQueryItem', 'sqlQueryCondition']
|
|
391
|
-
} else if (columnItem.dataMode) {
|
|
392
|
-
if (columnItem.dataMode === 'all') {
|
|
393
|
-
columnItem.dataModeArray = ['queryForm', 'table', 'addOrEditForm', 'sqlQueryItem', 'sqlQueryCondition']
|
|
394
|
-
} else if (columnItem.dataMode === 'form') {
|
|
395
|
-
columnItem.dataModeArray = ['queryForm', 'addOrEditForm', 'sqlQueryCondition']
|
|
396
|
-
} else if (columnItem.dataMode === 'table') {
|
|
397
|
-
columnItem.dataModeArray = ['table', 'sqlQueryItem']
|
|
398
|
-
} else if (columnItem.dataMode === 'table_form') {
|
|
399
|
-
columnItem.dataModeArray = ['table', 'sqlQueryItem', 'sqlQueryCondition']
|
|
400
|
-
} else if (columnItem.dataMode === 'only_form') {
|
|
401
|
-
columnItem.dataModeArray = ['queryForm']
|
|
402
|
-
} else if (columnItem.dataMode === 'only_table') {
|
|
403
|
-
columnItem.dataModeArray = ['table']
|
|
404
|
-
} else if (columnItem.dataMode === 'clear') {
|
|
405
|
-
columnItem.dataModeArray = ['sqlQueryItem', 'sqlQueryCondition']
|
|
406
|
-
} else if (columnItem.dataMode === 'only_add_modify') {
|
|
407
|
-
columnItem.dataModeArray = ['addOrEditForm', 'sqlQueryItem']
|
|
408
|
-
}
|
|
409
396
|
}
|
|
410
397
|
delete columnItem.dataMode
|
|
411
398
|
// 插槽兼容处理
|
|
@@ -311,7 +311,7 @@
|
|
|
311
311
|
<a-card :bodyStyle="bodyStyle" title="数据字段">
|
|
312
312
|
<a-button type="primary" slot="extra" @click="addColumnItem()">增加</a-button>
|
|
313
313
|
<a-row :gutter="24">
|
|
314
|
-
<a-col :span="
|
|
314
|
+
<a-col :span="7">
|
|
315
315
|
<span style="font-weight: bold">
|
|
316
316
|
标签名
|
|
317
317
|
</span>
|
|
@@ -321,7 +321,7 @@
|
|
|
321
321
|
字段名
|
|
322
322
|
</span>
|
|
323
323
|
</a-col>
|
|
324
|
-
<a-col :span="
|
|
324
|
+
<a-col :span="8">
|
|
325
325
|
<span style="font-weight: bold">
|
|
326
326
|
数据模式
|
|
327
327
|
</span>
|
|
@@ -388,7 +388,13 @@
|
|
|
388
388
|
</a-tooltip>
|
|
389
389
|
<a-tooltip>
|
|
390
390
|
<template slot="title">
|
|
391
|
-
|
|
391
|
+
Excel导入项
|
|
392
|
+
</template>
|
|
393
|
+
<a-tag :color="columnItem.dataModeArray && columnItem.dataModeArray.includes('excelImportItem') ? '#107C41' : 'rgba(0, 0, 0, 0.25)'"><a-icon type="file-excel" /></a-tag>
|
|
394
|
+
</a-tooltip>
|
|
395
|
+
<a-tooltip>
|
|
396
|
+
<template slot="title">
|
|
397
|
+
数据组
|
|
392
398
|
</template>
|
|
393
399
|
<a-tag :color="columnItem.dataModeArray && columnItem.dataModeArray.includes('group') ? '#82A0D8' : 'rgba(0, 0, 0, 0.25)'"><a-icon type="crown" /></a-tag>
|
|
394
400
|
</a-tooltip>
|
|
@@ -477,7 +483,7 @@ export default {
|
|
|
477
483
|
},
|
|
478
484
|
// 字段名称是否禁用
|
|
479
485
|
keyDisabled () {
|
|
480
|
-
return this.item.formType === 'file' || this.item.formType === 'image'
|
|
486
|
+
return this.item.formType === 'file' || this.item.formType === 'image' || this.dataMode.mixinTableName
|
|
481
487
|
},
|
|
482
488
|
// 数据模式是否禁用
|
|
483
489
|
dataModeDisabled () {
|
|
@@ -489,7 +495,10 @@ export default {
|
|
|
489
495
|
table: false,
|
|
490
496
|
addOrEditForm: false,
|
|
491
497
|
sqlQueryItem: false,
|
|
492
|
-
sqlQueryCondition: false
|
|
498
|
+
sqlQueryCondition: false,
|
|
499
|
+
excelImportItem: false,
|
|
500
|
+
group: false,
|
|
501
|
+
mixinTableName: false
|
|
493
502
|
}
|
|
494
503
|
for (const item of this.dataModeArrayData) {
|
|
495
504
|
result[item] = true
|
|
@@ -508,11 +517,24 @@ export default {
|
|
|
508
517
|
value: 'sqlQueryItem',
|
|
509
518
|
noMatch: ['file', 'personSetting']
|
|
510
519
|
}, {
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
520
|
+
label: '字段组存储',
|
|
521
|
+
value: 'group',
|
|
522
|
+
noMatch: []
|
|
514
523
|
}]
|
|
515
524
|
}
|
|
525
|
+
if (this.dataModeArrayData.includes('mixinTableName')) {
|
|
526
|
+
return [
|
|
527
|
+
{
|
|
528
|
+
label: '渲染查询表单项',
|
|
529
|
+
value: 'queryForm',
|
|
530
|
+
noMatch: ['file', 'image', 'textarea', 'personSetting']
|
|
531
|
+
},
|
|
532
|
+
{
|
|
533
|
+
label: '动态表名参数',
|
|
534
|
+
value: 'mixinTableName',
|
|
535
|
+
noMatch: []
|
|
536
|
+
}]
|
|
537
|
+
}
|
|
516
538
|
if (this.item.formType) {
|
|
517
539
|
return dataModeType.filter(item => {
|
|
518
540
|
return item.noMatch.findIndex(type => type === this.item.formType) === -1
|
|
@@ -595,7 +617,7 @@ export default {
|
|
|
595
617
|
callback(new Error('请输入字段名称'))
|
|
596
618
|
} else {
|
|
597
619
|
// 判断必须全部小写 并且不能包含空格
|
|
598
|
-
if (value !== value.toLowerCase() || value.indexOf(' ') !== -1) {
|
|
620
|
+
if (value !== value.toLowerCase() || value.indexOf(' ') !== -1 && !value === '_mixinTableName_') {
|
|
599
621
|
callback(new Error('字段名称必须全部小写,且不能包含空格'))
|
|
600
622
|
} else {
|
|
601
623
|
callback()
|
|
@@ -805,6 +827,12 @@ export default {
|
|
|
805
827
|
},
|
|
806
828
|
// 数据模式改变
|
|
807
829
|
dataModeArrayDataChange (newVal) {
|
|
830
|
+
if (newVal.includes('mixinTableName')) {
|
|
831
|
+
this.item.key = '_mixinTableName_'
|
|
832
|
+
this.dataModeArrayData = ['queryForm', 'mixinTableName']
|
|
833
|
+
} else {
|
|
834
|
+
this.item.key = ''
|
|
835
|
+
}
|
|
808
836
|
if (newVal.includes('group')) {
|
|
809
837
|
this.dataModeArrayData = ['sqlQueryItem', 'group']
|
|
810
838
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import PersonSetting from './PersonSetting'
|
|
2
|
-
|
|
3
|
-
export default PersonSetting
|
|
1
|
+
import PersonSetting from './PersonSetting'
|
|
2
|
+
|
|
3
|
+
export default PersonSetting
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import Upload from './Upload'
|
|
2
|
-
|
|
3
|
-
export default Upload
|
|
1
|
+
import Upload from './Upload'
|
|
2
|
+
|
|
3
|
+
export default Upload
|