tianheng-ui 0.1.38 → 0.1.40

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.
@@ -12,40 +12,43 @@
12
12
  </div>
13
13
  </div>
14
14
  <div v-if="activeTab.value === 'field'" class="configItem fieldsView">
15
- <el-collapse v-model="collapseValue">
16
- <el-collapse-item title="查询字段" name="group-fields_search">
17
- <el-checkbox
18
- v-model="searchField.isCheckAll"
19
- :indeterminate="searchField.isIndeterminate"
20
- @change="val => handleCheckAllChange(val, 'searchField')"
21
- >全选</el-checkbox
22
- >
23
- <el-checkbox
24
- v-for="item in fields"
25
- :label="item.prop"
26
- :key="`searchField-${item.prop}-${item.isSearch}`"
27
- :checked="item.isSearch"
28
- @change="val => handleCheckboxChange(val, 'searchField', item)"
29
- >{{ item.label }}</el-checkbox
30
- >
31
- </el-collapse-item>
32
- <el-collapse-item title="列表字段" name="group-fields_list">
33
- <el-checkbox
34
- v-model="tableField.isCheckAll"
35
- :indeterminate="tableField.isIndeterminate"
36
- @change="val => handleCheckAllChange(val, 'tableField')"
37
- >全选</el-checkbox
38
- >
39
- <el-checkbox
40
- v-for="item in fields"
41
- :label="item.prop"
42
- :key="`tableField-${item.prop}-${item.isTable}`"
43
- :checked="item.isTable"
44
- @change="val => handleCheckboxChange(val, 'tableField', item)"
45
- >{{ item.label }}</el-checkbox
46
- >
47
- </el-collapse-item>
48
- </el-collapse>
15
+ <template v-if="fields.length">
16
+ <el-collapse v-model="collapseValue">
17
+ <el-collapse-item title="查询字段" name="group-fields_search">
18
+ <el-checkbox
19
+ v-model="searchField.isCheckAll"
20
+ :indeterminate="searchField.isIndeterminate"
21
+ @change="val => handleCheckAllChange(val, 'searchField')"
22
+ >全选</el-checkbox
23
+ >
24
+ <el-checkbox
25
+ v-for="item in fields"
26
+ :label="item.prop"
27
+ :key="`searchField-${item.prop}-${item.isSearch}`"
28
+ :checked="item.isSearch"
29
+ @change="val => handleCheckboxChange(val, 'searchField', item)"
30
+ >{{ item.label }}</el-checkbox
31
+ >
32
+ </el-collapse-item>
33
+ <el-collapse-item title="列表字段" name="group-fields_table">
34
+ <el-checkbox
35
+ v-model="tableField.isCheckAll"
36
+ :indeterminate="tableField.isIndeterminate"
37
+ @change="val => handleCheckAllChange(val, 'tableField')"
38
+ >全选</el-checkbox
39
+ >
40
+ <el-checkbox
41
+ v-for="item in fields"
42
+ :label="item.prop"
43
+ :key="`tableField-${item.prop}-${item.isTable}`"
44
+ :checked="item.isTable"
45
+ @change="val => handleCheckboxChange(val, 'tableField', item)"
46
+ >{{ item.label }}</el-checkbox
47
+ >
48
+ </el-collapse-item>
49
+ </el-collapse>
50
+ </template>
51
+ <th-empty v-else description="请选择列表接口"></th-empty>
49
52
  </div>
50
53
  <div v-if="activeTab.value === 'table' && config.table" class="configItem">
51
54
  <el-form
@@ -112,7 +115,7 @@
112
115
  <el-switch v-model="config.search.show"> </el-switch>
113
116
  </el-form-item>
114
117
  </el-collapse-item>
115
- <el-collapse-item title="排序配置" name="group-sort">
118
+ <el-collapse-item title="排序配置" name="group-table_sort">
116
119
  <el-form-item label="排序类型">
117
120
  <el-radio-group v-model="config.table.sort.type">
118
121
  <el-radio-button label="1">降序</el-radio-button>
@@ -135,7 +138,7 @@
135
138
  </el-select>
136
139
  </el-form-item>
137
140
  </el-collapse-item>
138
- <el-collapse-item title="分页配置" name="group-pageInfo">
141
+ <el-collapse-item title="分页配置" name="group-table_pageInfo">
139
142
  <el-form-item label="开启分页">
140
143
  <el-switch v-model="config.table.pageInfo.show"> </el-switch>
141
144
  </el-form-item>
@@ -207,7 +210,7 @@
207
210
  </el-form-item>
208
211
  </template>
209
212
  </el-collapse-item>
210
- <el-collapse-item title="提示语配置" name="group-hint">
213
+ <el-collapse-item title="提示语配置" name="group-table_hint">
211
214
  <el-form-item label="空数据">
212
215
  <el-input
213
216
  v-model="config.table.empty.text"
@@ -221,9 +224,9 @@
221
224
  ></el-input>
222
225
  </el-form-item>
223
226
  </el-collapse-item>
224
- <!-- <el-collapse-item title="数据接口配置" name="group-network">
227
+ <!-- <el-collapse-item title="数据接口配置" name="group-table_network">
225
228
  </el-collapse-item> -->
226
- <el-collapse-item name="group-button">
229
+ <el-collapse-item name="group-table_button">
227
230
  <template slot="title">
228
231
  <div class="collapse-title">
229
232
  <div>按钮配置</div>
@@ -475,17 +478,39 @@
475
478
  :modal-append-to-body="false"
476
479
  :showFooter="false"
477
480
  >
478
- <div class="toolsSeting th-flex_box">
479
- <el-card class="th-flex_aside" style="width:200px;margin-right:10px;">
480
- <el-tree
481
- :data="Object.values(config.tools || [])"
482
- :props="{ label: 'name' }"
483
- node-key="name"
484
- @node-click="handleActionConfig"
485
- ></el-tree>
486
- </el-card>
487
- <el-card v-if="dialog.data" class="th-fiex_content">
481
+ <div class="eventsSetting th-flex_box th-is_border">
482
+ <div class="list th-flex_aside">
483
+ <div class="events-header th-sticky_top">
484
+ <div>按钮库</div>
485
+ <!-- <el-button type="text" icon="el-icon-plus" size="mini" disabled
486
+ >添加</el-button
487
+ > -->
488
+ </div>
489
+ <div
490
+ v-for="(item, index) in Object.values(config.tools || [])"
491
+ class="list-item th-is_hover"
492
+ :class="{
493
+ 'th-is_active': dialog.data && dialog.data.name === item.name
494
+ }"
495
+ :key="item.key"
496
+ @click="dialog.data = item"
497
+ >
498
+ <div class="list-item-value">{{ item.name }}</div>
499
+ <!-- <el-popconfirm
500
+ :title="`是否确定删除方法 ${item.name}`"
501
+ confirm-button-text="删除"
502
+ confirm-button-type="danger"
503
+ @confirm="handleEventDialogDelete(item, index)"
504
+ >
505
+ <i class="el-icon-delete" slot="reference"></i>
506
+ </el-popconfirm> -->
507
+ </div>
508
+ </div>
509
+ <div class="detail th-fiex_content">
510
+ <div class="events-header th-sticky_top">按钮详情</div>
488
511
  <el-form
512
+ v-if="dialog.data"
513
+ class="detail-form"
489
514
  ref="form"
490
515
  :model="dialog.data"
491
516
  label-width="80px"
@@ -587,7 +612,7 @@
587
612
  </el-select>
588
613
  </el-form-item>
589
614
  </el-form>
590
- </el-card>
615
+ </div>
591
616
  </div>
592
617
  </th-dialog>
593
618
  </div>
@@ -626,12 +651,14 @@ export default {
626
651
  isIndeterminate: false
627
652
  },
628
653
  collapseValue: [
654
+ "group-fields_search",
655
+ "group-fields_table",
629
656
  "group-table",
630
- "group-pageInfo",
631
- "group-sort",
632
- "group-hint",
633
- "group-network",
634
- "group-button"
657
+ "group-table_pageInfo",
658
+ "group-table_sort",
659
+ "group-table_hint",
660
+ "group-table_network",
661
+ "group-table_button"
635
662
  ],
636
663
  pageInfoLayout: [
637
664
  { label: "总条数", value: "total" },
@@ -865,6 +892,54 @@ export default {
865
892
  }
866
893
  }
867
894
  }
895
+
896
+ .eventsSetting {
897
+ height: 100%;
898
+
899
+ .events-header {
900
+ display: flex;
901
+ align-items: center;
902
+ justify-content: space-between;
903
+ padding: 0 10px;
904
+ height: 40px;
905
+ background-color: #f2f6fc;
906
+ z-index: 10;
907
+ }
908
+
909
+ .list {
910
+ width: 200px;
911
+ min-height: 430px;
912
+ overflow-y: overlay;
913
+ border-right: 1px solid #eee;
914
+
915
+ .list-item {
916
+ display: flex;
917
+ // align-items: center;
918
+ margin: 5px;
919
+ padding: 10px;
920
+ border-radius: 3px;
921
+ border: 1px solid #dcdfe6;
922
+ transition: 0.25s;
923
+
924
+ .list-item-title {
925
+ color: var(--th-green);
926
+ }
927
+ .list-item-value {
928
+ flex: 1;
929
+ padding: 0 5px;
930
+ }
931
+ i {
932
+ cursor: pointer;
933
+ }
934
+ }
935
+ }
936
+
937
+ .detail {
938
+ .detail-form {
939
+ padding: 10px;
940
+ }
941
+ }
942
+ }
868
943
  }
869
944
  </style>
870
945
 
@@ -79,7 +79,7 @@
79
79
  <div v-else class="search-content"></div>
80
80
  </div>
81
81
  <div class="table-title">列表字段</div>
82
- <div class="tableList" style="height: calc(100% - 340px);">
82
+ <div class="tableList" style="height: calc(100% - 350px);">
83
83
  <div class="table-item table-header">
84
84
  <div class="table-item-custom">拖动</div>
85
85
  <div>列名</div>
@@ -219,9 +219,11 @@ export default {
219
219
 
220
220
  <style lang="scss" scoped>
221
221
  .widgetTable {
222
- height: 100%;
222
+ height: calc(100% - 45px);
223
223
  padding: 10px;
224
224
  background-color: white;
225
+ overflow-y: overlay;
226
+
225
227
  .table-title {
226
228
  height: 25px;
227
229
  line-height: 25px;
@@ -1,190 +0,0 @@
1
- <template>
2
- <div class="form-config">
3
- <el-form
4
- :model="config"
5
- label-position="left"
6
- label-width="80px"
7
- size="small"
8
- :rules="formRules"
9
- ref="formRef"
10
- >
11
- <el-collapse v-model="collapseValue">
12
- <el-collapse-item title="表单配置" name="group-form">
13
- <el-form-item prop="fieldsType" required>
14
- <el-tooltip
15
- slot="label"
16
- effect="light"
17
- content="字段的配置方式"
18
- placement="top"
19
- >
20
- <span style="color: #409EFF;">字段类型</span>
21
- </el-tooltip>
22
- <el-radio-group v-model="config.fieldsType">
23
- <el-radio-button label="custom">自定义</el-radio-button>
24
- <el-radio-button label="fieldsApi">接口导入</el-radio-button>
25
- </el-radio-group>
26
- </el-form-item>
27
- <el-form-item
28
- v-if="config.fieldsType === 'fieldsApi'"
29
- prop="fieldsApi"
30
- required
31
- >
32
- <el-tooltip
33
- slot="label"
34
- effect="light"
35
- content="使用接口的出参配置可选字段"
36
- placement="top"
37
- >
38
- <span style="color: #409EFF;">字段接口</span>
39
- </el-tooltip>
40
- <el-select
41
- v-model="config.fieldsApi"
42
- style="width:100%"
43
- clearable
44
- placeholder="请选择"
45
- no-data-text="暂无接口,请前往【数据源模块】创建"
46
- @change="handleFieldsApiChange"
47
- >
48
- <el-option
49
- v-for="item in Object.values(apiConfig)"
50
- :key="item.id"
51
- :label="item.label"
52
- :value="item.id"
53
- >
54
- </el-option>
55
- </el-select>
56
- </el-form-item>
57
- <el-form-item label="表单标题" prop="title" required>
58
- <el-input
59
- v-model="config.title"
60
- placeholder="请输入"
61
- clearable
62
- ></el-input>
63
- </el-form-item>
64
- <el-form-item label="表单宽度">
65
- <el-input v-model="config.width"></el-input>
66
- </el-form-item>
67
- <el-form-item label="组件库">
68
- <el-radio-group v-model="config.ui">
69
- <el-radio-button label="element">Element</el-radio-button>
70
- <el-radio-button label="vant" disabled>Vant</el-radio-button>
71
- </el-radio-group>
72
- </el-form-item>
73
- <el-form-item label="组件尺寸">
74
- <el-radio-group v-model="config.size">
75
- <el-radio-button label="medium">medium</el-radio-button>
76
- <el-radio-button label="small">small</el-radio-button>
77
- <el-radio-button label="mini">mini</el-radio-button>
78
- </el-radio-group>
79
- </el-form-item>
80
- </el-collapse-item>
81
-
82
- <el-collapse-item title="数据配置" name="group-resultData">
83
- <el-form-item>
84
- <el-tooltip
85
- slot="label"
86
- effect="light"
87
- content="一般用于编辑和详情的数据回显"
88
- placement="top"
89
- >
90
- <span style="color: #409EFF;">数据回填</span>
91
- </el-tooltip>
92
- <el-select
93
- v-model="config.mounted.api"
94
- value-key="id"
95
- clearable
96
- placeholder="请选择数据方法"
97
- no-data-text="暂无接口,请前往【接口模块】创建"
98
- >
99
- <el-option
100
- v-for="item in Object.values(apiConfig)"
101
- :key="item.id"
102
- :label="item.label"
103
- :value="item.id"
104
- >
105
- </el-option>
106
- </el-select>
107
- </el-form-item>
108
- </el-collapse-item>
109
- <el-collapse-item title="标签配置" name="group-label">
110
- <el-form-item label="标签宽度">
111
- <el-input-number
112
- v-model="config.labelWidth"
113
- :min="0"
114
- :step="5"
115
- ></el-input-number>
116
- </el-form-item>
117
- <el-form-item label="对齐方式">
118
- <el-radio-group v-model="config.labelPosition">
119
- <el-radio-button label="left">左对齐</el-radio-button>
120
- <el-radio-button label="right">右对齐</el-radio-button>
121
- <el-radio-button label="top">顶部对齐</el-radio-button>
122
- </el-radio-group>
123
- </el-form-item>
124
- </el-collapse-item>
125
- <el-collapse-item title="属性配置" name="group-attributes">
126
- <el-form-item label-width="0">
127
- <el-checkbox v-model="config.disabled">禁用 </el-checkbox>
128
- <el-checkbox v-model="config.hideLabel">隐藏标签 </el-checkbox>
129
- </el-form-item>
130
- </el-collapse-item>
131
- </el-collapse>
132
- </el-form>
133
- </div>
134
- </template>
135
-
136
- <script>
137
- export default {
138
- props: ["config", "apiConfig"],
139
- data() {
140
- return {
141
- collapseValue: [
142
- "group-form",
143
- "group-resultData",
144
- "group-label",
145
- "group-attributes"
146
- ],
147
- formRules: {
148
- fieldsType: [
149
- { required: true, message: "请选择字段类型", trigger: "change" }
150
- ],
151
- fieldsApi: [
152
- { required: true, message: "请选择字段类型", trigger: "change" }
153
- ],
154
- title: [
155
- { required: true, message: "请选择字段类型", trigger: "change" }
156
- ]
157
- }
158
- };
159
- },
160
- methods: {
161
- handleFieldsApiChange() {
162
- this.$emit("fieldsChange");
163
- },
164
- formValidate() {
165
- return new Promise((resolve, reject) => {
166
- this.$refs.formRef.validate(valid => {
167
- resolve(valid);
168
- });
169
- });
170
- }
171
- }
172
- };
173
- </script>
174
-
175
- <style lang="scss">
176
- .form-config {
177
- .el-collapse-item__header {
178
- padding: 0 10px;
179
- height: 40px;
180
- line-height: 40px;
181
- background-color: #f5f7f9;
182
- }
183
- .el-collapse-item__wrap {
184
- padding: 10px;
185
- }
186
- .el-radio-button__inner {
187
- padding: 7px !important;
188
- }
189
- }
190
- </style>