tianheng-ui 0.1.0 → 0.1.2

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.
Files changed (254) hide show
  1. package/README.md +9 -18
  2. package/lib/039af9192b9bb277966ceb4e4ce29c41.js +16 -0
  3. package/lib/2d84c80112a372bc149cad3464e90fa3.js +1617 -0
  4. package/lib/5977b934a4c6b480790864ea01303173.js +10834 -0
  5. package/lib/7745f3e776488705a38e62f85adad54d.js +16 -0
  6. package/lib/de8dee841ffdaaede3a2254deef30376.js +15395 -0
  7. package/lib/e78eab250e7f8ccac3d918dfdb06ca10.js +8904 -0
  8. package/lib/theme-chalk/fonts/PingFang.ttf +0 -0
  9. package/lib/theme-chalk/fonts/bpmn.eot +0 -0
  10. package/lib/theme-chalk/fonts/bpmn.svg +224 -0
  11. package/lib/theme-chalk/fonts/bpmn.ttf +0 -0
  12. package/lib/theme-chalk/fonts/bpmn.woff +0 -0
  13. package/lib/theme-chalk/fonts/bpmn.woff2 +0 -0
  14. package/lib/theme-chalk/fonts/fontawesome-webfont.eot +0 -0
  15. package/lib/theme-chalk/fonts/fontawesome-webfont.svg +2671 -0
  16. package/lib/theme-chalk/fonts/fontawesome-webfont.ttf +0 -0
  17. package/lib/theme-chalk/fonts/fontawesome-webfont.woff +0 -0
  18. package/lib/theme-chalk/fonts/fontawesome-webfont.woff2 +0 -0
  19. package/lib/theme-chalk/fonts/iconfont.eot +0 -0
  20. package/lib/theme-chalk/fonts/iconfont.svg +155 -0
  21. package/lib/theme-chalk/fonts/iconfont.ttf +0 -0
  22. package/lib/theme-chalk/fonts/iconfont.woff +0 -0
  23. package/lib/theme-chalk/fonts/iconfont.woff2 +0 -0
  24. package/lib/theme-chalk/images/notData.png +0 -0
  25. package/lib/theme-chalk/index.scss +31 -0
  26. package/lib/theme-chalk/js/Log.js +99 -0
  27. package/lib/theme-chalk/js/axios.js +86 -0
  28. package/lib/theme-chalk/js/store/getters.js +5 -0
  29. package/lib/theme-chalk/js/store/modules/makingForm.js +21 -0
  30. package/lib/theme-chalk/js/store/store.js +26 -0
  31. package/lib/theme-chalk/styles/button.scss +501 -0
  32. package/lib/theme-chalk/styles/card.scss +29 -0
  33. package/lib/theme-chalk/styles/cell.scss +54 -0
  34. package/lib/theme-chalk/styles/codeEditor.scss +9 -0
  35. package/lib/theme-chalk/styles/col.scss +151 -0
  36. package/lib/theme-chalk/styles/dialog.scss +56 -0
  37. package/lib/theme-chalk/styles/empty.scss +22 -0
  38. package/lib/theme-chalk/styles/feature.scss +46 -0
  39. package/lib/theme-chalk/styles/font.css +7 -0
  40. package/lib/theme-chalk/styles/grid.scss +41 -0
  41. package/lib/theme-chalk/styles/icon.css +1944 -0
  42. package/lib/theme-chalk/styles/imagePreview.scss +113 -0
  43. package/lib/theme-chalk/styles/img.scss +35 -0
  44. package/lib/theme-chalk/styles/reset.scss +17 -0
  45. package/lib/theme-chalk/styles/root.css +64 -0
  46. package/lib/theme-chalk/styles/row.scss +23 -0
  47. package/lib/theme-chalk/styles/upload.scss +744 -0
  48. package/lib/theme-chalk/styles/variable.scss +80 -0
  49. package/lib/tianheng-ui.js +116 -0
  50. package/package.json +86 -48
  51. package/packages/Button/index.js +8 -0
  52. package/packages/Button/index.vue +80 -0
  53. package/packages/Card/index.js +8 -0
  54. package/packages/Card/index.vue +37 -0
  55. package/packages/Cell/index.js +8 -0
  56. package/packages/Cell/index.vue +68 -0
  57. package/packages/CodeEditor/index.js +8 -0
  58. package/packages/CodeEditor/index.vue +177 -0
  59. package/packages/Col/index.js +8 -0
  60. package/packages/Col/index.vue +43 -0
  61. package/packages/Dialog/index.js +8 -0
  62. package/packages/Dialog/index.vue +129 -0
  63. package/packages/Empty/index.js +8 -0
  64. package/packages/Empty/index.vue +35 -0
  65. package/packages/FormMaking/FormConfig.vue +60 -0
  66. package/packages/FormMaking/GenerateForm.vue +308 -0
  67. package/packages/FormMaking/GenerateFormItem.vue +887 -0
  68. package/packages/FormMaking/GenerateFormItemH5.vue +825 -0
  69. package/packages/FormMaking/Upload/index.vue +572 -0
  70. package/packages/FormMaking/WidgetConfig.vue +472 -0
  71. package/packages/FormMaking/WidgetForm.vue +159 -0
  72. package/packages/FormMaking/WidgetFormItem.vue +187 -0
  73. package/packages/FormMaking/custom/config.js +762 -0
  74. package/packages/FormMaking/custom/configs/alliance.vue +0 -0
  75. package/packages/FormMaking/custom/configs/blank.vue +54 -0
  76. package/packages/FormMaking/custom/configs/button.vue +172 -0
  77. package/packages/FormMaking/custom/configs/cascader.vue +175 -0
  78. package/packages/FormMaking/custom/configs/cell.vue +81 -0
  79. package/packages/FormMaking/custom/configs/checkbox.vue +234 -0
  80. package/packages/FormMaking/custom/configs/color.vue +137 -0
  81. package/packages/FormMaking/custom/configs/date.vue +158 -0
  82. package/packages/FormMaking/custom/configs/divider.vue +61 -0
  83. package/packages/FormMaking/custom/configs/editor.vue +71 -0
  84. package/packages/FormMaking/custom/configs/filler.vue +57 -0
  85. package/packages/FormMaking/custom/configs/grid.vue +103 -0
  86. package/packages/FormMaking/custom/configs/image.vue +138 -0
  87. package/packages/FormMaking/custom/configs/input.vue +176 -0
  88. package/packages/FormMaking/custom/configs/number.vue +140 -0
  89. package/packages/FormMaking/custom/configs/radio.vue +211 -0
  90. package/packages/FormMaking/custom/configs/rate.vue +109 -0
  91. package/packages/FormMaking/custom/configs/select.vue +305 -0
  92. package/packages/FormMaking/custom/configs/slider.vue +142 -0
  93. package/packages/FormMaking/custom/configs/switch.vue +130 -0
  94. package/packages/FormMaking/custom/configs/table.vue +105 -0
  95. package/packages/FormMaking/custom/configs/table_h5.vue +102 -0
  96. package/packages/FormMaking/custom/configs/tabs.vue +175 -0
  97. package/packages/FormMaking/custom/configs/text.vue +71 -0
  98. package/packages/FormMaking/custom/configs/textarea.vue +167 -0
  99. package/packages/FormMaking/custom/configs/time.vue +153 -0
  100. package/packages/FormMaking/custom/configs/upload.vue +155 -0
  101. package/packages/FormMaking/custom/index.js +32 -0
  102. package/packages/FormMaking/custom/items/alliance.vue +132 -0
  103. package/packages/FormMaking/custom/items/blank.vue +16 -0
  104. package/packages/FormMaking/custom/items/button.vue +27 -0
  105. package/packages/FormMaking/custom/items/cascader.vue +29 -0
  106. package/packages/FormMaking/custom/items/cell.vue +18 -0
  107. package/packages/FormMaking/custom/items/checkbox.vue +46 -0
  108. package/packages/FormMaking/custom/items/color.vue +19 -0
  109. package/packages/FormMaking/custom/items/date.vue +29 -0
  110. package/packages/FormMaking/custom/items/divider.vue +14 -0
  111. package/packages/FormMaking/custom/items/editor.vue +22 -0
  112. package/packages/FormMaking/custom/items/filler.vue +17 -0
  113. package/packages/FormMaking/custom/items/grid.vue +130 -0
  114. package/packages/FormMaking/custom/items/image.vue +70 -0
  115. package/packages/FormMaking/custom/items/input.vue +33 -0
  116. package/packages/FormMaking/custom/items/login.vue +13 -0
  117. package/packages/FormMaking/custom/items/number.vue +24 -0
  118. package/packages/FormMaking/custom/items/radio.vue +44 -0
  119. package/packages/FormMaking/custom/items/rate.vue +20 -0
  120. package/packages/FormMaking/custom/items/select.vue +32 -0
  121. package/packages/FormMaking/custom/items/slider.vue +34 -0
  122. package/packages/FormMaking/custom/items/switch.vue +22 -0
  123. package/packages/FormMaking/custom/items/table.vue +106 -0
  124. package/packages/FormMaking/custom/items/table_h5.vue +126 -0
  125. package/packages/FormMaking/custom/items/tabs.vue +145 -0
  126. package/packages/FormMaking/custom/items/text.vue +18 -0
  127. package/packages/FormMaking/custom/items/textarea.vue +37 -0
  128. package/packages/FormMaking/custom/items/time.vue +32 -0
  129. package/packages/FormMaking/custom/items/upload.vue +102 -0
  130. package/packages/FormMaking/custom/mixins/index.js +61 -0
  131. package/packages/FormMaking/custom/register.js +18 -0
  132. package/packages/FormMaking/generate.js +5 -0
  133. package/packages/FormMaking/iconfont/demo.css +539 -0
  134. package/packages/FormMaking/iconfont/demo_index.html +1159 -0
  135. package/packages/FormMaking/iconfont/iconfont.css +189 -0
  136. package/packages/FormMaking/iconfont/iconfont.eot +0 -0
  137. package/packages/FormMaking/iconfont/iconfont.js +1 -0
  138. package/packages/FormMaking/iconfont/iconfont.svg +155 -0
  139. package/packages/FormMaking/iconfont/iconfont.ttf +0 -0
  140. package/packages/FormMaking/iconfont/iconfont.woff +0 -0
  141. package/packages/FormMaking/iconfont/iconfont.woff2 +0 -0
  142. package/packages/FormMaking/index.js +33 -0
  143. package/packages/FormMaking/index.vue +807 -0
  144. package/packages/FormMaking/lang/en-US.js +187 -0
  145. package/packages/FormMaking/lang/zh-CN.js +187 -0
  146. package/packages/FormMaking/making.js +9 -0
  147. package/packages/FormMaking/styles/cover.scss +41 -0
  148. package/packages/FormMaking/styles/index.scss +785 -0
  149. package/packages/FormMaking/util/generateCode.js +163 -0
  150. package/packages/FormMaking/util/index.js +33 -0
  151. package/packages/FormMaking/util/request.js +28 -0
  152. package/packages/Grid/index.js +8 -0
  153. package/packages/Grid/index.vue +21 -0
  154. package/packages/GridItem/index.js +8 -0
  155. package/packages/GridItem/index.vue +69 -0
  156. package/packages/Icons/index.js +8 -0
  157. package/packages/Icons/index.vue +377 -0
  158. package/packages/Image/index.js +8 -0
  159. package/packages/Image/index.vue +146 -0
  160. package/packages/ImagePreview/index.js +8 -0
  161. package/packages/ImagePreview/index.vue +386 -0
  162. package/packages/Row/index.js +8 -0
  163. package/packages/Row/index.vue +33 -0
  164. package/packages/Table/action.js +8 -0
  165. package/packages/Table/action.vue +168 -0
  166. package/packages/Table/column.vue +63 -0
  167. package/packages/Table/index.js +8 -0
  168. package/packages/Table/index.vue +327 -0
  169. package/packages/Table/search.js +8 -0
  170. package/packages/Table/search.vue +163 -0
  171. package/packages/Table/tools.js +8 -0
  172. package/packages/Table/tools.vue +49 -0
  173. package/packages/TableMaking/custom/configs/fieldSearch.vue +17 -0
  174. package/packages/TableMaking/custom/configs/fieldTable.vue +15 -0
  175. package/packages/TableMaking/custom/items/search/index.vue +158 -0
  176. package/packages/TableMaking/custom/items/tools/index.vue +49 -0
  177. package/packages/TableMaking/generate.js +5 -0
  178. package/packages/TableMaking/generateTable.vue +560 -0
  179. package/packages/TableMaking/index.vue +229 -0
  180. package/packages/TableMaking/making.js +5 -0
  181. package/packages/TableMaking/util/index.js +433 -0
  182. package/packages/TableMaking/widgetConfig.vue +390 -0
  183. package/packages/TableMaking/widgetTable.vue +305 -0
  184. package/packages/Upload/ajax.js +85 -0
  185. package/packages/Upload/index.js +8 -0
  186. package/packages/Upload/index.vue +325 -0
  187. package/packages/Upload/upload-dragger.vue +70 -0
  188. package/packages/Upload/upload-list.vue +121 -0
  189. package/packages/Upload/upload.vue +193 -0
  190. package/packages/VueEditor/index.js +8 -0
  191. package/packages/VueEditor/index.vue +38 -0
  192. package/packages/Workflow/Log.js +99 -0
  193. package/packages/Workflow/designer/ProcessDesigner.vue +628 -0
  194. package/packages/Workflow/designer/index.js +7 -0
  195. package/packages/Workflow/designer/plugins/content-pad/contentPadProvider.js +390 -0
  196. package/packages/Workflow/designer/plugins/content-pad/index.js +6 -0
  197. package/packages/Workflow/designer/plugins/defaultEmpty.js +24 -0
  198. package/packages/Workflow/designer/plugins/descriptor/activitiDescriptor.json +1071 -0
  199. package/packages/Workflow/designer/plugins/descriptor/camundaDescriptor.json +1087 -0
  200. package/packages/Workflow/designer/plugins/descriptor/flowableDescriptor.json +1215 -0
  201. package/packages/Workflow/designer/plugins/extension-moddle/activiti/activitiExtension.js +74 -0
  202. package/packages/Workflow/designer/plugins/extension-moddle/activiti/index.js +9 -0
  203. package/packages/Workflow/designer/plugins/extension-moddle/camunda/extension.js +148 -0
  204. package/packages/Workflow/designer/plugins/extension-moddle/camunda/index.js +6 -0
  205. package/packages/Workflow/designer/plugins/extension-moddle/flowable/flowableExtension.js +74 -0
  206. package/packages/Workflow/designer/plugins/extension-moddle/flowable/index.js +9 -0
  207. package/packages/Workflow/designer/plugins/palette/CustomPalette.js +156 -0
  208. package/packages/Workflow/designer/plugins/palette/index.js +6 -0
  209. package/packages/Workflow/designer/plugins/palette/paletteProvider.js +160 -0
  210. package/packages/Workflow/designer/plugins/translate/customTranslate.js +41 -0
  211. package/packages/Workflow/designer/plugins/translate/zh.js +238 -0
  212. package/packages/Workflow/highlight/index.js +5 -0
  213. package/packages/Workflow/index.js +34 -0
  214. package/packages/Workflow/index.vue +399 -0
  215. package/packages/Workflow/modules/auto-place/CustomAutoPlace.js +81 -0
  216. package/packages/Workflow/modules/auto-place/index.js +6 -0
  217. package/packages/Workflow/modules/custom-renderer/CustomRenderer.js +17 -0
  218. package/packages/Workflow/modules/custom-renderer/index.js +6 -0
  219. package/packages/Workflow/modules/rules/CustomRules.js +16 -0
  220. package/packages/Workflow/modules/rules/index.js +6 -0
  221. package/packages/Workflow/palette/ProcessPalette.vue +106 -0
  222. package/packages/Workflow/palette/index.js +7 -0
  223. package/packages/Workflow/penal/PropertiesPanel.vue +245 -0
  224. package/packages/Workflow/penal/base/ElementBaseInfo.vue +80 -0
  225. package/packages/Workflow/penal/flow-condition/FlowCondition.vue +142 -0
  226. package/packages/Workflow/penal/form/ElementForm.vue +367 -0
  227. package/packages/Workflow/penal/index.js +7 -0
  228. package/packages/Workflow/penal/listeners/ElementListeners.vue +299 -0
  229. package/packages/Workflow/penal/listeners/UserTaskListeners.vue +322 -0
  230. package/packages/Workflow/penal/listeners/template.js +178 -0
  231. package/packages/Workflow/penal/listeners/utilSelf.js +64 -0
  232. package/packages/Workflow/penal/multi-instance/ElementMultiInstance.vue +200 -0
  233. package/packages/Workflow/penal/other/ElementOtherConfig.vue +59 -0
  234. package/packages/Workflow/penal/properties/ElementProperties.vue +135 -0
  235. package/packages/Workflow/penal/signal-message/SignalAndMessage.vue +104 -0
  236. package/packages/Workflow/penal/task/ElementTask.vue +73 -0
  237. package/packages/Workflow/penal/task/task-components/ReceiveTask.vue +97 -0
  238. package/packages/Workflow/penal/task/task-components/ScriptTask.vue +85 -0
  239. package/packages/Workflow/penal/task/task-components/UserTask.vue +535 -0
  240. package/packages/Workflow/theme/element-variables.scss +70 -0
  241. package/packages/Workflow/theme/index.scss +2 -0
  242. package/packages/Workflow/theme/process-designer.scss +157 -0
  243. package/packages/Workflow/theme/process-panel.scss +107 -0
  244. package/packages/Workflow/translations.js +25 -0
  245. package/packages/Workflow/utils.js +71 -0
  246. package/packages/index.js +160 -0
  247. package/babel.config.js +0 -15
  248. package/index.js +0 -11
  249. package/public/favicon.ico +0 -0
  250. package/public/index.html +0 -17
  251. package/src/App.vue +0 -28
  252. package/src/assets/logo.png +0 -0
  253. package/src/components/HelloWorld.vue +0 -58
  254. package/src/main.js +0 -8
@@ -0,0 +1,390 @@
1
+ <template>
2
+ <div class="widgetConfig">
3
+ <div class="tabs">
4
+ <div
5
+ v-for="(item, index) in tabsMenus"
6
+ :key="index"
7
+ class="tabs-item"
8
+ :class="{ 'tabs-item__active': activeTab.value === item.value }"
9
+ @click="handleTabsSelect(item)"
10
+ >
11
+ {{ item.title }}
12
+ </div>
13
+ </div>
14
+ <div v-if="activeTab.value === 0" class="fields">
15
+ <el-checkbox
16
+ :indeterminate="search.isIndeterminate"
17
+ v-model="search.isCheckAll"
18
+ @change="handleSearchCheckAllChange"
19
+ >全选</el-checkbox
20
+ >
21
+ <el-checkbox-group v-model="search.fields" @change="handleChange">
22
+ <el-checkbox
23
+ v-for="(item, index) in fields"
24
+ :label="index"
25
+ :key="index"
26
+ >{{ item.label }}</el-checkbox
27
+ >
28
+ </el-checkbox-group>
29
+ </div>
30
+ <div v-if="activeTab.value === 1" class="fields">
31
+ <el-checkbox
32
+ :indeterminate="table.isIndeterminate"
33
+ v-model="table.isCheckAll"
34
+ @change="handleTableCheckAllChange"
35
+ >全选</el-checkbox
36
+ >
37
+ <el-checkbox-group v-model="table.fields" @change="handleChange">
38
+ <el-checkbox
39
+ v-for="(item, index) in fields"
40
+ :label="index"
41
+ :key="index"
42
+ >{{ item.label }}</el-checkbox
43
+ >
44
+ </el-checkbox-group>
45
+ </div>
46
+ <div v-if="activeTab.value === 2" class="tableConfig">
47
+ <el-form
48
+ :model="tableConfig"
49
+ label-position="left"
50
+ label-width="80px"
51
+ size="mini"
52
+ >
53
+ <el-collapse v-model="tableCollapse">
54
+ <el-collapse-item title="表格配置" name="1">
55
+ <el-form-item label="高级查询">
56
+ <el-switch v-model="tableConfig.search.show"> </el-switch>
57
+ </el-form-item>
58
+ <el-form-item label="排序类型">
59
+ <el-radio-group v-model="tableConfig.table.sort.type">
60
+ <el-radio-button label="1">降序</el-radio-button>
61
+ <el-radio-button label="2">升序</el-radio-button>
62
+ </el-radio-group>
63
+ </el-form-item>
64
+ <el-form-item label="排序字段">
65
+ <el-select
66
+ v-model="tableConfig.table.sort.key"
67
+ placeholder="请选择"
68
+ clearable
69
+ >
70
+ <el-option
71
+ v-for="item in fields"
72
+ :key="item.prop"
73
+ :label="item.label"
74
+ :value="item.alias"
75
+ >
76
+ </el-option>
77
+ </el-select>
78
+ </el-form-item>
79
+ <el-form-item label="序号">
80
+ <el-switch v-model="tableConfig.table.sequence"> </el-switch>
81
+ </el-form-item>
82
+ <el-form-item label="分页设置">
83
+ <el-switch v-model="tableConfig.table.pageInfo.show"> </el-switch>
84
+ </el-form-item>
85
+ <el-form-item
86
+ v-if="tableConfig.table.pageInfo.show"
87
+ label="分页条数"
88
+ >
89
+ <el-radio-group
90
+ v-model="tableConfig.table.pageInfo.options.pageSize"
91
+ >
92
+ <el-radio-button :label="20">20条</el-radio-button>
93
+ <el-radio-button :label="50">50条</el-radio-button>
94
+ <el-radio-button :label="100">100条</el-radio-button>
95
+ <el-radio-button :label="500">500条</el-radio-button>
96
+ </el-radio-group>
97
+ </el-form-item>
98
+ </el-collapse-item>
99
+ <!-- <el-collapse-item title="子表配置" name="2">
100
+ <el-form-item label="子表样式">
101
+ <el-select v-model="tableConfig.sortField" placeholder="请选择">
102
+ <el-option
103
+ v-for="item in []"
104
+ :key="item.value"
105
+ :label="item.label"
106
+ :value="item.value"
107
+ >
108
+ </el-option>
109
+ </el-select>
110
+ </el-form-item>
111
+ </el-collapse-item> -->
112
+ <el-collapse-item name="3">
113
+ <template slot="title">
114
+ <div class="collapse-title">
115
+ <div>按钮配置</div>
116
+ <div
117
+ class="collapse-title-action"
118
+ @click.stop="handleActionConfig"
119
+ >
120
+ 配置
121
+ </div>
122
+ </div>
123
+ </template>
124
+ <el-form-item label-width="90px">
125
+ <el-checkbox v-model="tableConfig.tools.add.show" slot="label"
126
+ >新增</el-checkbox
127
+ >
128
+ <el-input
129
+ v-model="tableConfig.tools.add.name"
130
+ placeholder="请输入内容"
131
+ ></el-input>
132
+ </el-form-item>
133
+ <el-form-item label-width="90px">
134
+ <el-checkbox v-model="tableConfig.tools.edit.show" slot="label"
135
+ >编辑</el-checkbox
136
+ >
137
+ <el-input
138
+ v-model="tableConfig.tools.edit.name"
139
+ placeholder="请输入内容"
140
+ ></el-input>
141
+ </el-form-item>
142
+ <el-form-item label-width="90px">
143
+ <el-checkbox v-model="tableConfig.tools.detail.show" slot="label"
144
+ >详情</el-checkbox
145
+ >
146
+ <el-input
147
+ v-model="tableConfig.tools.detail.name"
148
+ placeholder="请输入内容"
149
+ ></el-input>
150
+ </el-form-item>
151
+ <el-form-item label-width="90px">
152
+ <el-checkbox v-model="tableConfig.tools.delete.show" slot="label"
153
+ >删除</el-checkbox
154
+ >
155
+ <el-input
156
+ v-model="tableConfig.tools.delete.name"
157
+ placeholder="请输入内容"
158
+ ></el-input>
159
+ </el-form-item>
160
+ <el-form-item label-width="90px">
161
+ <el-checkbox
162
+ v-model="tableConfig.tools.batchDelete.show"
163
+ slot="label"
164
+ >批量删除</el-checkbox
165
+ >
166
+ <el-input
167
+ v-model="tableConfig.tools.batchDelete.name"
168
+ placeholder="请输入内容"
169
+ ></el-input>
170
+ </el-form-item>
171
+ <el-form-item label-width="90px">
172
+ <el-checkbox v-model="tableConfig.tools.export.show" slot="label"
173
+ >导出</el-checkbox
174
+ >
175
+ <el-input
176
+ v-model="tableConfig.tools.export.name"
177
+ placeholder="请输入内容"
178
+ ></el-input>
179
+ </el-form-item>
180
+ <el-form-item label-width="90px">
181
+ <el-checkbox v-model="tableConfig.tools.import.show" slot="label"
182
+ >导入</el-checkbox
183
+ >
184
+ <el-input
185
+ v-model="tableConfig.tools.import.name"
186
+ placeholder="请输入内容"
187
+ ></el-input>
188
+ </el-form-item>
189
+ </el-collapse-item>
190
+ </el-collapse>
191
+ </el-form>
192
+ </div>
193
+ </div>
194
+ </template>
195
+
196
+ <script>
197
+ export default {
198
+ props: {
199
+ fields: {
200
+ type: Array,
201
+ default: () => {
202
+ return [];
203
+ }
204
+ }
205
+ },
206
+ data() {
207
+ return {
208
+ tabsMenus: [
209
+ { title: "查询字段", value: 0 },
210
+ { title: "列表字段", value: 1 },
211
+ { title: "列表属性", value: 2 }
212
+ ],
213
+ activeTab: { title: "查询字段", value: 0 },
214
+ search: {
215
+ fields: [],
216
+ isCheckAll: false,
217
+ isIndeterminate: false
218
+ },
219
+ table: {
220
+ fields: [],
221
+ isCheckAll: false,
222
+ isIndeterminate: false
223
+ },
224
+ tableCollapse: ["1", "3"],
225
+ tableConfig: {
226
+ search: {
227
+ show: true,
228
+ options: []
229
+ },
230
+ table: {
231
+ options: [],
232
+ pageInfo: {
233
+ show: true,
234
+ options: {
235
+ pageCount: 0, // 总页数
236
+ pageSize: 20, // 每页展示的条数
237
+ currentPage: 1, // 当前页码
238
+ total: 0, // 总条数
239
+ sizes: [10, 20, 30, 50, 100]
240
+ }
241
+ },
242
+ sort: { type: "1", key: "create_time" },
243
+ loading: { show: false, text: "加载中", image: "" },
244
+ empty: { show: true, text: "暂无数据", image: "" },
245
+ sequence: true //是否显示序号
246
+ },
247
+ tools: {
248
+ add: { show: true, name: "新增", position: 1 },
249
+ edit: { show: true, name: "编辑", position: 2 },
250
+ detail: { show: false, name: "查看", position: 2 },
251
+ delete: { show: true, name: "删除", position: 2 },
252
+ batchDelete: { show: false, name: "批量删除", position: 1 },
253
+ export: { show: false, name: "导出", position: 1 },
254
+ import: { show: false, name: "导入", position: 1 }
255
+ },
256
+ network: {}
257
+ }
258
+ };
259
+ },
260
+ mounted() {},
261
+ methods: {
262
+ handleTabsSelect(val) {
263
+ this.activeTab = val;
264
+ },
265
+ handleChange() {
266
+ if (this.activeTab.value === 0) {
267
+ const count = this.search.fields.length;
268
+ this.search.isCheckAll = count === this.fields.length;
269
+ this.search.isIndeterminate = count > 0 && count < this.fields.length;
270
+ this.$emit("fields-change", {
271
+ type: this.activeTab.value,
272
+ data: this.search.fields
273
+ });
274
+ } else {
275
+ const count = this.table.fields.length;
276
+ this.table.isCheckAll = count === this.fields.length;
277
+ this.table.isIndeterminate = count > 0 && count < this.fields.length;
278
+ this.$emit("fields-change", {
279
+ type: this.activeTab.value,
280
+ data: this.table.fields
281
+ });
282
+ }
283
+ },
284
+ handleSearchCheckAllChange(val) {
285
+ const list = [];
286
+ if (val) {
287
+ for (let i = 0; i < this.fields.length; i++) {
288
+ list.push(i);
289
+ }
290
+ }
291
+ this.search.fields = list;
292
+ this.search.isIndeterminate = false;
293
+ this.handleChange();
294
+ },
295
+ handleTableCheckAllChange(val) {
296
+ const list = [];
297
+ if (val) {
298
+ for (let i = 0; i < this.fields.length; i++) {
299
+ list.push(i);
300
+ }
301
+ }
302
+ this.table.fields = list;
303
+ this.table.isIndeterminate = false;
304
+ this.handleChange();
305
+ },
306
+ handleActionConfig() {},
307
+ getJson() {
308
+ return JSON.parse(JSON.stringify(this.tableConfig));
309
+ }
310
+ }
311
+ };
312
+ </script>
313
+
314
+ <style lang="scss" scoped>
315
+ .widgetConfig {
316
+ height: 100%;
317
+ background-color: white;
318
+ .tabs {
319
+ display: flex;
320
+ align-items: center;
321
+ height: 45px;
322
+ border-bottom: 1px solid #dcdfe6;
323
+ box-sizing: border-box;
324
+
325
+ .tabs-item {
326
+ flex: 1;
327
+ text-align: center;
328
+ line-height: 44px;
329
+ cursor: pointer;
330
+ }
331
+ .tabs-item__active {
332
+ border-bottom: 2px solid #409eff;
333
+ }
334
+ }
335
+
336
+ .fields {
337
+ height: calc(100% - 45px);
338
+ .fields-item {
339
+ padding: 0 10px;
340
+ height: 30px;
341
+ margin-right: 0;
342
+ line-height: 30px;
343
+ }
344
+
345
+ .el-checkbox {
346
+ padding: 0 10px;
347
+ margin-right: 0;
348
+ width: 100%;
349
+ height: 30px;
350
+ line-height: 30px;
351
+ }
352
+ }
353
+
354
+ .tableConfig {
355
+ height: calc(100% - 45px);
356
+
357
+ .collapse-title {
358
+ display: flex;
359
+ justify-content: space-between;
360
+ width: 100%;
361
+ padding-right: 10px;
362
+
363
+ .collapse-title-action {
364
+ transition: 0.25s;
365
+ }
366
+
367
+ .collapse-title-action:hover {
368
+ color: #409eff;
369
+ }
370
+ }
371
+ }
372
+ }
373
+ </style>
374
+
375
+ <style lang="scss">
376
+ .tableConfig {
377
+ .el-collapse-item__header {
378
+ padding: 0 10px;
379
+ height: 40px;
380
+ line-height: 40px;
381
+ background-color: #f5f7f9;
382
+ }
383
+ .el-collapse-item__wrap {
384
+ padding: 10px;
385
+ }
386
+ .el-radio-button__inner {
387
+ padding: 7px;
388
+ }
389
+ }
390
+ </style>
@@ -0,0 +1,305 @@
1
+ <template>
2
+ <div class="widgetTable">
3
+ <div class="table-title">查询字段</div>
4
+ <div class="searchList">
5
+ <div class="table-header">
6
+ <div>拖动</div>
7
+ <div>列名</div>
8
+ <!-- <div>字段</div> -->
9
+ <div>类型</div>
10
+ <div>默认值</div>
11
+ <div>数据来源</div>
12
+ </div>
13
+ <draggable
14
+ class="table-content"
15
+ v-model="searchData"
16
+ v-bind="{
17
+ group: 'people',
18
+ ghostClass: 'ghost',
19
+ animation: 200,
20
+ handle: '.drag-widget'
21
+ }"
22
+ @end="handleSearchMoveEnd"
23
+ >
24
+ <div
25
+ v-for="item in searchData"
26
+ :key="item.key"
27
+ class="table-content-item"
28
+ >
29
+ <div class="drag">
30
+ <i class="iconfont icon-drag drag-widget"></i>
31
+ </div>
32
+ <div>{{ item.label }}</div>
33
+ <!-- <div>{{ item.prop }}</div> -->
34
+ <div>
35
+ <el-select
36
+ v-model="item.type"
37
+ placeholder="请选择"
38
+ size="mini"
39
+ disabled
40
+ >
41
+ <el-option
42
+ v-for="item in componentOptions"
43
+ :key="item.value"
44
+ :label="item.label"
45
+ :value="item.value"
46
+ >
47
+ </el-option>
48
+ </el-select>
49
+ </div>
50
+ <div>
51
+ <el-input
52
+ v-model="item.defaultValue"
53
+ placeholder="请输入内容"
54
+ size="mini"
55
+ ></el-input>
56
+ </div>
57
+ <div>
58
+ <template v-if="item.type === 'select'">
59
+ <el-button type="text" size="mini" @click="handleStaticData(item)"
60
+ >静态</el-button
61
+ >
62
+ <el-button type="text" size="mini" disabled>远端</el-button>
63
+ </template>
64
+ </div>
65
+ </div>
66
+ </draggable>
67
+ </div>
68
+ <div class="table-title">列表字段</div>
69
+ <div class="tableList">
70
+ <div class="table-header">
71
+ <div>拖动</div>
72
+ <div>列名</div>
73
+ <!-- <div>字段</div> -->
74
+ <div>排序</div>
75
+ <div>对齐</div>
76
+ <div>宽度</div>
77
+ </div>
78
+ <draggable
79
+ class="table-content"
80
+ v-model="tableData"
81
+ v-bind="{
82
+ group: 'people',
83
+ ghostClass: 'ghost',
84
+ animation: 200,
85
+ handle: '.drag-widget'
86
+ }"
87
+ @end="handleTableMoveEnd"
88
+ >
89
+ <div
90
+ v-for="item in tableData"
91
+ :key="item.key"
92
+ class="table-content-item"
93
+ >
94
+ <div class="drag">
95
+ <i class="iconfont icon-drag drag-widget"></i>
96
+ </div>
97
+ <div>{{ item.label }}</div>
98
+ <!-- <div>{{ item.prop }}</div> -->
99
+ <div><el-checkbox v-model="item.sortable"></el-checkbox></div>
100
+ <div>
101
+ <el-select v-model="item.align" placeholder="请选择" size="mini">
102
+ <el-option
103
+ v-for="item in alignOptions"
104
+ :key="item.value"
105
+ :label="item.label"
106
+ :value="item.value"
107
+ >
108
+ </el-option>
109
+ </el-select>
110
+ </div>
111
+ <div>
112
+ <el-input-number
113
+ v-model="item.width"
114
+ controls-position="right"
115
+ :min="0"
116
+ size="mini"
117
+ ></el-input-number>
118
+ </div>
119
+ </div>
120
+ </draggable>
121
+ </div>
122
+
123
+ <th-dialog
124
+ v-model="dialog.visible"
125
+ :title="dialog.title"
126
+ :modal-append-to-body="false"
127
+ @on-affirm="handleDialogAffirm"
128
+ >
129
+ <th-code-editor v-model="codeEditorValue"></th-code-editor>
130
+ </th-dialog>
131
+ </div>
132
+ </template>
133
+
134
+ <script>
135
+ import Draggable from "vuedraggable";
136
+ export default {
137
+ components: { Draggable },
138
+ props: {
139
+ searchFields: {
140
+ type: Array,
141
+ default: () => {
142
+ return [];
143
+ }
144
+ },
145
+ tableFields: {
146
+ type: Array,
147
+ default: () => {
148
+ return [];
149
+ }
150
+ }
151
+ },
152
+ data() {
153
+ return {
154
+ searchData: this.searchFields,
155
+ tableData: this.tableFields,
156
+ componentOptions: [
157
+ { label: "输入框", value: "input" },
158
+ { label: "下拉框", value: "select" },
159
+ { label: "日期框", value: "date" }
160
+ ],
161
+ alignOptions: [
162
+ { label: "左对齐", value: "left" },
163
+ { label: "居中对齐", value: "center" },
164
+ { label: "右对齐", value: "right" }
165
+ ],
166
+ dialog: { visible: false, title: "", data: null },
167
+ codeEditorValue: ""
168
+ };
169
+ },
170
+ watch: {
171
+ searchData: {
172
+ handler(val) {
173
+ this.$emit("update:searchFields", val);
174
+ },
175
+ deep: true
176
+ },
177
+ searchFields(val) {
178
+ this.searchData = val;
179
+ },
180
+ tableData: {
181
+ handler(val) {
182
+ this.$emit("update:tableFields", val);
183
+ },
184
+ deep: true
185
+ },
186
+ tableFields(val) {
187
+ this.tableData = val;
188
+ }
189
+ },
190
+ mounted() {},
191
+ methods: {
192
+ handleSearchMoveEnd(val) {
193
+ this.$emit("move", { type: "search", data: val });
194
+ },
195
+ handleTableMoveEnd(val) {
196
+ this.$emit("move", { type: "table", data: val });
197
+ },
198
+ handleStaticData(val) {
199
+ this.dialog = {
200
+ visible: true,
201
+ title: `静态数据 - ${val.label}`,
202
+ data: val
203
+ };
204
+ this.codeEditorValue = val.staticData || "";
205
+ },
206
+ handleDialogAffirm() {
207
+ this.dialog.data.staticData = this.codeEditorValue;
208
+ this.dialog = { visible: false, title: "", data: null };
209
+ }
210
+ }
211
+ };
212
+ </script>
213
+
214
+ <style lang="scss" scoped>
215
+ .widgetTable {
216
+ height: 100%;
217
+ padding: 10px;
218
+ background-color: white;
219
+ .table-title {
220
+ height: 25px;
221
+ line-height: 25px;
222
+ }
223
+ .searchList {
224
+ margin: 10px 0;
225
+ border: 1px solid #dcdfe6;
226
+ box-sizing: border-box;
227
+
228
+ .table-content {
229
+ height: 120px;
230
+ overflow-y: scroll;
231
+ }
232
+ }
233
+ .tableList {
234
+ margin-top: 10px;
235
+ height: calc(100% - 240px);
236
+ border: 1px solid #dcdfe6;
237
+
238
+ // .table-header {
239
+ // div:nth-child(4) {
240
+ // flex: none;
241
+ // width: 70px !important;
242
+ // }
243
+ // }
244
+ .table-content {
245
+ height: calc(100% - 40px);
246
+ overflow-y: scroll;
247
+ }
248
+ // .table-content .table-content-item > div:nth-child(4) {
249
+ // flex: none;
250
+ // width: 70px !important;
251
+ // }
252
+ .el-input-number--mini {
253
+ width: 100%;
254
+ }
255
+ }
256
+
257
+ .table-header {
258
+ display: flex;
259
+ align-items: center;
260
+ background-color: #f5f7f9;
261
+ div {
262
+ flex: 1;
263
+ padding: 0 10px;
264
+ height: 40px;
265
+ line-height: 40px;
266
+ }
267
+ div:nth-child(1) {
268
+ flex: none;
269
+ width: 60px;
270
+ text-align: center;
271
+ }
272
+ }
273
+ .table-content {
274
+ .table-content-item {
275
+ display: flex;
276
+ align-items: center;
277
+
278
+ .drag {
279
+ i {
280
+ font-size: 14px;
281
+ margin: 0 5px;
282
+ cursor: move;
283
+ }
284
+ }
285
+ > div {
286
+ flex: 1;
287
+ height: 40px;
288
+ line-height: 40px;
289
+ padding: 0 10px;
290
+ }
291
+ > div:nth-child(1) {
292
+ flex: none;
293
+ width: 60px;
294
+ text-align: center;
295
+ }
296
+ }
297
+ }
298
+ // .table-content:hover::-webkit-scrollbar-thumb {
299
+ // background-color: rgba(69, 90, 100, 0.2);
300
+ // }
301
+ // .table-content:hover::-webkit-scrollbar-thumb {
302
+ // background-color: rgba(69, 90, 100, 0.2);
303
+ // }
304
+ }
305
+ </style>