vue2-client 1.8.30 → 1.8.32
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/.env +0 -1
- package/.eslintrc.js +14 -22
- package/CHANGELOG.md +0 -52
- package/babel.config.js +2 -8
- package/docs/index.md +1 -2
- package/index.js +1 -1
- package/jest.config.js +2 -20
- package/package.json +27 -36
- package/src/App.vue +7 -33
- package/src/assets/img/querySlotDemo.svg +15 -15
- package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +2 -2
- package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +3 -3
- 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 +37 -32
- package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +12 -80
- package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +70 -53
- package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +5 -5
- package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +18 -19
- package/src/base-client/components/common/JSONToTree/jsontotree.vue +8 -4
- package/src/base-client/components/common/PersonSetting/PersonSetting.vue +6 -4
- package/src/base-client/components/common/PersonSetting/index.js +3 -3
- package/src/base-client/components/common/Upload/Upload.vue +1 -1
- package/src/base-client/components/common/Upload/index.js +3 -3
- package/src/base-client/components/common/XAddForm/XAddForm.vue +5 -21
- package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +53 -88
- package/src/base-client/components/common/XCard/XCard.vue +1 -1
- package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +2 -2
- package/src/base-client/components/common/XForm/XForm.vue +0 -2
- package/src/base-client/components/common/XFormTable/XFormTable.vue +24 -49
- package/src/base-client/components/common/XFormTable/index.md +0 -1
- package/src/base-client/components/common/XImportExcel/XImportExcel.vue +18 -17
- package/src/base-client/components/common/XTable/XTable.vue +8 -16
- package/src/base-client/components/index.js +5 -11
- package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +3 -4
- package/src/base-client/plugins/AppData.js +2 -1
- package/src/base-client/plugins/Config.js +1 -0
- package/src/base-client/plugins/GetLoginInfoService.js +3 -6
- package/src/base-client/plugins/tabs-page-plugin.js +4 -5
- package/src/bootstrap.js +2 -2
- package/src/components/FilePreview/FilePreview.vue +2 -2
- package/src/components/NumberInfo/NumberInfo.vue +1 -1
- package/src/components/checkbox/ColorCheckbox.vue +1 -1
- package/src/components/checkbox/ImgCheckbox.vue +2 -2
- package/src/components/menu/SideMenu.vue +2 -2
- package/src/components/menu/menu.js +1 -1
- package/src/components/tool/AStepItem.vue +1 -1
- package/src/config/CreateQueryConfig.js +2 -12
- package/src/config/default/antd.config.js +6 -11
- package/src/config/default/setting.config.js +4 -7
- package/src/layouts/PageLayout.vue +1 -1
- package/src/layouts/SinglePageView.vue +2 -24
- package/src/layouts/header/AdminHeader.vue +4 -4
- package/src/layouts/header/HeaderNotice.vue +2 -3
- package/src/layouts/tabs/TabsHead.vue +2 -1
- package/src/layouts/tabs/TabsView.vue +10 -18
- package/src/main.js +12 -40
- package/src/mock/extend/index.js +1 -2
- package/src/mock/goods/index.js +6 -6
- package/src/pages/CreateQueryPage.vue +3 -11
- package/src/pages/login/Login.vue +2 -2
- package/src/pages/resourceManage/orgListManage.vue +2 -2
- package/src/pages/system/dictionary/index.vue +0 -1
- package/src/pages/system/monitor/loginInfor/index.vue +1 -2
- package/src/pages/system/monitor/operLog/index.vue +1 -2
- package/src/pages/system/settings/modifyPassword.vue +1 -1
- package/src/pages/system/ticket/index.vue +2 -3
- package/src/pages/system/ticket/submitTicketSuccess.vue +2 -8
- package/src/router/async/router.map.js +0 -2
- package/src/router/guards.js +0 -29
- package/src/services/api/common.js +21 -37
- package/src/services/api/restTools.js +24 -24
- package/src/services/apiService.js +2 -2
- package/src/theme/default/style.less +2 -2
- package/src/utils/authority-utils.js +12 -12
- package/src/utils/errorCode.js +4 -4
- package/src/utils/login.js +5 -8
- package/src/utils/map-utils.js +14 -20
- package/src/utils/request.js +5 -15
- package/src/utils/routerUtil.js +8 -12
- package/src/utils/util.js +2 -3
- package/vue.config.js +24 -66
- package/webpack.config.js +12 -0
- package/jest-transform-stub.js +0 -8
- package/jest.setup.js +0 -7
- package/src/base-client/components/common/AMisRender/index.js +0 -3
- package/src/base-client/components/common/AMisRender/index.vue +0 -257
- package/src/base-client/components/common/Tree/Tree.vue +0 -149
- package/src/base-client/components/common/Tree/index.js +0 -2
- package/src/base-client/components/common/XDescriptions/XDescriptions.vue +0 -117
- package/src/base-client/components/common/XDescriptions/index.js +0 -3
- package/src/base-client/components/common/XDescriptions/index.md +0 -83
- package/src/base-client/components/common/XStepView/XStepView.vue +0 -252
- package/src/base-client/components/common/XStepView/index.js +0 -3
- package/src/base-client/components/common/XStepView/index.md +0 -31
- package/src/pages/AMisDemo/AMisDemo.vue +0 -223
- package/src/pages/AMisDemo/AMisDemo2.vue +0 -74
- package/src/router.js +0 -15
- package/test/Amis.spec.js +0 -163
- package/test/Tree.spec.js +0 -167
- package/test/myDialog.spec.js +0 -46
- package//350/277/201/347/247/273/346/227/245/345/277/227.md +0 -15
|
@@ -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
|
+
```
|
|
@@ -15,6 +15,9 @@
|
|
|
15
15
|
:rules="rules"
|
|
16
16
|
:wrapper-col="wrapperCol"
|
|
17
17
|
>
|
|
18
|
+
<a-form-model-item label="服务名称" prop="serviceName">
|
|
19
|
+
<a-input v-model="form.serviceName" placeholder="查询接口所在的服务名称,默认system"/>
|
|
20
|
+
</a-form-model-item>
|
|
18
21
|
<a-form-model-item label="查询主表名" prop="tableName">
|
|
19
22
|
<a-input v-model="form.tableName" placeholder="查询用的主表+别名,用空格隔开,如:t_userfiles u"/>
|
|
20
23
|
</a-form-model-item>
|
|
@@ -68,17 +71,17 @@
|
|
|
68
71
|
<a-button icon="import" @click="$message.warn('从创意库中选择并引用高质量的通用表单项配置,敬请期待')">从创意库引入</a-button>
|
|
69
72
|
</a-space>
|
|
70
73
|
<a-row :gutter="24">
|
|
71
|
-
<a-col :span="
|
|
74
|
+
<a-col :span="8">
|
|
72
75
|
<span style="font-weight: bold">
|
|
73
76
|
标签名
|
|
74
77
|
</span>
|
|
75
78
|
</a-col>
|
|
76
|
-
<a-col :span="
|
|
79
|
+
<a-col :span="7">
|
|
77
80
|
<span style="font-weight: bold">
|
|
78
81
|
字段名
|
|
79
82
|
</span>
|
|
80
83
|
</a-col>
|
|
81
|
-
<a-col :span="
|
|
84
|
+
<a-col :span="7">
|
|
82
85
|
<span style="font-weight: bold">
|
|
83
86
|
数据模式
|
|
84
87
|
</span>
|
|
@@ -102,17 +105,17 @@
|
|
|
102
105
|
<span class="dragTips">拖到此处放置</span>
|
|
103
106
|
</a-row>
|
|
104
107
|
<a-row :gutter="24" class="column_item">
|
|
105
|
-
<a-col :span="
|
|
108
|
+
<a-col :span="7">
|
|
106
109
|
<span style="font-weight: bold">
|
|
107
110
|
{{ columnItem.title }}
|
|
108
111
|
</span>
|
|
109
112
|
</a-col>
|
|
110
|
-
<a-col :span="
|
|
113
|
+
<a-col :span="7">
|
|
111
114
|
<span style="font-weight: bold">
|
|
112
115
|
{{ columnItem.key }}
|
|
113
116
|
</span>
|
|
114
117
|
</a-col>
|
|
115
|
-
<a-col :span="
|
|
118
|
+
<a-col :span="8">
|
|
116
119
|
<a-tooltip>
|
|
117
120
|
<template slot="title">
|
|
118
121
|
查询表单项
|
|
@@ -145,13 +148,7 @@
|
|
|
145
148
|
</a-tooltip>
|
|
146
149
|
<a-tooltip>
|
|
147
150
|
<template slot="title">
|
|
148
|
-
|
|
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
|
-
数据组
|
|
151
|
+
字段组存储
|
|
155
152
|
</template>
|
|
156
153
|
<a-tag :color="columnItem.dataModeArray.includes('group') ? '#82A0D8' : 'rgba(0, 0, 0, 0.25)'"><a-icon type="crown" /></a-tag>
|
|
157
154
|
</a-tooltip>
|
|
@@ -228,14 +225,14 @@
|
|
|
228
225
|
</template>
|
|
229
226
|
<x-form-table
|
|
230
227
|
:queryParamsJson="result"
|
|
231
|
-
:view-mode="true"
|
|
232
|
-
:service-name="serviceName">
|
|
228
|
+
:view-mode="true">
|
|
233
229
|
</x-form-table>
|
|
234
230
|
</a-modal>
|
|
235
231
|
</a-drawer>
|
|
236
232
|
</template>
|
|
237
233
|
|
|
238
234
|
<script>
|
|
235
|
+
import XFormItem from '@vue2-client/base-client/components/common/XForm/XFormItem'
|
|
239
236
|
import XFormTable from '@vue2-client/base-client/components/common/XFormTable/XFormTable'
|
|
240
237
|
import JsonViewer from 'vue-json-viewer'
|
|
241
238
|
import FileSaver from 'file-saver'
|
|
@@ -247,7 +244,8 @@ export default {
|
|
|
247
244
|
components: {
|
|
248
245
|
CreateQueryItem,
|
|
249
246
|
JsonViewer,
|
|
250
|
-
XFormTable
|
|
247
|
+
XFormTable,
|
|
248
|
+
XFormItem
|
|
251
249
|
},
|
|
252
250
|
data () {
|
|
253
251
|
return {
|
|
@@ -268,6 +266,7 @@ export default {
|
|
|
268
266
|
labelCol: { span: 3 },
|
|
269
267
|
wrapperCol: { span: 18 },
|
|
270
268
|
form: {
|
|
269
|
+
serviceName: '',
|
|
271
270
|
tableName: '',
|
|
272
271
|
joinArray: {},
|
|
273
272
|
condition: {},
|
|
@@ -344,14 +343,6 @@ export default {
|
|
|
344
343
|
toEditJson: {
|
|
345
344
|
type: Object,
|
|
346
345
|
default: () => {}
|
|
347
|
-
},
|
|
348
|
-
saveExportJson: {
|
|
349
|
-
type: Boolean,
|
|
350
|
-
default: false
|
|
351
|
-
},
|
|
352
|
-
serviceName: {
|
|
353
|
-
type: String,
|
|
354
|
-
default: undefined
|
|
355
346
|
}
|
|
356
347
|
},
|
|
357
348
|
watch: {
|
|
@@ -389,8 +380,27 @@ export default {
|
|
|
389
380
|
}, this.toEditJson
|
|
390
381
|
)
|
|
391
382
|
for (const columnItem of this.form.column) {
|
|
383
|
+
// 数据模式兼容性处理
|
|
392
384
|
if (!(columnItem.dataMode || columnItem.dataModeArray)) {
|
|
393
385
|
columnItem.dataModeArray = ['queryForm', 'table', 'addOrEditForm', 'sqlQueryItem', 'sqlQueryCondition']
|
|
386
|
+
} else if (columnItem.dataMode) {
|
|
387
|
+
if (columnItem.dataMode === 'all') {
|
|
388
|
+
columnItem.dataModeArray = ['queryForm', 'table', 'addOrEditForm', 'sqlQueryItem', 'sqlQueryCondition']
|
|
389
|
+
} else if (columnItem.dataMode === 'form') {
|
|
390
|
+
columnItem.dataModeArray = ['queryForm', 'addOrEditForm', 'sqlQueryCondition']
|
|
391
|
+
} else if (columnItem.dataMode === 'table') {
|
|
392
|
+
columnItem.dataModeArray = ['table', 'sqlQueryItem']
|
|
393
|
+
} else if (columnItem.dataMode === 'table_form') {
|
|
394
|
+
columnItem.dataModeArray = ['table', 'sqlQueryItem', 'sqlQueryCondition']
|
|
395
|
+
} else if (columnItem.dataMode === 'only_form') {
|
|
396
|
+
columnItem.dataModeArray = ['queryForm']
|
|
397
|
+
} else if (columnItem.dataMode === 'only_table') {
|
|
398
|
+
columnItem.dataModeArray = ['table']
|
|
399
|
+
} else if (columnItem.dataMode === 'clear') {
|
|
400
|
+
columnItem.dataModeArray = ['sqlQueryItem', 'sqlQueryCondition']
|
|
401
|
+
} else if (columnItem.dataMode === 'only_add_modify') {
|
|
402
|
+
columnItem.dataModeArray = ['addOrEditForm', 'sqlQueryItem']
|
|
403
|
+
}
|
|
394
404
|
}
|
|
395
405
|
delete columnItem.dataMode
|
|
396
406
|
// 插槽兼容处理
|
|
@@ -474,7 +484,6 @@ export default {
|
|
|
474
484
|
this.result = {}
|
|
475
485
|
},
|
|
476
486
|
onClose () {
|
|
477
|
-
this.$emit('close')
|
|
478
487
|
this.$emit('update:visible', false)
|
|
479
488
|
},
|
|
480
489
|
onModelClose () {
|
|
@@ -493,7 +502,7 @@ export default {
|
|
|
493
502
|
},
|
|
494
503
|
itemHandle (item, type) {
|
|
495
504
|
this.itemMap[item.key] = item
|
|
496
|
-
if (
|
|
505
|
+
if (type === '新增') {
|
|
497
506
|
this.form.column.push(item)
|
|
498
507
|
} else {
|
|
499
508
|
this.$set(this.form.column, this.selectIndex, item)
|
|
@@ -509,7 +518,6 @@ export default {
|
|
|
509
518
|
this.$refs.queryItem.addColumnItemExecute()
|
|
510
519
|
},
|
|
511
520
|
editColumnItem (key, index) {
|
|
512
|
-
this.type = '修改'
|
|
513
521
|
if (this.itemMap[key]) {
|
|
514
522
|
this.$refs.queryItem.editColumnItemExecute(this.itemMap[key])
|
|
515
523
|
this.selectIndex = index
|
|
@@ -600,11 +608,8 @@ export default {
|
|
|
600
608
|
this.$refs.businessCreateForm.validate(valid => {
|
|
601
609
|
if (valid) {
|
|
602
610
|
this.viewHandle(() => {
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
} else {
|
|
606
|
-
this.$emit('saveQueryParams', this.result)
|
|
607
|
-
}
|
|
611
|
+
// saveQueryParams
|
|
612
|
+
this.exportJson()
|
|
608
613
|
})
|
|
609
614
|
}
|
|
610
615
|
})
|
|
@@ -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="8">
|
|
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="7">
|
|
325
325
|
<span style="font-weight: bold">
|
|
326
326
|
数据模式
|
|
327
327
|
</span>
|
|
@@ -388,13 +388,7 @@
|
|
|
388
388
|
</a-tooltip>
|
|
389
389
|
<a-tooltip>
|
|
390
390
|
<template slot="title">
|
|
391
|
-
|
|
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
|
-
数据组
|
|
391
|
+
字段JSON存储
|
|
398
392
|
</template>
|
|
399
393
|
<a-tag :color="columnItem.dataModeArray && columnItem.dataModeArray.includes('group') ? '#82A0D8' : 'rgba(0, 0, 0, 0.25)'"><a-icon type="crown" /></a-tag>
|
|
400
394
|
</a-tooltip>
|
|
@@ -434,12 +428,6 @@
|
|
|
434
428
|
show-icon
|
|
435
429
|
style="margin-top: 5px"
|
|
436
430
|
type="info"/>
|
|
437
|
-
<a-alert
|
|
438
|
-
v-if="item.title.length > 8"
|
|
439
|
-
message="提示:标签名称过长可能会影响表格列展示效果,建议不超过8个字符"
|
|
440
|
-
show-icon
|
|
441
|
-
style="margin-top: 5px"
|
|
442
|
-
type="warning"/>
|
|
443
431
|
</a-form-model>
|
|
444
432
|
<create-query-item ref="queryItem" @getColumn="getColumnItem" @itemHandle="itemHandleItem"/>
|
|
445
433
|
</a-modal>
|
|
@@ -483,7 +471,7 @@ export default {
|
|
|
483
471
|
},
|
|
484
472
|
// 字段名称是否禁用
|
|
485
473
|
keyDisabled () {
|
|
486
|
-
return this.item.formType === 'file' || this.item.formType === 'image'
|
|
474
|
+
return this.item.formType === 'file' || this.item.formType === 'image'
|
|
487
475
|
},
|
|
488
476
|
// 数据模式是否禁用
|
|
489
477
|
dataModeDisabled () {
|
|
@@ -495,10 +483,7 @@ export default {
|
|
|
495
483
|
table: false,
|
|
496
484
|
addOrEditForm: false,
|
|
497
485
|
sqlQueryItem: false,
|
|
498
|
-
sqlQueryCondition: false
|
|
499
|
-
excelImportItem: false,
|
|
500
|
-
group: false,
|
|
501
|
-
mixinTableName: false
|
|
486
|
+
sqlQueryCondition: false
|
|
502
487
|
}
|
|
503
488
|
for (const item of this.dataModeArrayData) {
|
|
504
489
|
result[item] = true
|
|
@@ -517,24 +502,10 @@ export default {
|
|
|
517
502
|
value: 'sqlQueryItem',
|
|
518
503
|
noMatch: ['file', 'personSetting']
|
|
519
504
|
}, {
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
noMatch: []
|
|
523
|
-
}]
|
|
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',
|
|
505
|
+
label: '字段组存储',
|
|
506
|
+
value: 'group',
|
|
535
507
|
noMatch: []
|
|
536
|
-
|
|
537
|
-
]
|
|
508
|
+
}]
|
|
538
509
|
}
|
|
539
510
|
if (this.item.formType) {
|
|
540
511
|
return dataModeType.filter(item => {
|
|
@@ -610,40 +581,8 @@ export default {
|
|
|
610
581
|
// 必填控制
|
|
611
582
|
itemRules: {
|
|
612
583
|
formType: [{ required: true, message: '请输入表单类型', trigger: 'change' }],
|
|
613
|
-
key: [{
|
|
614
|
-
|
|
615
|
-
validator: (rule, value, callback) => {
|
|
616
|
-
// 判断必填
|
|
617
|
-
if (!value) {
|
|
618
|
-
callback(new Error('请输入字段名称'))
|
|
619
|
-
} else {
|
|
620
|
-
// 判断必须全部小写 并且不能包含空格
|
|
621
|
-
if (value !== value.toLowerCase() || value.indexOf(' ') !== -1 && !value === '_mixinTableName_') {
|
|
622
|
-
callback(new Error('字段名称必须全部小写,且不能包含空格'))
|
|
623
|
-
} else {
|
|
624
|
-
callback()
|
|
625
|
-
}
|
|
626
|
-
}
|
|
627
|
-
},
|
|
628
|
-
trigger: 'blur'
|
|
629
|
-
}],
|
|
630
|
-
title: [{
|
|
631
|
-
required: true,
|
|
632
|
-
validator: (rule, value, callback) => {
|
|
633
|
-
// 判断必填
|
|
634
|
-
if (!value) {
|
|
635
|
-
callback(new Error('请输入标签名称'))
|
|
636
|
-
} else {
|
|
637
|
-
// // 大于8个字符给提示
|
|
638
|
-
// if (value.length > 8) {
|
|
639
|
-
// callback(new Error('标签名称过长,建议不超过8个字符,可能会影响展示效果'))
|
|
640
|
-
// } else {
|
|
641
|
-
callback()
|
|
642
|
-
// }
|
|
643
|
-
}
|
|
644
|
-
},
|
|
645
|
-
trigger: 'blur'
|
|
646
|
-
}],
|
|
584
|
+
key: [{ required: true, message: '请输入字段名称', trigger: 'blur' }],
|
|
585
|
+
title: [{ required: true, message: '请输入标签名称', trigger: 'blur' }],
|
|
647
586
|
selectType: [{ required: true, message: '请选择数据源类型', trigger: 'change' }],
|
|
648
587
|
selectKey: [{ required: true, message: '请输入数据源内容', trigger: 'blur' }],
|
|
649
588
|
'slot.value': [{ required: true, message: '请输入文本溢出上限长度', trigger: 'blur' }],
|
|
@@ -676,7 +615,6 @@ export default {
|
|
|
676
615
|
rule: {
|
|
677
616
|
required: 'false'
|
|
678
617
|
},
|
|
679
|
-
column: [],
|
|
680
618
|
selectKey: undefined,
|
|
681
619
|
queryType: '=',
|
|
682
620
|
formType: 'input',
|
|
@@ -704,7 +642,7 @@ export default {
|
|
|
704
642
|
// 编辑数据字段前准备数据
|
|
705
643
|
editColumnItemExecute (_item) {
|
|
706
644
|
this.type = '修改'
|
|
707
|
-
const defaultValue = { formType: 'input', type: 'string', addOrEdit: 'all', slot: { type: 'default' }, rule: {}, selectKey: {}
|
|
645
|
+
const defaultValue = { formType: 'input', type: 'string', addOrEdit: 'all', slot: { type: 'default' }, rule: {}, selectKey: {} }
|
|
708
646
|
if (!_item.queryType) {
|
|
709
647
|
defaultValue.queryType = '='
|
|
710
648
|
}
|
|
@@ -828,12 +766,6 @@ export default {
|
|
|
828
766
|
},
|
|
829
767
|
// 数据模式改变
|
|
830
768
|
dataModeArrayDataChange (newVal) {
|
|
831
|
-
if (newVal.includes('mixinTableName')) {
|
|
832
|
-
this.item.key = '_mixinTableName_'
|
|
833
|
-
this.dataModeArrayData = ['queryForm', 'mixinTableName']
|
|
834
|
-
} else if (this.item.key === '_mixinTableName_') {
|
|
835
|
-
this.item.key = ''
|
|
836
|
-
}
|
|
837
769
|
if (newVal.includes('group')) {
|
|
838
770
|
this.dataModeArrayData = ['sqlQueryItem', 'group']
|
|
839
771
|
}
|
|
@@ -983,7 +915,7 @@ export default {
|
|
|
983
915
|
},
|
|
984
916
|
itemHandleItem (item, type) {
|
|
985
917
|
this.itemMap[item.key] = item
|
|
986
|
-
if (
|
|
918
|
+
if (type === '新增') {
|
|
987
919
|
this.item.column.push(item)
|
|
988
920
|
} else {
|
|
989
921
|
this.$set(this.item.column, this.selectIndex, item)
|