tianheng-ui 0.1.11 → 0.1.14
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/theme-chalk/js/axios.js +3 -2
- package/lib/theme-chalk/js/util.js +23 -0
- package/lib/theme-chalk/styles/feature.scss +15 -0
- package/lib/tianheng-ui.js +13 -14
- package/package.json +1 -1
- package/packages/FormMaking/GenerateForm.vue +6 -1
- package/packages/FormMaking/GenerateFormItem.vue +9 -5
- package/packages/FormMaking/GenerateFormItemH5.vue +1 -1
- package/packages/FormMaking/WidgetConfig.vue +39 -51
- package/packages/FormMaking/WidgetForm.vue +9 -10
- package/packages/FormMaking/WidgetFormItem.vue +2 -2
- package/packages/FormMaking/WidgetSelect.vue +0 -1
- package/packages/FormMaking/WidgetTools.vue +539 -0
- package/packages/FormMaking/config/index.js +6 -0
- package/packages/FormMaking/custom/config.js +21 -24
- package/packages/FormMaking/custom/configs/button.vue +25 -25
- package/packages/FormMaking/custom/configs/cascader.vue +7 -7
- package/packages/FormMaking/custom/configs/checkbox.vue +23 -22
- package/packages/FormMaking/custom/configs/color.vue +3 -3
- package/packages/FormMaking/custom/configs/date.vue +3 -3
- package/packages/FormMaking/custom/configs/input.vue +3 -3
- package/packages/FormMaking/custom/configs/number.vue +3 -3
- package/packages/FormMaking/custom/configs/radio.vue +23 -19
- package/packages/FormMaking/custom/configs/rate.vue +3 -3
- package/packages/FormMaking/custom/configs/select.vue +25 -20
- package/packages/FormMaking/custom/configs/slider.vue +3 -3
- package/packages/FormMaking/custom/configs/switch.vue +3 -3
- package/packages/FormMaking/custom/configs/tabs.vue +12 -17
- package/packages/FormMaking/custom/configs/textarea.vue +3 -3
- package/packages/FormMaking/custom/configs/time.vue +3 -3
- package/packages/FormMaking/custom/configs/upload.vue +5 -5
- package/packages/FormMaking/custom/items/button.vue +35 -1
- package/packages/FormMaking/custom/items/checkbox.vue +1 -1
- package/packages/FormMaking/custom/items/date.vue +1 -0
- package/packages/FormMaking/custom/items/grid_dev.vue +3 -3
- package/packages/FormMaking/custom/items/tableH5_dev.vue +3 -3
- package/packages/FormMaking/custom/items/table_dev.vue +3 -3
- package/packages/FormMaking/custom/items/tabs_dev.vue +3 -3
- package/packages/FormMaking/custom/mixins/index.js +12 -12
- package/packages/FormMaking/index.vue +93 -469
- package/packages/FormMaking/styles/index.scss +1 -21
- package/packages/FormMaking/util/index.js +24 -0
- package/packages/FormMaking/util/request.js +9 -12
- package/packages/TableMaking/WidgetTools.vue +246 -0
- package/packages/TableMaking/custom/config.js +110 -0
- package/packages/TableMaking/generateTable.vue +2 -2
- package/packages/TableMaking/index.vue +62 -157
- package/packages/TableMaking/util/index.js +54 -1
- package/packages/TableMaking/widgetConfig.vue +261 -178
- package/packages/TableMaking/widgetTable.vue +16 -46
- package/packages/index.js +5 -4
@@ -64,14 +64,14 @@
|
|
64
64
|
<el-select
|
65
65
|
style="width:100%"
|
66
66
|
v-model="widget.options.remoteFunc"
|
67
|
-
value-key="
|
67
|
+
value-key="id"
|
68
68
|
placeholder="请选择远端方法"
|
69
69
|
clearable
|
70
70
|
>
|
71
71
|
<el-option
|
72
|
-
v-for="item in
|
73
|
-
:key="item.
|
74
|
-
:label="item.
|
72
|
+
v-for="item in config.remoteFuncs"
|
73
|
+
:key="item.id"
|
74
|
+
:label="item.label"
|
75
75
|
:value="item"
|
76
76
|
>
|
77
77
|
</el-option>
|
@@ -137,9 +137,9 @@
|
|
137
137
|
>
|
138
138
|
<el-option
|
139
139
|
v-for="item in config.eventScript"
|
140
|
-
:key="item.
|
141
|
-
:label="item.
|
142
|
-
:value="item.
|
140
|
+
:key="item.id"
|
141
|
+
:label="item.label"
|
142
|
+
:value="item.id"
|
143
143
|
>
|
144
144
|
</el-option>
|
145
145
|
</el-select>
|
@@ -43,40 +43,35 @@
|
|
43
43
|
</div>
|
44
44
|
<div style="display: flex;">
|
45
45
|
<div style="flex:1;">最大勾选:</div>
|
46
|
-
<el-input-number
|
47
|
-
v-model="widget.options.max"
|
48
|
-
:min="widget.options.min || 1"
|
49
|
-
>
|
46
|
+
<el-input-number v-model="widget.options.max" :min="0">
|
50
47
|
</el-input-number>
|
51
48
|
</div>
|
52
49
|
</el-form-item>
|
53
50
|
|
54
51
|
<el-form-item label="选项">
|
55
|
-
<div
|
56
|
-
|
57
|
-
|
58
|
-
|
52
|
+
<div class="config-header" slot="label">
|
53
|
+
<span class="title">选项</span>
|
54
|
+
<el-radio-group
|
55
|
+
class="value"
|
56
|
+
v-model="widget.options.remote"
|
57
|
+
size="mini"
|
58
|
+
>
|
59
59
|
<el-radio-button :label="false">静态数据</el-radio-button>
|
60
60
|
<el-radio-button :label="true">远端数据</el-radio-button>
|
61
61
|
</el-radio-group>
|
62
|
-
|
63
|
-
<div v-if="!widget.options.remote">
|
64
|
-
<span>显示标签</span>
|
65
|
-
<el-switch v-model="widget.options.showLabel"> </el-switch>
|
66
|
-
</div>
|
67
62
|
</div>
|
68
63
|
<template v-if="widget.options.remote">
|
69
64
|
<el-select
|
70
65
|
style="width:100%"
|
71
66
|
v-model="widget.options.remoteFunc"
|
72
|
-
value-key="
|
67
|
+
:value-key="config.remoteFuncs.props.key"
|
73
68
|
placeholder="请选择远端方法"
|
74
69
|
clearable
|
75
70
|
>
|
76
71
|
<el-option
|
77
|
-
v-for="item in
|
78
|
-
:key="item.
|
79
|
-
:label="item.
|
72
|
+
v-for="item in config.remoteFuncs.options"
|
73
|
+
:key="item[config.remoteFuncs.props.key]"
|
74
|
+
:label="item[config.remoteFuncs.props.label]"
|
80
75
|
:value="item"
|
81
76
|
>
|
82
77
|
</el-option>
|
@@ -93,6 +88,12 @@
|
|
93
88
|
</el-input>
|
94
89
|
</template>
|
95
90
|
<template v-else>
|
91
|
+
<el-switch
|
92
|
+
v-model="widget.options.showLabel"
|
93
|
+
active-text="显示标签"
|
94
|
+
inactive-text="隐藏标签"
|
95
|
+
>
|
96
|
+
</el-switch>
|
96
97
|
<el-checkbox-group v-model="widget.options.defaultValue">
|
97
98
|
<draggable
|
98
99
|
tag="ul"
|
@@ -188,9 +189,9 @@
|
|
188
189
|
>
|
189
190
|
<el-option
|
190
191
|
v-for="item in config.eventScript"
|
191
|
-
:key="item.
|
192
|
-
:label="item.
|
193
|
-
:value="item.
|
192
|
+
:key="item.id"
|
193
|
+
:label="item.label"
|
194
|
+
:value="item.id"
|
194
195
|
>
|
195
196
|
</el-option>
|
196
197
|
</el-select>
|
@@ -220,8 +221,8 @@ export default {
|
|
220
221
|
methods: {
|
221
222
|
handleAddOption() {
|
222
223
|
this.widget.options.options.push({
|
223
|
-
value:
|
224
|
-
label:
|
224
|
+
value: `选值 ${this.widget.options.options.length + 1}`,
|
225
|
+
label: `选项 ${this.widget.options.options.length + 1}`
|
225
226
|
});
|
226
227
|
},
|
227
228
|
handleOptionsRemove(index) {
|
@@ -35,33 +35,31 @@
|
|
35
35
|
</el-radio-group>
|
36
36
|
</el-form-item>
|
37
37
|
|
38
|
-
<el-form-item
|
39
|
-
<div
|
40
|
-
|
41
|
-
|
42
|
-
|
38
|
+
<el-form-item>
|
39
|
+
<div class="config-header" slot="label">
|
40
|
+
<span class="title">选项</span>
|
41
|
+
<el-radio-group
|
42
|
+
class="value"
|
43
|
+
v-model="widget.options.remote"
|
44
|
+
size="mini"
|
45
|
+
>
|
43
46
|
<el-radio-button :label="false">静态数据</el-radio-button>
|
44
47
|
<el-radio-button :label="true">远端数据</el-radio-button>
|
45
48
|
</el-radio-group>
|
46
|
-
|
47
|
-
<div v-if="!widget.options.remote">
|
48
|
-
<span>显示标签</span>
|
49
|
-
<el-switch v-model="widget.options.showLabel"> </el-switch>
|
50
|
-
</div>
|
51
49
|
</div>
|
52
50
|
|
53
51
|
<template v-if="widget.options.remote">
|
54
52
|
<el-select
|
55
53
|
style="width:100%"
|
56
54
|
v-model="widget.options.remoteFunc"
|
57
|
-
value-key="
|
55
|
+
:value-key="config.remoteFuncs.props.key"
|
58
56
|
placeholder="请选择远端方法"
|
59
57
|
clearable
|
60
58
|
>
|
61
59
|
<el-option
|
62
|
-
v-for="item in
|
63
|
-
:key="item.
|
64
|
-
:label="item.
|
60
|
+
v-for="item in config.remoteFuncs.options"
|
61
|
+
:key="item[config.remoteFuncs.props.key]"
|
62
|
+
:label="item[config.remoteFuncs.props.label]"
|
65
63
|
:value="item"
|
66
64
|
>
|
67
65
|
</el-option>
|
@@ -78,6 +76,12 @@
|
|
78
76
|
</el-input>
|
79
77
|
</template>
|
80
78
|
<template v-else>
|
79
|
+
<el-switch
|
80
|
+
v-model="widget.options.showLabel"
|
81
|
+
active-text="显示标签"
|
82
|
+
inactive-text="隐藏标签"
|
83
|
+
>
|
84
|
+
</el-switch>
|
81
85
|
<el-radio-group v-model="widget.options.defaultValue">
|
82
86
|
<draggable
|
83
87
|
tag="ul"
|
@@ -165,9 +169,9 @@
|
|
165
169
|
>
|
166
170
|
<el-option
|
167
171
|
v-for="item in config.eventScript"
|
168
|
-
:key="item.
|
169
|
-
:label="item.
|
170
|
-
:value="item.
|
172
|
+
:key="item.id"
|
173
|
+
:label="item.label"
|
174
|
+
:value="item.id"
|
171
175
|
>
|
172
176
|
</el-option>
|
173
177
|
</el-select>
|
@@ -197,8 +201,8 @@ export default {
|
|
197
201
|
methods: {
|
198
202
|
handleAddOption() {
|
199
203
|
this.widget.options.options.push({
|
200
|
-
value:
|
201
|
-
label:
|
204
|
+
value: `选值 ${this.widget.options.options.length + 1}`,
|
205
|
+
label: `选项 ${this.widget.options.options.length + 1}`
|
202
206
|
});
|
203
207
|
},
|
204
208
|
handleOptionsRemove(index) {
|
@@ -33,31 +33,29 @@
|
|
33
33
|
</el-form-item>
|
34
34
|
|
35
35
|
<el-form-item label="选项">
|
36
|
-
<div
|
37
|
-
|
38
|
-
|
39
|
-
|
36
|
+
<div class="config-header" slot="label">
|
37
|
+
<span class="title">选项</span>
|
38
|
+
<el-radio-group
|
39
|
+
class="value"
|
40
|
+
v-model="widget.options.remote"
|
41
|
+
size="mini"
|
42
|
+
>
|
40
43
|
<el-radio-button :label="false">静态数据</el-radio-button>
|
41
44
|
<el-radio-button :label="true">远端数据</el-radio-button>
|
42
45
|
</el-radio-group>
|
43
|
-
|
44
|
-
<div v-if="!widget.options.remote">
|
45
|
-
<span>显示标签</span>
|
46
|
-
<el-switch v-model="widget.options.showLabel"> </el-switch>
|
47
|
-
</div>
|
48
46
|
</div>
|
49
47
|
<template v-if="widget.options.remote">
|
50
48
|
<el-select
|
51
49
|
style="width:100%"
|
52
50
|
v-model="widget.options.remoteFunc"
|
53
|
-
value-key="
|
51
|
+
value-key="id"
|
54
52
|
placeholder="请选择远端方法"
|
55
53
|
clearable
|
56
54
|
>
|
57
55
|
<el-option
|
58
|
-
v-for="item in
|
59
|
-
:key="item.
|
60
|
-
:label="item.
|
56
|
+
v-for="item in config.remoteFuncs"
|
57
|
+
:key="item.id"
|
58
|
+
:label="item.label"
|
61
59
|
:value="item"
|
62
60
|
>
|
63
61
|
</el-option>
|
@@ -74,6 +72,12 @@
|
|
74
72
|
</el-input>
|
75
73
|
</template>
|
76
74
|
<template v-else>
|
75
|
+
<el-switch
|
76
|
+
v-model="widget.options.showLabel"
|
77
|
+
active-text="显示标签"
|
78
|
+
inactive-text="隐藏标签"
|
79
|
+
>
|
80
|
+
</el-switch>
|
77
81
|
<template v-if="widget.options.multiple">
|
78
82
|
<el-checkbox-group v-model="widget.options.defaultValue">
|
79
83
|
<draggable
|
@@ -92,18 +96,19 @@
|
|
92
96
|
>
|
93
97
|
<el-checkbox :label="item.value" style="margin-right: 5px;">
|
94
98
|
<el-input
|
99
|
+
v-model="item.value"
|
95
100
|
:style="{
|
96
101
|
width: widget.options.showLabel ? '90px' : '180px'
|
97
102
|
}"
|
98
|
-
v-model="item.value"
|
99
103
|
:disabled="
|
100
104
|
widget.options.defaultValue.indexOf(item.value) !== -1
|
101
105
|
"
|
102
106
|
></el-input>
|
103
107
|
<el-input
|
104
|
-
v-
|
108
|
+
v-show="widget.options.showLabel"
|
105
109
|
style="width:90px;"
|
106
110
|
v-model="item.label"
|
111
|
+
placeholder="标签"
|
107
112
|
>
|
108
113
|
</el-input>
|
109
114
|
</el-checkbox>
|
@@ -244,9 +249,9 @@
|
|
244
249
|
>
|
245
250
|
<el-option
|
246
251
|
v-for="item in config.eventScript"
|
247
|
-
:key="item.
|
248
|
-
:label="item.
|
249
|
-
:value="item.
|
252
|
+
:key="item.id"
|
253
|
+
:label="item.label"
|
254
|
+
:value="item.id"
|
250
255
|
>
|
251
256
|
</el-option>
|
252
257
|
</el-select>
|
@@ -291,8 +296,8 @@ export default {
|
|
291
296
|
},
|
292
297
|
handleAddOption() {
|
293
298
|
this.widget.options.options.push({
|
294
|
-
value:
|
295
|
-
label:
|
299
|
+
value: `选值 ${this.widget.options.options.length + 1}`,
|
300
|
+
label: `选项 ${this.widget.options.options.length + 1}`
|
296
301
|
});
|
297
302
|
},
|
298
303
|
handleOptionsRemove(index) {
|
@@ -46,38 +46,33 @@
|
|
46
46
|
<el-form-item label="选项">
|
47
47
|
<el-radio-group
|
48
48
|
v-model="widget.options.remote"
|
49
|
-
size="mini"
|
50
49
|
style="margin-bottom:10px;"
|
50
|
+
size="mini"
|
51
51
|
>
|
52
52
|
<el-radio-button :label="false">静态数据</el-radio-button>
|
53
|
-
<el-radio-button :label="true">远端数据</el-radio-button>
|
53
|
+
<el-radio-button :label="true" disabled>远端数据</el-radio-button>
|
54
54
|
</el-radio-group>
|
55
55
|
<div v-if="widget.options.remote">
|
56
56
|
<el-select
|
57
|
+
v-model="widget.options.remoteFunc"
|
57
58
|
class="remoteApis"
|
58
59
|
size="mini"
|
59
|
-
v-model="widget.options.remoteFunc"
|
60
60
|
placeholder="请选择远端方法"
|
61
61
|
>
|
62
62
|
<template slot="prefix">
|
63
63
|
<div style="width:70px;">接口名</div>
|
64
64
|
</template>
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
:
|
65
|
+
|
66
|
+
<el-option
|
67
|
+
v-for="item in config.remoteFuncs.options"
|
68
|
+
:key="item[config.remoteFuncs.props.key]"
|
69
|
+
:label="item[config.remoteFuncs.props.label]"
|
70
|
+
:value="item"
|
69
71
|
>
|
70
|
-
|
71
|
-
v-for="item in group.options"
|
72
|
-
:key="item.value"
|
73
|
-
:label="item.label"
|
74
|
-
:value="item.value"
|
75
|
-
>
|
76
|
-
</el-option>
|
77
|
-
</el-option-group>
|
72
|
+
</el-option>
|
78
73
|
</el-select>
|
79
74
|
|
80
|
-
<el-input size="mini" style="" v-model="widget.options.props.value">
|
75
|
+
<!-- <el-input size="mini" style="" v-model="widget.options.props.value">
|
81
76
|
<template slot="prepend">
|
82
77
|
<div style="width:30px;">值</div>
|
83
78
|
</template>
|
@@ -86,7 +81,7 @@
|
|
86
81
|
<template slot="prepend">
|
87
82
|
<div style="width:30px;">标签</div>
|
88
83
|
</template>
|
89
|
-
</el-input>
|
84
|
+
</el-input> -->
|
90
85
|
</div>
|
91
86
|
<template v-else>
|
92
87
|
<el-radio-group v-model="widget.options.defaultValue">
|
@@ -71,15 +71,15 @@
|
|
71
71
|
</el-radio-group>
|
72
72
|
<el-select
|
73
73
|
v-if="widget.options.remote"
|
74
|
-
style="width:100%"
|
75
74
|
v-model="widget.options.remoteFunc"
|
76
|
-
|
75
|
+
style="width:100%"
|
76
|
+
:value-key="config.remoteFuncs.props.key"
|
77
77
|
placeholder="请选择远端方法"
|
78
78
|
>
|
79
79
|
<el-option
|
80
|
-
v-for="item in
|
81
|
-
:key="item.
|
82
|
-
:label="item.
|
80
|
+
v-for="item in config.remoteFuncs.options"
|
81
|
+
:key="item[config.remoteFuncs.props.key]"
|
82
|
+
:label="item[config.remoteFuncs.props.label]"
|
83
83
|
:value="item"
|
84
84
|
>
|
85
85
|
</el-option>
|
@@ -20,8 +20,42 @@
|
|
20
20
|
|
21
21
|
<script>
|
22
22
|
import { itemsComponent } from "../mixins/index";
|
23
|
+
import * as Axios from "lib/theme-chalk/js/axios";
|
23
24
|
export default {
|
24
|
-
mixins: [itemsComponent]
|
25
|
+
mixins: [itemsComponent],
|
26
|
+
data() {
|
27
|
+
return {
|
28
|
+
axios: null
|
29
|
+
};
|
30
|
+
},
|
31
|
+
created() {
|
32
|
+
const oauthConfig = localStorage.getItem("TH_OauthConfig") || "{}";
|
33
|
+
this.axios = Axios.init(JSON.parse(oauthConfig));
|
34
|
+
},
|
35
|
+
methods: {
|
36
|
+
hendleRemoteData() {
|
37
|
+
const remoteFunc = this.widget.options.remoteFunc;
|
38
|
+
const requestConfig = {
|
39
|
+
url: `/lc/api${remoteFunc.url}`,
|
40
|
+
method: remoteFunc.method,
|
41
|
+
headers: remoteFunc.headers
|
42
|
+
};
|
43
|
+
let params = { ...remoteFunc.params };
|
44
|
+
if (remoteFunc.needPage) {
|
45
|
+
params.pageNum = 1;
|
46
|
+
params.pageSize = 20;
|
47
|
+
}
|
48
|
+
if (remoteFunc.method.toLowerCase() === "get") {
|
49
|
+
requestConfig.params = params;
|
50
|
+
} else {
|
51
|
+
params = Object.assign(params, this.models);
|
52
|
+
requestConfig.data = params;
|
53
|
+
}
|
54
|
+
this.axios(requestConfig).then(res => {
|
55
|
+
this.$emit("button-submit", requestConfig);
|
56
|
+
});
|
57
|
+
}
|
58
|
+
}
|
25
59
|
};
|
26
60
|
</script>
|
27
61
|
|
@@ -4,7 +4,7 @@
|
|
4
4
|
:style="{ width: widget.options.width }"
|
5
5
|
:disabled="widget.options.disabled"
|
6
6
|
:min="widget.options.min"
|
7
|
-
:max="widget.options.max"
|
7
|
+
:max="widget.options.max || 99999"
|
8
8
|
@change="handleEventAction(widget.events.onChange)"
|
9
9
|
>
|
10
10
|
<template v-if="widget.options.buttonType">
|
@@ -12,6 +12,7 @@
|
|
12
12
|
:editable="widget.options.editable"
|
13
13
|
:clearable="widget.options.clearable"
|
14
14
|
:value-format="widget.options.format"
|
15
|
+
:format="widget.options.format"
|
15
16
|
@change="handleEventAction(widget.events.onChange)"
|
16
17
|
@focus="handleEventAction(widget.events.onFocus)"
|
17
18
|
@blur="handleEventAction(widget.events.onBlur)"
|
@@ -83,9 +83,9 @@ export default {
|
|
83
83
|
return false;
|
84
84
|
}
|
85
85
|
|
86
|
-
|
87
|
-
|
88
|
-
|
86
|
+
if (!newComponent.key) {
|
87
|
+
const key =
|
88
|
+
Date.parse(new Date()) + "_" + Math.ceil(Math.random() * 99999);
|
89
89
|
newComponent.key = key;
|
90
90
|
newComponent.model = `${newComponent.type}_${key}`;
|
91
91
|
}
|
@@ -83,9 +83,9 @@ export default {
|
|
83
83
|
return false;
|
84
84
|
}
|
85
85
|
|
86
|
-
|
87
|
-
|
88
|
-
|
86
|
+
if (!newComponent.key) {
|
87
|
+
const key =
|
88
|
+
Date.parse(new Date()) + "_" + Math.ceil(Math.random() * 99999);
|
89
89
|
newComponent.key = key;
|
90
90
|
newComponent.model = `${newComponent.type}_${key}`;
|
91
91
|
}
|
@@ -70,9 +70,9 @@ export default {
|
|
70
70
|
return false;
|
71
71
|
}
|
72
72
|
|
73
|
-
|
74
|
-
|
75
|
-
|
73
|
+
if (!newComponent.key) {
|
74
|
+
const key =
|
75
|
+
Date.parse(new Date()) + "_" + Math.ceil(Math.random() * 99999);
|
76
76
|
newComponent.key = key;
|
77
77
|
newComponent.model = `${newComponent.type}_${key}`;
|
78
78
|
}
|
@@ -84,9 +84,9 @@ export default {
|
|
84
84
|
return false;
|
85
85
|
}
|
86
86
|
|
87
|
-
|
88
|
-
|
89
|
-
|
87
|
+
if (!newComponent.key) {
|
88
|
+
const key =
|
89
|
+
Date.parse(new Date()) + "_" + Math.ceil(Math.random() * 99999);
|
90
90
|
newComponent.key = key;
|
91
91
|
newComponent.model = `${newComponent.type}_${key}`;
|
92
92
|
}
|