hs-admin-ui 1.0.0

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 (430) hide show
  1. package/.env +11 -0
  2. package/.env.development +5 -0
  3. package/.env.production +5 -0
  4. package/.eslintignore +18 -0
  5. package/.eslintrc.js +104 -0
  6. package/.prettierrc.js +39 -0
  7. package/.vite/deps_temp_3669a513/chunk-FVXAE7ZR.js +11400 -0
  8. package/.vite/deps_temp_3669a513/chunk-ZS7NZCD4.js +36 -0
  9. package/.vite/deps_temp_3669a513/default-passive-events.js +25 -0
  10. package/.vite/deps_temp_3669a513/element-plus.js +65013 -0
  11. package/.vite/deps_temp_3669a513/lodash.js +5497 -0
  12. package/.vite/deps_temp_3669a513/package.json +3 -0
  13. package/.vite/deps_temp_3669a513/vue.js +324 -0
  14. package/.vite/deps_temp_3669a513/vxe-table.js +32336 -0
  15. package/CHANGELOG.md +1 -0
  16. package/LICENSE +21 -0
  17. package/README.md +0 -0
  18. package/directoryList.md +180 -0
  19. package/package.json +78 -0
  20. package/postcss.config.js +7 -0
  21. package/src/App.vue +88 -0
  22. package/src/api/fieldConfigController/index.ts +76 -0
  23. package/src/api/fieldConfigController/type.ts +44 -0
  24. package/src/api/login/index.ts +78 -0
  25. package/src/api/loginController/index.ts +74 -0
  26. package/src/api/menu/index.ts +34 -0
  27. package/src/api/menu/index2.ts +291 -0
  28. package/src/api/menuController/index.ts +189 -0
  29. package/src/api/systemController/index.ts +26 -0
  30. package/src/api/systemController/type.ts +16 -0
  31. package/src/api/test/index.ts +22 -0
  32. package/src/api/user/index.ts +30 -0
  33. package/src/assets/404.png +0 -0
  34. package/src/assets/logo-main.svg +12 -0
  35. package/src/assets/logo-mini.svg +12 -0
  36. package/src/components/base/hsAffix/src/hsAffix.vue +22 -0
  37. package/src/components/base/hsAlert/src/hsAlert.vue +15 -0
  38. package/src/components/base/hsAutocomplete/src/hsAutocomplete.vue +36 -0
  39. package/src/components/base/hsButton/src/hsButton.vue +26 -0
  40. package/src/components/base/hsButton/src/hsButtonGroup.vue +8 -0
  41. package/src/components/base/hsButton/useButtonEvents.ts +19 -0
  42. package/src/components/base/hsCalendar/src/hsCalendar.vue +36 -0
  43. package/src/components/base/hsCarousel/src/hsCarousel.vue +15 -0
  44. package/src/components/base/hsCarousel/src/hsCarouselItem.vue +15 -0
  45. package/src/components/base/hsCascader/src/hsCascader.vue +36 -0
  46. package/src/components/base/hsCascader/src/hsCascaderPanel.vue +29 -0
  47. package/src/components/base/hsCheckbox/src/hsCheckbox.vue +32 -0
  48. package/src/components/base/hsCheckbox/src/hsCheckboxButton.vue +18 -0
  49. package/src/components/base/hsCheckbox/src/hsCheckboxGroup.vue +32 -0
  50. package/src/components/base/hsCol/src/hsCol.vue +20 -0
  51. package/src/components/base/hsCollapse/src/hsCollapse.vue +36 -0
  52. package/src/components/base/hsCollapse/src/hsCollapseItem.vue +22 -0
  53. package/src/components/base/hsColorPicker/src/hsColorPicker.vue +32 -0
  54. package/src/components/base/hsDatePicker/src/hsDatePicker.vue +40 -0
  55. package/src/components/base/hsDialog/src/hsDialog.vue +36 -0
  56. package/src/components/base/hsDrawer/src/hsDrawer.vue +29 -0
  57. package/src/components/base/hsDropdown/src/hsDropdown.vue +15 -0
  58. package/src/components/base/hsDropdown/src/hsDropdownItem.vue +15 -0
  59. package/src/components/base/hsDropdown/src/hsDropdownMenu.vue +15 -0
  60. package/src/components/base/hsForm/src/hsForm.vue +23 -0
  61. package/src/components/base/hsForm/src/hsFormItem.vue +22 -0
  62. package/src/components/base/hsGetApi/src/hsGetApis.vue +231 -0
  63. package/src/components/base/hsGetApi/useGetApis.ts +158 -0
  64. package/src/components/base/hsInput/src/hsInput.vue +40 -0
  65. package/src/components/base/hsInput/useInputEvents.ts +52 -0
  66. package/src/components/base/hsInputNumber/src/hsInputNumber.vue +31 -0
  67. package/src/components/base/hsPopconfirm/src/hsPopconfirm.vue +15 -0
  68. package/src/components/base/hsPopover/src/hsPopover.vue +22 -0
  69. package/src/components/base/hsProgress/src/hsProgress.vue +15 -0
  70. package/src/components/base/hsRadio/src/hsRadio.vue +32 -0
  71. package/src/components/base/hsRadio/src/hsRadioButton.vue +18 -0
  72. package/src/components/base/hsRadio/src/hsRadioGroup.vue +32 -0
  73. package/src/components/base/hsRate/src/hsRate.vue +33 -0
  74. package/src/components/base/hsResult/src/hsResult.vue +15 -0
  75. package/src/components/base/hsRow/src/hsRow.vue +20 -0
  76. package/src/components/base/hsScrollbar/src/hsScrollbar.vue +22 -0
  77. package/src/components/base/hsSelect/src/hsOption.vue +8 -0
  78. package/src/components/base/hsSelect/src/hsOptionGroup.vue +8 -0
  79. package/src/components/base/hsSelect/src/hsSelect.vue +42 -0
  80. package/src/components/base/hsSelect/useSelectEvents.ts +60 -0
  81. package/src/components/base/hsSlider/src/hsSlider.vue +25 -0
  82. package/src/components/base/hsSteps/src/hsStep.vue +15 -0
  83. package/src/components/base/hsSteps/src/hsSteps.vue +15 -0
  84. package/src/components/base/hsSwitch/src/hsSwitch.vue +35 -0
  85. package/src/components/base/hsTable/hsBCTable.vue +116 -0
  86. package/src/components/base/hsTable/hsTable copy.vue +226 -0
  87. package/src/components/base/hsTable/hsTable.vue +213 -0
  88. package/src/components/base/hsTable/useHsTableConfig.ts +95 -0
  89. package/src/components/base/hsTable/useTableEvents.ts +118 -0
  90. package/src/components/base/hsTabs/src/hsTabPane.vue +15 -0
  91. package/src/components/base/hsTabs/src/hsTabs.vue +29 -0
  92. package/src/components/base/hsTag/src/hsCheckTag.vue +16 -0
  93. package/src/components/base/hsTag/src/hsTag.vue +15 -0
  94. package/src/components/base/hsTest/HsTest.vue +320 -0
  95. package/src/components/base/hsTooltip/src/hsTooltip.vue +22 -0
  96. package/src/components/base/hsTour/src/hsTour.vue +31 -0
  97. package/src/components/base/hsTour/src/hsTourStep.vue +15 -0
  98. package/src/components/base/hsTransfer/src/hsTransfer.vue +36 -0
  99. package/src/components/base/hsTree/src/hsTree.vue +24 -0
  100. package/src/components/base/hsTreeSelect/src/hsTreeSelect.vue +39 -0
  101. package/src/components/base/hsUpload/src/hsUpload.vue +32 -0
  102. package/src/components/base/hsWatermark/src/hsWatermark.vue +15 -0
  103. package/src/components/business/bcAutoComplete/bcAutoComplete.vue +38 -0
  104. package/src/components/business/bcAutoComplete/defaultData.ts +25 -0
  105. package/src/components/business/bcAutoComplete/useAutoComplete.ts +65 -0
  106. package/src/components/business/bcBtn/bcBtn.vue +40 -0
  107. package/src/components/business/bcForm/bcForm.vue +113 -0
  108. package/src/components/business/bcForm/bcFormDrag.vue +104 -0
  109. package/src/components/business/bcForm/bcFormSearch.vue +154 -0
  110. package/src/components/business/bcForm/components/sortForm/index.ts +18 -0
  111. package/src/components/business/bcForm/components/sortForm/sortForm.vue +92 -0
  112. package/src/components/business/bcFormConfig/bcFormConfig.vue +196 -0
  113. package/src/components/business/bcFormTable/bcFormTable.vue +91 -0
  114. package/src/components/business/bcFormTable/components/bcTabs/bcTabs.vue +53 -0
  115. package/src/components/business/bcFormTable/components/contextBody/contextBody.vue +67 -0
  116. package/src/components/business/bcFormTable/components/contextBody/useContextMenu.ts +53 -0
  117. package/src/components/business/bcFormTable/components/formSearchBtn/formSearchBtn.vue +21 -0
  118. package/src/components/business/bcFormTable/methods/cellDetailMethod.ts +5 -0
  119. package/src/components/business/bcFormTable/methods/filterAgeMethod.ts +5 -0
  120. package/src/components/business/bcFormTable/methods/footerMethod.ts +25 -0
  121. package/src/components/business/bcFormTable/methods/index.ts +10 -0
  122. package/src/components/business/bcFormTable/utils/onFormKey.ts +121 -0
  123. package/src/components/business/bcFormTable/utils/onTableKey.ts +119 -0
  124. package/src/components/business/bcFormTable/utils/parseTable.ts +201 -0
  125. package/src/components/business/bcFormTable/utils/useButon.ts +20 -0
  126. package/src/components/business/bcFormTable/utils/useTableHeight.ts +44 -0
  127. package/src/components/business/bcPageConfig/bcPageConfig.vue +79 -0
  128. package/src/components/business/bcPageConfig/components/hsBtn/src/hsAttrBtn.vue +39 -0
  129. package/src/components/business/bcPageConfig/components/hsBtn/src/hsBtnConfigList.vue +45 -0
  130. package/src/components/business/bcPageConfig/components/hsBtn/src/hsBtnItemConfig.vue +32 -0
  131. package/src/components/business/bcPageConfig/components/hsBtn/src/hsBtnPanel.vue +45 -0
  132. package/src/components/business/bcPageConfig/components/hsBtn/useAttrBtn.ts +58 -0
  133. package/src/components/business/bcPageConfig/components/hsBtn/useBtnConfigList.ts +71 -0
  134. package/src/components/business/bcPageConfig/components/hsBtn/useBtnItemConfig.ts +35 -0
  135. package/src/components/business/bcPageConfig/components/hsExpand/src/hsExpand.vue +33 -0
  136. package/src/components/business/bcPageConfig/components/hsExpand/useExpand.ts +9 -0
  137. package/src/components/business/bcPageConfig/components/hsForm/src/hsAttrForm.vue +54 -0
  138. package/src/components/business/bcPageConfig/components/hsForm/src/hsFormConfig.vue +180 -0
  139. package/src/components/business/bcPageConfig/components/hsForm/src/hsFormConfigList.vue +45 -0
  140. package/src/components/business/bcPageConfig/components/hsForm/src/hsFormPanel.vue +64 -0
  141. package/src/components/business/bcPageConfig/components/hsForm/src/hsFormParse.vue +24 -0
  142. package/src/components/business/bcPageConfig/components/hsForm/useAttrForm.ts +108 -0
  143. package/src/components/business/bcPageConfig/components/hsForm/useFormListConfig.ts +69 -0
  144. package/src/components/business/bcPageConfig/components/hsForm/useFormParse.ts +120 -0
  145. package/src/components/business/bcPageConfig/components/hsSaveForm/saveFormConfig.ts +66 -0
  146. package/src/components/business/bcPageConfig/components/hsSaveForm/src/saveForm.vue +48 -0
  147. package/src/components/business/bcPageConfig/components/hsSaveForm/useSaveForm.ts +148 -0
  148. package/src/components/business/bcPageConfig/components/hsTables/src/hsAttrTable.vue +122 -0
  149. package/src/components/business/bcPageConfig/components/hsTables/src/hsRecursionConfig.vue +36 -0
  150. package/src/components/business/bcPageConfig/components/hsTables/src/hsTableConfig.vue +51 -0
  151. package/src/components/business/bcPageConfig/components/hsTables/src/hsTableConfigList.vue +46 -0
  152. package/src/components/business/bcPageConfig/components/hsTables/src/hsTablePanel.vue +68 -0
  153. package/src/components/business/bcPageConfig/components/hsTables/src/hsTableParse.vue +24 -0
  154. package/src/components/business/bcPageConfig/components/hsTables/useAttrTable.ts +218 -0
  155. package/src/components/business/bcPageConfig/components/hsTables/useTableConfigList.ts +77 -0
  156. package/src/components/business/bcPageConfig/components/hsTables/useTableParse.ts +78 -0
  157. package/src/components/business/bcPageConfig/default/apis.json +24712 -0
  158. package/src/components/business/bcPageConfig/default/baseBtnConfig.ts +256 -0
  159. package/src/components/business/bcPageConfig/default/baseFormConfig.ts +380 -0
  160. package/src/components/business/bcPageConfig/default/baseTableConfig.ts +2399 -0
  161. package/src/components/business/bcPageConfig/usePageConfig.ts +469 -0
  162. package/src/components/business/bcSelect/bcSelect.vue +50 -0
  163. package/src/components/business/bcSwitchSystems/bcSwitchSystems.vue +36 -0
  164. package/src/components/business/bcSwitchSystems/useSwitchSystems.ts +74 -0
  165. package/src/components/business/bcTable/bcTable.vue +63 -0
  166. package/src/components/business/bcTable/components/sortColumn/index.ts +19 -0
  167. package/src/components/business/bcTable/components/sortColumn/sortColumn.vue +107 -0
  168. package/src/components/business/bcTable/useTable.ts +51 -0
  169. package/src/components/business/bcTable/useTableHeight.ts +24 -0
  170. package/src/components/business/bcTreeSelect/bcTreeSelect.vue +12 -0
  171. package/src/components/business/cardID/cardID.vue +24 -0
  172. package/src/components/business/cardID/type.ts +0 -0
  173. package/src/components/business/cardID/useCardID.ts +0 -0
  174. package/src/components/component.ts +188 -0
  175. package/src/components/config/autocompleteAttrConfig/autocompleteAttrConfig.vue +26 -0
  176. package/src/components/config/autocompleteAttrConfig/config.ts +170 -0
  177. package/src/components/config/baseForm.vue +175 -0
  178. package/src/components/config/buttonAttrConfig/buttonAttrConfig.vue +26 -0
  179. package/src/components/config/buttonAttrConfig/config.ts +261 -0
  180. package/src/components/config/cascaderAttrConfig/cascaderAttrConfig.vue +26 -0
  181. package/src/components/config/cascaderAttrConfig/config.ts +287 -0
  182. package/src/components/config/cascaderPanelAttrConfig/cascaderPanelAttrConfig.vue +26 -0
  183. package/src/components/config/cascaderPanelAttrConfig/config.ts +278 -0
  184. package/src/components/config/checkboxAttrConfig/checkboxAttrConfig.vue +26 -0
  185. package/src/components/config/checkboxAttrConfig/config.ts +301 -0
  186. package/src/components/config/datePickerAttrConfig/config.ts +256 -0
  187. package/src/components/config/datePickerAttrConfig/datePickerAttrConfig.vue +26 -0
  188. package/src/components/config/inputAttrConfig/config.ts +322 -0
  189. package/src/components/config/inputAttrConfig/inputAttrConfig.vue +33 -0
  190. package/src/components/config/inputAttrConfig/inputEventConfig.vue +35 -0
  191. package/src/components/config/inputNumberAttrConfig/config.ts +177 -0
  192. package/src/components/config/inputNumberAttrConfig/inputNumberAttrConfig.vue +26 -0
  193. package/src/components/config/radioAttrConfig/config.ts +212 -0
  194. package/src/components/config/radioAttrConfig/radioAttrConfig.vue +26 -0
  195. package/src/components/config/selectAttrConfig/config.ts +478 -0
  196. package/src/components/config/selectAttrConfig/selectAttrConfig.vue +26 -0
  197. package/src/components/config/switchAttrConfig/config.ts +195 -0
  198. package/src/components/config/switchAttrConfig/switchAttrConfig.vue +26 -0
  199. package/src/components/config/treeSelectAttrConfig/config.ts +625 -0
  200. package/src/components/config/treeSelectAttrConfig/treeSelectAttrConfig.vue +26 -0
  201. package/src/components/config/type/formType.ts +25 -0
  202. package/src/components/config/uploadAttrConfig/config.ts +250 -0
  203. package/src/components/config/uploadAttrConfig/uploadAttrConfig.vue +26 -0
  204. package/src/components/iconSelector/index.vue +247 -0
  205. package/src/components/iconSelector/list.vue +84 -0
  206. package/src/components/svgIcon/index.vue +61 -0
  207. package/src/directive/authDirective.ts +40 -0
  208. package/src/directive/customDirective.ts +178 -0
  209. package/src/directive/index.ts +18 -0
  210. package/src/hooks/useCrypto.ts +36 -0
  211. package/src/hooks/useExpose.ts +60 -0
  212. package/src/layout/component/aside.vue +160 -0
  213. package/src/layout/component/columnsAside.vue +299 -0
  214. package/src/layout/component/header.vue +18 -0
  215. package/src/layout/component/main.vue +65 -0
  216. package/src/layout/footer/index.vue +25 -0
  217. package/src/layout/index.vue +53 -0
  218. package/src/layout/lockScreen/index.vue +352 -0
  219. package/src/layout/logo/index.vue +75 -0
  220. package/src/layout/main/classic.vue +73 -0
  221. package/src/layout/main/columns.vue +73 -0
  222. package/src/layout/main/defaults.vue +73 -0
  223. package/src/layout/main/transverse.vue +60 -0
  224. package/src/layout/navBars/index.vue +35 -0
  225. package/src/layout/navBars/tagsView/contextmenu.vue +133 -0
  226. package/src/layout/navBars/tagsView/tagsView.vue +737 -0
  227. package/src/layout/navBars/topBar/breadcrumb.vue +146 -0
  228. package/src/layout/navBars/topBar/closeFull.vue +53 -0
  229. package/src/layout/navBars/topBar/index.vue +107 -0
  230. package/src/layout/navBars/topBar/search.vue +123 -0
  231. package/src/layout/navBars/topBar/setings.vue +789 -0
  232. package/src/layout/navBars/topBar/user.vue +222 -0
  233. package/src/layout/navBars/topBar/userNews.vue +107 -0
  234. package/src/layout/navMenu/horizontal.vue +138 -0
  235. package/src/layout/navMenu/subItem.vue +49 -0
  236. package/src/layout/navMenu/vertical.vue +100 -0
  237. package/src/layout/routerView/iframes.vue +101 -0
  238. package/src/layout/routerView/link.vue +93 -0
  239. package/src/layout/routerView/parent.vue +104 -0
  240. package/src/layout/upgrade/index.vue +147 -0
  241. package/src/main.ts +70 -0
  242. package/src/router/backEnd.ts +173 -0
  243. package/src/router/frontEnd.ts +155 -0
  244. package/src/router/index.ts +138 -0
  245. package/src/router/route.ts +94 -0
  246. package/src/stores/index.ts +8 -0
  247. package/src/stores/keepAliveNames.ts +38 -0
  248. package/src/stores/requestOldRoutes.ts +16 -0
  249. package/src/stores/routesList.ts +26 -0
  250. package/src/stores/tagsViewRoutes.ts +23 -0
  251. package/src/stores/themeConfig.ts +142 -0
  252. package/src/stores/userInfo.ts +65 -0
  253. package/src/style/index.scss +0 -0
  254. package/src/style/tailwind.css +29 -0
  255. package/src/theme/app.scss +333 -0
  256. package/src/theme/common/transition.scss +147 -0
  257. package/src/theme/dark.scss +255 -0
  258. package/src/theme/element.scss +321 -0
  259. package/src/theme/iconSelector.scss +31 -0
  260. package/src/theme/index.scss +8 -0
  261. package/src/theme/loading.scss +51 -0
  262. package/src/theme/media/chart.scss +94 -0
  263. package/src/theme/media/cityLinkage.scss +10 -0
  264. package/src/theme/media/date.scss +25 -0
  265. package/src/theme/media/dialog.scss +12 -0
  266. package/src/theme/media/error.scss +45 -0
  267. package/src/theme/media/form.scss +31 -0
  268. package/src/theme/media/home.scss +23 -0
  269. package/src/theme/media/index.scss +15 -0
  270. package/src/theme/media/layout.scss +63 -0
  271. package/src/theme/media/login.scss +74 -0
  272. package/src/theme/media/media.scss +13 -0
  273. package/src/theme/media/pagination.scss +15 -0
  274. package/src/theme/media/personal.scss +16 -0
  275. package/src/theme/media/scrollbar.scss +56 -0
  276. package/src/theme/media/tagsView.scss +11 -0
  277. package/src/theme/mixins/index.scss +56 -0
  278. package/src/theme/other.scss +36 -0
  279. package/src/theme/tableTool.scss +27 -0
  280. package/src/theme/waves.scss +101 -0
  281. package/src/types/auth.d.ts +44 -0
  282. package/src/types/axios.d.ts +13 -0
  283. package/src/types/components.d.ts +30 -0
  284. package/src/types/customData.d.ts +163 -0
  285. package/src/types/form.ts +68 -0
  286. package/src/types/formItem/autocomplete.ts +43 -0
  287. package/src/types/formItem/button.ts +39 -0
  288. package/src/types/formItem/input.ts +66 -0
  289. package/src/types/formItem/inputNumber.ts +42 -0
  290. package/src/types/formItem/selelct.ts +54 -0
  291. package/src/types/formItem/treeSelect.ts +37 -0
  292. package/src/types/formTable.d.ts +210 -0
  293. package/src/types/global.d.ts +118 -0
  294. package/src/types/layout.d.ts +59 -0
  295. package/src/types/mitt.d.ts +38 -0
  296. package/src/types/pinia.d.ts +92 -0
  297. package/src/types/views.d.ts +331 -0
  298. package/src/utils/arrayOperation.ts +65 -0
  299. package/src/utils/authFunction.ts +38 -0
  300. package/src/utils/build.ts +124 -0
  301. package/src/utils/commonFunction.ts +64 -0
  302. package/src/utils/formatTime.ts +137 -0
  303. package/src/utils/getDataType.ts +136 -0
  304. package/src/utils/getStyleSheets.ts +101 -0
  305. package/src/utils/loading.ts +44 -0
  306. package/src/utils/mitt.ts +8 -0
  307. package/src/utils/other.ts +214 -0
  308. package/src/utils/request.ts +82 -0
  309. package/src/utils/setIconfont.ts +48 -0
  310. package/src/utils/showMessage.ts +57 -0
  311. package/src/utils/showMessageBox.ts +39 -0
  312. package/src/utils/showNotification.ts +50 -0
  313. package/src/utils/showPopup.ts +81 -0
  314. package/src/utils/storage.ts +137 -0
  315. package/src/utils/theme.ts +65 -0
  316. package/src/utils/toolsValidate.ts +370 -0
  317. package/src/utils/watermark.ts +47 -0
  318. package/src/views/error/401.vue +88 -0
  319. package/src/views/error/404.vue +89 -0
  320. package/src/views/home/index.vue +62 -0
  321. package/src/views/login/component/account.vue +172 -0
  322. package/src/views/login/component/mobile.vue +72 -0
  323. package/src/views/login/component/scan.vue +63 -0
  324. package/src/views/login/index.vue +254 -0
  325. package/src/views/system/auth/index.vue +48 -0
  326. package/src/views/system/auth/list.ts +50 -0
  327. package/src/views/system/auth/useAuth.ts +34 -0
  328. package/src/views/system/dept/dialog.vue +167 -0
  329. package/src/views/system/dept/index.vue +135 -0
  330. package/src/views/system/dic/dialog.vue +150 -0
  331. package/src/views/system/dic/index.vue +132 -0
  332. package/src/views/system/form/data.json +360 -0
  333. package/src/views/system/form/index.vue +24 -0
  334. package/src/views/system/formSetting/components/hsBtn/src/hsAttrBtn.vue +58 -0
  335. package/src/views/system/formSetting/components/hsBtn/src/hsBtnConfigList.vue +45 -0
  336. package/src/views/system/formSetting/components/hsBtn/src/hsBtnPanel.vue +51 -0
  337. package/src/views/system/formSetting/components/hsBtn/useAttrBtn.ts +129 -0
  338. package/src/views/system/formSetting/components/hsBtn/useBtnConfigList.ts +73 -0
  339. package/src/views/system/formSetting/components/hsExpand/src/hsExpand.vue +27 -0
  340. package/src/views/system/formSetting/components/hsExpand/useExpand.ts +9 -0
  341. package/src/views/system/formSetting/components/hsForm/src/hsAttrForm.vue +124 -0
  342. package/src/views/system/formSetting/components/hsForm/src/hsFormConfig.vue +180 -0
  343. package/src/views/system/formSetting/components/hsForm/src/hsFormConfigList.vue +45 -0
  344. package/src/views/system/formSetting/components/hsForm/src/hsFormPanel.vue +152 -0
  345. package/src/views/system/formSetting/components/hsForm/src/hsFormParse.vue +33 -0
  346. package/src/views/system/formSetting/components/hsForm/useAttrForm.ts +109 -0
  347. package/src/views/system/formSetting/components/hsForm/useFormListConfig.ts +70 -0
  348. package/src/views/system/formSetting/components/hsPageTree/configData.ts +3700 -0
  349. package/src/views/system/formSetting/components/hsPageTree/src/hsPageTree.vue +30 -0
  350. package/src/views/system/formSetting/components/hsPageTree/usePageTree.ts +50 -0
  351. package/src/views/system/formSetting/components/hsSaveForm/saveFormConfig.ts +66 -0
  352. package/src/views/system/formSetting/components/hsSaveForm/src/saveForm.vue +47 -0
  353. package/src/views/system/formSetting/components/hsSaveForm/useSaveForm.ts +122 -0
  354. package/src/views/system/formSetting/components/hsTables/src/hsAttrTable.vue +91 -0
  355. package/src/views/system/formSetting/components/hsTables/src/hsRecursionConfig.vue +36 -0
  356. package/src/views/system/formSetting/components/hsTables/src/hsTableConfig.vue +39 -0
  357. package/src/views/system/formSetting/components/hsTables/src/hsTableConfigList.vue +45 -0
  358. package/src/views/system/formSetting/components/hsTables/src/hsTablePanel.vue +56 -0
  359. package/src/views/system/formSetting/components/hsTables/src/hsTableParse.vue +29 -0
  360. package/src/views/system/formSetting/components/hsTables/useAttrTable.ts +125 -0
  361. package/src/views/system/formSetting/components/hsTables/useTableConfigList.ts +77 -0
  362. package/src/views/system/formSetting/components/selectConfig/config.ts +476 -0
  363. package/src/views/system/formSetting/components/selectConfig/selectConfig.vue +30 -0
  364. package/src/views/system/formSetting/data.json +360 -0
  365. package/src/views/system/formSetting/default/baseBtnConfig.ts +216 -0
  366. package/src/views/system/formSetting/default/baseFormConfig.ts +567 -0
  367. package/src/views/system/formSetting/default/baseTableConfig.ts +2353 -0
  368. package/src/views/system/formSetting/formConfig.vue +108 -0
  369. package/src/views/system/formSetting/index.vue +35 -0
  370. package/src/views/system/formSetting/menuType.d.ts +12 -0
  371. package/src/views/system/formSetting/panelConfig.json +164 -0
  372. package/src/views/system/formSetting/useForm.ts +89 -0
  373. package/src/views/system/formSetting/useFormConfig.ts +192 -0
  374. package/src/views/system/menu/dialog.vue +285 -0
  375. package/src/views/system/menu/index.vue +180 -0
  376. package/src/views/system/page/components/hsPageTree/configData.ts +3700 -0
  377. package/src/views/system/page/components/hsPageTree/src/hsPageTree.vue +30 -0
  378. package/src/views/system/page/components/hsPageTree/usePageTree.ts +49 -0
  379. package/src/views/system/page/index.vue +32 -0
  380. package/src/views/system/page/menuType.d.ts +12 -0
  381. package/src/views/system/page/usePage.ts +125 -0
  382. package/src/views/system/role/dialog.vue +236 -0
  383. package/src/views/system/role/index.vue +146 -0
  384. package/src/views/system/table/data.json +747 -0
  385. package/src/views/system/table/formate.js +49 -0
  386. package/src/views/system/table/index.vue +53 -0
  387. package/src/views/system/user/dialog.vue +187 -0
  388. package/src/views/system/user/index.vue +161 -0
  389. package/src/views/test/test/components/hsBtn/src/hsAttrBtn.vue +58 -0
  390. package/src/views/test/test/components/hsBtn/src/hsBtnConfigList.vue +45 -0
  391. package/src/views/test/test/components/hsBtn/src/hsBtnPanel.vue +51 -0
  392. package/src/views/test/test/components/hsBtn/useAttrBtn.ts +129 -0
  393. package/src/views/test/test/components/hsBtn/useBtnConfigList.ts +73 -0
  394. package/src/views/test/test/components/hsExpand/src/hsExpand.vue +27 -0
  395. package/src/views/test/test/components/hsExpand/useExpand.ts +9 -0
  396. package/src/views/test/test/components/hsForm/src/hsAttrForm.vue +124 -0
  397. package/src/views/test/test/components/hsForm/src/hsFormConfig.vue +180 -0
  398. package/src/views/test/test/components/hsForm/src/hsFormConfigList.vue +45 -0
  399. package/src/views/test/test/components/hsForm/src/hsFormPanel.vue +152 -0
  400. package/src/views/test/test/components/hsForm/src/hsFormParse.vue +33 -0
  401. package/src/views/test/test/components/hsForm/useAttrForm.ts +109 -0
  402. package/src/views/test/test/components/hsForm/useFormListConfig.ts +70 -0
  403. package/src/views/test/test/components/hsSaveForm/saveFormConfig.ts +66 -0
  404. package/src/views/test/test/components/hsSaveForm/src/saveForm.vue +47 -0
  405. package/src/views/test/test/components/hsSaveForm/useSaveForm.ts +122 -0
  406. package/src/views/test/test/components/hsTables/src/hsAttrTable.vue +91 -0
  407. package/src/views/test/test/components/hsTables/src/hsRecursionConfig.vue +36 -0
  408. package/src/views/test/test/components/hsTables/src/hsTableConfig.vue +39 -0
  409. package/src/views/test/test/components/hsTables/src/hsTableConfigList.vue +45 -0
  410. package/src/views/test/test/components/hsTables/src/hsTablePanel.vue +56 -0
  411. package/src/views/test/test/components/hsTables/src/hsTableParse.vue +29 -0
  412. package/src/views/test/test/components/hsTables/useAttrTable.ts +125 -0
  413. package/src/views/test/test/components/hsTables/useTableConfigList.ts +77 -0
  414. package/src/views/test/test/components/selectConfig/config.ts +476 -0
  415. package/src/views/test/test/components/selectConfig/selectConfig.vue +30 -0
  416. package/src/views/test/test/data.json +360 -0
  417. package/src/views/test/test/default/baseBtnConfig.ts +216 -0
  418. package/src/views/test/test/default/baseFormConfig.ts +567 -0
  419. package/src/views/test/test/default/baseTableConfig.ts +2353 -0
  420. package/src/views/test/test/formConfig.vue +102 -0
  421. package/src/views/test/test/test.vue +28 -0
  422. package/src/views/test/test/test3.vue +24 -0
  423. package/src/views/test/test/test4.vue +107 -0
  424. package/src/views/test/test/test/345/211/257/346/234/254.vue +2424 -0
  425. package/src/views/test/test/useFormConfig.ts +192 -0
  426. package/src/views/test/test2/test2.vue +17 -0
  427. package/src/views/test/test3/test.vue +20 -0
  428. package/tailwind.config.js +12 -0
  429. package/tsconfig.json +75 -0
  430. package/vite.config.ts +123 -0
@@ -0,0 +1,3700 @@
1
+ import IFormTable from '/@/types/formTable';
2
+
3
+ // 菜单配置数据
4
+ const menuConfigData: Record<string, IFormTable.Data | string>[] = [
5
+ {
6
+ config_type: '1',
7
+ config_unique_id: '1709531789021',
8
+ config_name: '666',
9
+ btns: [
10
+ {
11
+ id: '1709531648633',
12
+ data: {
13
+ name: '新增',
14
+ key: 'add',
15
+ isApply: true,
16
+ isSlot: false,
17
+ isShow: false,
18
+ size: 'small',
19
+ btnIcon: 'ele-CirclePlusFilled',
20
+ type: 'primary',
21
+ plain: false,
22
+ text: false,
23
+ bg: false,
24
+ link: false,
25
+ round: false,
26
+ circle: false,
27
+ loading: false,
28
+ 'loading-icon': 'Loading',
29
+ disabled: false,
30
+ autofocus: false,
31
+ 'native-type': 'button',
32
+ dark: false,
33
+ tag: 'button',
34
+ color: '#CD2D2D',
35
+ textColor: '#00FFAA',
36
+ },
37
+ config: {
38
+ title: { subTitle: '按钮配置' },
39
+ visible: true,
40
+ list: [
41
+ { prop: 'name', label: '按钮名称', el: 'hs-input', slotValue: 'name', tooltips: '按钮名称' },
42
+ { prop: 'key', label: '按钮key值', el: 'hs-input', tooltips: '按钮key值' },
43
+ { prop: 'isApply', label: '是否启用', el: 'hs-switch', tooltips: '是否启用' },
44
+ { prop: 'isSlot', label: '插槽名称', el: 'hs-switch', tooltips: '是否自定义插槽, 如果用插槽则赋值,不用插槽则清空' },
45
+ { prop: 'isShow', label: '是否显示', el: 'hs-switch', tooltips: '是否显示' },
46
+ { prop: 'color', label: '自定义颜色', el: 'hs-color-picker' },
47
+ { prop: 'textColor', label: '按钮文本色', el: 'hs-color-picker' },
48
+ { prop: 'btnIcon', label: '按钮图标', el: 'hs-input', slotValue: 'btnIcon' },
49
+ {
50
+ prop: 'iconPosition',
51
+ label: '图标位置',
52
+ el: 'hs-select',
53
+ cel: 'hs-option',
54
+ op: [
55
+ { label: '左边', value: 'left' },
56
+ { label: '右边', value: 'right' },
57
+ ],
58
+ },
59
+ { prop: 'fnName', label: '方法名称', el: 'hs-input', type: 'textarea' },
60
+ {
61
+ prop: 'size',
62
+ label: '尺寸',
63
+ el: 'hs-select',
64
+ cel: 'hs-option',
65
+ op: [
66
+ { label: '大', value: 'large' },
67
+ { label: '默认', value: 'default' },
68
+ { label: '小', value: 'small' },
69
+ ],
70
+ },
71
+ {
72
+ prop: 'type',
73
+ label: '类型',
74
+ el: 'hs-select',
75
+ cel: 'hs-option',
76
+ op: [
77
+ { label: 'primary', value: 'primary' },
78
+ { label: 'success', value: 'success' },
79
+ { label: 'warning', value: 'warning' },
80
+ { label: 'danger', value: 'danger' },
81
+ { label: 'info', value: 'info' },
82
+ ],
83
+ },
84
+ { prop: 'plain', label: '朴素按钮', el: 'hs-switch', tooltips: '是否为朴素按钮' },
85
+ { prop: 'text', label: '文字按钮', el: 'hs-switch', tooltips: '是否为文字按钮' },
86
+ { prop: 'bg', label: '文字按钮背景颜色', el: 'hs-switch', tooltips: '是否显示文字按钮背景颜色' },
87
+ { prop: 'link', label: '链接按钮', el: 'hs-switch', tooltips: '是否为链接按钮' },
88
+ { prop: 'round', label: '圆角按钮', el: 'hs-switch', tooltips: '是否为圆角按钮' },
89
+ { prop: 'circle', label: '圆形按钮', el: 'hs-switch', tooltips: '是否为圆形按钮' },
90
+ { prop: 'loading', label: '加载状态', el: 'hs-switch', tooltips: '是否为加载中状态' },
91
+ { prop: 'loading-icon', label: '加载状态图标', el: 'hs-input', tooltips: '自定义加载中状态图标组件' },
92
+ { prop: 'disabled', label: '是否禁用', el: 'hs-switch', tooltips: '按钮是否为禁用状态' },
93
+ { prop: 'icon', label: '图标组件', el: 'hs-input', tooltips: '图标组件' },
94
+ { prop: 'autofocus', label: '自动聚焦', el: 'hs-switch', tooltips: '原生 autofocus 属性' },
95
+ {
96
+ prop: 'native-type',
97
+ label: '原生 type 属性',
98
+ el: 'hs-select',
99
+ cel: 'hs-option',
100
+ op: [
101
+ { label: '按钮', value: 'button' },
102
+ { label: '提交', value: 'submit' },
103
+ { label: '重置', value: 'reset' },
104
+ ],
105
+ tooltips: '原生 type 属性',
106
+ },
107
+ { prop: 'auto-insert-space', label: '中文字符之间插入空格', el: 'hs-switch', tooltips: '自动在两个中文字符之间插入空格' },
108
+ { prop: 'color', label: '按钮颜色', el: 'hs-input', tooltips: '自定义按钮颜色, 并自动计算 hover 和 active 触发后的颜色' },
109
+ { prop: 'dark', label: 'dark 模式', el: 'hs-switch', tooltips: 'dark 模式, 意味着自动设置 color 为 dark 模式的颜色' },
110
+ { prop: 'tag', label: '自定义元素标签', el: 'hs-input', tooltips: '自定义元素标签' },
111
+ ],
112
+ rules: { name: [{ required: true, message: '请输入按钮名称' }], key: [{ required: true, message: '请输入按钮key值' }] },
113
+ },
114
+ },
115
+ {
116
+ id: '1709531673852',
117
+ data: {
118
+ name: '查询',
119
+ key: 'search',
120
+ isApply: true,
121
+ isSlot: false,
122
+ isShow: false,
123
+ size: 'small',
124
+ btnIcon: 'iconfont icon-shuaxin',
125
+ type: 'primary',
126
+ plain: false,
127
+ text: false,
128
+ bg: false,
129
+ link: false,
130
+ round: false,
131
+ circle: false,
132
+ loading: false,
133
+ 'loading-icon': 'Loading',
134
+ disabled: false,
135
+ autofocus: false,
136
+ 'native-type': 'button',
137
+ dark: false,
138
+ tag: 'button',
139
+ color: '#2FAA62',
140
+ textColor: '#FFEA00',
141
+ },
142
+ config: {
143
+ title: { subTitle: '按钮配置' },
144
+ visible: true,
145
+ list: [
146
+ { prop: 'name', label: '按钮名称', el: 'hs-input', slotValue: 'name', tooltips: '按钮名称' },
147
+ { prop: 'key', label: '按钮key值', el: 'hs-input', tooltips: '按钮key值' },
148
+ { prop: 'isApply', label: '是否启用', el: 'hs-switch', tooltips: '是否启用' },
149
+ { prop: 'isSlot', label: '插槽名称', el: 'hs-switch', tooltips: '是否自定义插槽, 如果用插槽则赋值,不用插槽则清空' },
150
+ { prop: 'isShow', label: '是否显示', el: 'hs-switch', tooltips: '是否显示' },
151
+ { prop: 'color', label: '自定义颜色', el: 'hs-color-picker' },
152
+ { prop: 'textColor', label: '按钮文本色', el: 'hs-color-picker' },
153
+ { prop: 'btnIcon', label: '按钮图标', el: 'hs-input', slotValue: 'btnIcon' },
154
+ {
155
+ prop: 'iconPosition',
156
+ label: '图标位置',
157
+ el: 'hs-select',
158
+ cel: 'hs-option',
159
+ op: [
160
+ { label: '左边', value: 'left' },
161
+ { label: '右边', value: 'right' },
162
+ ],
163
+ },
164
+ { prop: 'fnName', label: '方法名称', el: 'hs-input', type: 'textarea' },
165
+ {
166
+ prop: 'size',
167
+ label: '尺寸',
168
+ el: 'hs-select',
169
+ cel: 'hs-option',
170
+ op: [
171
+ { label: '大', value: 'large' },
172
+ { label: '默认', value: 'default' },
173
+ { label: '小', value: 'small' },
174
+ ],
175
+ },
176
+ {
177
+ prop: 'type',
178
+ label: '类型',
179
+ el: 'hs-select',
180
+ cel: 'hs-option',
181
+ op: [
182
+ { label: 'primary', value: 'primary' },
183
+ { label: 'success', value: 'success' },
184
+ { label: 'warning', value: 'warning' },
185
+ { label: 'danger', value: 'danger' },
186
+ { label: 'info', value: 'info' },
187
+ ],
188
+ },
189
+ { prop: 'plain', label: '朴素按钮', el: 'hs-switch', tooltips: '是否为朴素按钮' },
190
+ { prop: 'text', label: '文字按钮', el: 'hs-switch', tooltips: '是否为文字按钮' },
191
+ { prop: 'bg', label: '文字按钮背景颜色', el: 'hs-switch', tooltips: '是否显示文字按钮背景颜色' },
192
+ { prop: 'link', label: '链接按钮', el: 'hs-switch', tooltips: '是否为链接按钮' },
193
+ { prop: 'round', label: '圆角按钮', el: 'hs-switch', tooltips: '是否为圆角按钮' },
194
+ { prop: 'circle', label: '圆形按钮', el: 'hs-switch', tooltips: '是否为圆形按钮' },
195
+ { prop: 'loading', label: '加载状态', el: 'hs-switch', tooltips: '是否为加载中状态' },
196
+ { prop: 'loading-icon', label: '加载状态图标', el: 'hs-input', tooltips: '自定义加载中状态图标组件' },
197
+ { prop: 'disabled', label: '是否禁用', el: 'hs-switch', tooltips: '按钮是否为禁用状态' },
198
+ { prop: 'icon', label: '图标组件', el: 'hs-input', tooltips: '图标组件' },
199
+ { prop: 'autofocus', label: '自动聚焦', el: 'hs-switch', tooltips: '原生 autofocus 属性' },
200
+ {
201
+ prop: 'native-type',
202
+ label: '原生 type 属性',
203
+ el: 'hs-select',
204
+ cel: 'hs-option',
205
+ op: [
206
+ { label: '按钮', value: 'button' },
207
+ { label: '提交', value: 'submit' },
208
+ { label: '重置', value: 'reset' },
209
+ ],
210
+ tooltips: '原生 type 属性',
211
+ },
212
+ { prop: 'auto-insert-space', label: '中文字符之间插入空格', el: 'hs-switch', tooltips: '自动在两个中文字符之间插入空格' },
213
+ { prop: 'color', label: '按钮颜色', el: 'hs-input', tooltips: '自定义按钮颜色, 并自动计算 hover 和 active 触发后的颜色' },
214
+ { prop: 'dark', label: 'dark 模式', el: 'hs-switch', tooltips: 'dark 模式, 意味着自动设置 color 为 dark 模式的颜色' },
215
+ { prop: 'tag', label: '自定义元素标签', el: 'hs-input', tooltips: '自定义元素标签' },
216
+ ],
217
+ rules: { name: [{ required: true, message: '请输入按钮名称' }], key: [{ required: true, message: '请输入按钮key值' }] },
218
+ },
219
+ },
220
+ ],
221
+ tables: [
222
+ {
223
+ id: 'table_1709531555471',
224
+ baseData: {
225
+ id: '1709531714104',
226
+ tableName: '表格配置名称',
227
+ is_slot_loading: false,
228
+ is_slot_empty: false,
229
+ is_apply_page: true,
230
+ table_page_data: {
231
+ loading: false,
232
+ currentPage: 1,
233
+ pageSize: 10,
234
+ total: 0,
235
+ pagerCount: 7,
236
+ pageSizes: 'string=[10,15,20,50,100]',
237
+ align: 'right',
238
+ border: false,
239
+ background: false,
240
+ perfect: false,
241
+ autoHidden: false,
242
+ },
243
+ height: 'auto',
244
+ stripe: false,
245
+ border: 'default',
246
+ round: false,
247
+ size: 'small',
248
+ loading: false,
249
+ align: 'left',
250
+ headerAlign: 'left',
251
+ footerAlign: 'left',
252
+ showHeader: true,
253
+ showFooter: false,
254
+ columnConfig: { useKey: false, isCurrent: false, isHover: true, resizable: false, maxFixedSize: 4 },
255
+ rowConfig: { useKey: false, keyField: '_X_ROW_KEY', isCurrent: true, isHover: true },
256
+ resizeConfig: { refreshDelay: 250 },
257
+ resizableConfig: { minWidth: 'auto' },
258
+ seqConfig: {},
259
+ sortConfig: { defaultSort: {}, multiple: false, chronological: false, remote: false, showIcon: true },
260
+ filterConfig: { remote: false, filterMethod: '', showIcon: true },
261
+ radioConfig: { strict: true, reserve: false, highlight: false },
262
+ checkboxConfig: {},
263
+ tooltipConfig: {},
264
+ expandConfig: { expandAll: false, accordion: false, trigger: 'default', lazy: false, reserve: false, showIcon: true },
265
+ treeConfig: {
266
+ transform: false,
267
+ rowField: 'id',
268
+ parentField: 'parentId',
269
+ childrenField: 'children',
270
+ indent: 20,
271
+ showLine: false,
272
+ expandAll: false,
273
+ accordion: false,
274
+ trigger: 'default',
275
+ lazy: false,
276
+ hasChildField: 'hasChild',
277
+ reserve: false,
278
+ showIcon: true,
279
+ },
280
+ editConfig: {
281
+ trigger: 'click',
282
+ enabled: true,
283
+ mode: 'cell',
284
+ showIcon: true,
285
+ showStatus: false,
286
+ showUpdateStatus: false,
287
+ showInsertStatus: false,
288
+ showAsterisk: true,
289
+ autoClear: true,
290
+ },
291
+ validConfig: { autoPos: true, showMessage: true },
292
+ editRules: {},
293
+ emptyRender: {},
294
+ loadingConfig: {},
295
+ customConfig: {},
296
+ scrollX: {},
297
+ scrollY: {},
298
+ },
299
+ tableConfig: [
300
+ {
301
+ id: '1709531714103',
302
+ data: {
303
+ type: 'seq',
304
+ field: '',
305
+ title: '',
306
+ isSlot: false,
307
+ isApply: true,
308
+ isShow: true,
309
+ returnValueType: '',
310
+ minWidth: '100',
311
+ resizable: false,
312
+ visible: true,
313
+ sortType: 'auto',
314
+ filterMultiple: true,
315
+ cellType: 'auto',
316
+ treeNode: false,
317
+ filters: [],
318
+ filterRender: {},
319
+ titlePrefix: {},
320
+ cellRender: {},
321
+ editRender: {},
322
+ contentRender: {},
323
+ },
324
+ list: [
325
+ {
326
+ prop: 'type',
327
+ label: '列的类型',
328
+ tooltip: '列的类型(部分功能需要设置 columnConfig.useKey',
329
+ type: '',
330
+ el: 'hs-select',
331
+ cel: 'hs-option',
332
+ op: [
333
+ { label: '序号', value: 'seq' },
334
+ { label: '复选框', value: 'checkbox' },
335
+ { label: '单选框', value: 'radio' },
336
+ { label: '展开行', value: 'expand' },
337
+ { label: 'HTML 标签', value: 'html' },
338
+ ],
339
+ },
340
+ { prop: 'title', label: '列标题', type: '', tooltip: '列标题(支持开启国际化)', el: 'hs-input', slotValue: 'title' },
341
+ {
342
+ prop: 'field',
343
+ label: '列字段名',
344
+ tooltip: '列字段名(注:属性层级越深,渲染性能就越差,例如:aa.bb.cc.dd.ee)',
345
+ type: '',
346
+ el: 'hs-input',
347
+ },
348
+ {
349
+ prop: 'returnValueType',
350
+ label: '返回值类型',
351
+ el: 'hs-select',
352
+ cel: 'hs-option',
353
+ op: [
354
+ { label: 'String', value: 'string' },
355
+ { label: 'Number', value: 'number' },
356
+ { label: 'String|Number', value: 'string|number' },
357
+ { label: 'Boolean', value: 'boolean' },
358
+ ],
359
+ },
360
+ { prop: 'isSlot', label: '是否自定义插槽', el: 'hs-switch', tooltip: '下拉选择,自定义模板,选择的名称就是模板名称' },
361
+ { prop: 'isApply', label: '是否启用', el: 'hs-switch' },
362
+ { prop: 'isShow', label: '是否显示', el: 'hs-switch' },
363
+ {
364
+ prop: 'width',
365
+ label: '列宽度',
366
+ type: '',
367
+ tooltip: '列宽度(如果为空则均匀分配剩余宽度,如果全部列固定了,可能会存在宽屏下不会铺满,可以配合 % 或者 min-width 布局)',
368
+ el: 'hs-input',
369
+ },
370
+ { prop: 'minWidth', label: '最小列宽度', type: '', tooltip: '最小列宽度;会自动将剩余空间按比例分配', el: 'hs-input' },
371
+ { prop: 'resizable', label: '是否允许调整列宽', type: '', tooltip: '列是否允许拖动列宽调整大小', el: 'hs-switch' },
372
+ { prop: 'visible', label: '默认是否显示', type: '', el: 'hs-switch' },
373
+ {
374
+ prop: 'fixed',
375
+ label: '列固定位置',
376
+ tooltip: '将列固定在左侧或者右侧(注意:固定列应该放在左右两侧的位置)',
377
+ type: '',
378
+ el: 'hs-select',
379
+ cel: 'hs-option',
380
+ op: [
381
+ { label: '不固定', value: '' },
382
+ { label: '固定左侧', value: 'left' },
383
+ { label: '固定右侧', value: 'right' },
384
+ ],
385
+ },
386
+ {
387
+ prop: 'align',
388
+ label: '列对齐方式',
389
+ type: '',
390
+ el: 'hs-select',
391
+ cel: 'hs-option',
392
+ op: [
393
+ { label: '左对齐', value: 'left' },
394
+ { label: '居中对齐', value: 'center' },
395
+ { label: '右对齐', value: 'right' },
396
+ ],
397
+ },
398
+ {
399
+ prop: 'headerAlign',
400
+ label: '表头列的对齐方式',
401
+ el: 'hs-select',
402
+ cel: 'hs-option',
403
+ op: [
404
+ { label: '左对齐', value: 'left' },
405
+ { label: '居中对齐', value: 'center' },
406
+ { label: '右对齐', value: 'right' },
407
+ ],
408
+ },
409
+ {
410
+ prop: 'footerAlign',
411
+ label: '表尾列的对齐方式',
412
+ el: 'hs-select',
413
+ cel: 'hs-option',
414
+ op: [
415
+ { label: '左对齐', value: 'left' },
416
+ { label: '居中对齐', value: 'center' },
417
+ { label: '右对齐', value: 'right' },
418
+ ],
419
+ },
420
+ {
421
+ prop: 'showOverflow',
422
+ label: '当内容过长时显示为省略号',
423
+ el: 'hs-select',
424
+ cel: 'hs-option',
425
+ op: [
426
+ { label: '只显示省略号', value: 'ellipsis' },
427
+ { label: '显示原生title', value: 'title' },
428
+ { label: '显示tooltip提示', value: 'tooltip' },
429
+ ],
430
+ },
431
+ {
432
+ prop: 'showHeaderOverflow',
433
+ label: '当表头内容过长时显示为省略号',
434
+ el: 'hs-select',
435
+ cel: 'hs-option',
436
+ op: [
437
+ { label: '只显示省略号', value: 'ellipsis' },
438
+ { label: '显示原生title', value: 'title' },
439
+ { label: '显示tooltip提示', value: 'tooltip' },
440
+ ],
441
+ },
442
+ {
443
+ prop: 'showFooterOverflow',
444
+ label: '当表尾内容过长时显示为省略号',
445
+ el: 'hs-select',
446
+ cel: 'hs-option',
447
+ op: [
448
+ { label: '只显示省略号', value: 'ellipsis' },
449
+ { label: '显示原生title', value: 'title' },
450
+ { label: '显示tooltip提示', value: 'tooltip' },
451
+ ],
452
+ },
453
+ { prop: 'className', label: '给单元格附加 className', type: 'textarea', el: 'hs-input' },
454
+ { prop: 'headerClassName', label: '给表头的单元格附加 className', type: 'textarea', el: 'hs-input' },
455
+ { prop: 'footerClassName', label: '给表尾的单元格附加 className', type: 'textarea', el: 'hs-input' },
456
+ { prop: 'formatter', label: '格式化显示内容', type: 'textarea', el: 'hs-input' },
457
+ { prop: 'sortable', label: '是否允许列排序', tooltip: '数据排序,是否允许列排序', type: '', el: 'hs-switch' },
458
+ {
459
+ prop: 'sortBy',
460
+ label: '指定排序字段',
461
+ tooltip: '数据排序,只对 sortable 有效,指定排序的字段(当值 formatter 格式化后,可以设置该字段,使用值进行排序)',
462
+ type: 'textarea',
463
+ el: 'hs-input',
464
+ },
465
+ {
466
+ prop: 'sortType',
467
+ label: '排序的字段类型',
468
+ tooltip: '数据排序,排序的字段类型,比如字符串转数值等',
469
+ type: '',
470
+ el: 'hs-select',
471
+ cel: 'hs-option',
472
+ op: [
473
+ { label: 'auto', value: 'auto' },
474
+ { label: '数值', value: 'number' },
475
+ { label: '字符串', value: 'string' },
476
+ ],
477
+ },
478
+ {
479
+ prop: 'filterMultiple',
480
+ label: '筛选是否允许多选',
481
+ tooltip: '数据筛选,只对 filters 有效,筛选是否允许多选',
482
+ type: '',
483
+ el: 'hs-switch',
484
+ },
485
+ {
486
+ prop: 'filterMethod',
487
+ label: '列的筛选方法',
488
+ tooltip: '数据筛选,只对 filters 有效,列的筛选方法,该方法的返回值用来决定该行是否显示',
489
+ type: 'textarea',
490
+ el: 'hs-input',
491
+ },
492
+ {
493
+ prop: 'filterResetMethod',
494
+ label: '自定义筛选重置方法',
495
+ tooltip: '数据筛选,只对 filters 有效,自定义筛选重置方法',
496
+ type: 'textarea',
497
+ el: 'hs-input',
498
+ },
499
+ {
500
+ prop: 'filterRecoverMethod',
501
+ label: '自定义筛选复原方法',
502
+ tooltip: '数据筛选,只对 filters 有效,自定义筛选复原方法(使用自定义筛选时可能会用到)',
503
+ type: 'textarea',
504
+ el: 'hs-input',
505
+ },
506
+ {
507
+ prop: 'cellType',
508
+ label: '单元格值类型',
509
+ tooltip: '只对特定功能有效,单元格值类型(例如:导出数据类型设置)',
510
+ type: '',
511
+ el: 'hs-select',
512
+ cel: 'hs-option',
513
+ op: [
514
+ { label: '默认自动转换', value: 'auto' },
515
+ { label: '数值', value: 'number' },
516
+ { label: '字符串', value: 'string' },
517
+ ],
518
+ },
519
+ { prop: 'treeNode', label: '是否指定为树节点', tooltip: '只对 treeConfig 配置时有效,指定为树节点', type: '', el: 'hs-switch' },
520
+ { prop: 'params', label: '额外的参数', tooltip: '额外的参数(可以用来存放一些私有参数)', type: '', el: 'hs-input' },
521
+ {
522
+ prop: 'colId',
523
+ label: '自定义列的唯一主键',
524
+ tooltip: '自定义列的唯一主键(注:列主键必须确保唯一,操作不正确将导致出现问题)',
525
+ type: '',
526
+ el: 'hs-input',
527
+ },
528
+ ],
529
+ second_config: [
530
+ {
531
+ key: 'filterRender',
532
+ visible: false,
533
+ title: '筛选渲染器配置项',
534
+ filterRender: [
535
+ { prop: 'name', label: '渲染器名称', type: '', el: 'hs-input' },
536
+ { prop: 'props', label: '渲染的参数', tooltip: '渲染的参数(请查看自定义的 Props)', type: '', el: 'hs-input' },
537
+ { prop: 'events', label: '渲染组件的事件(请查看自定义的 Events)', type: 'textarea', el: 'hs-input' },
538
+ { prop: 'content', label: '渲染组件的内容(仅用于特殊组件)', type: '', el: 'hs-input' },
539
+ ],
540
+ },
541
+ {
542
+ key: 'titlePrefix',
543
+ visible: false,
544
+ title: '标题前缀图标配置项',
545
+ titlePrefix: [
546
+ { prop: 'content', label: '提示消息', tooltip: '提示消息(支持开启国际化)', el: 'hs-input' },
547
+ {
548
+ prop: 'useHTML',
549
+ label: '是否显示为HTML标签',
550
+ tooltip: '是否显示为HTML标签(动态渲染任意 HTML 是非常危险的,很容易导致 XSS 攻击,请确保内容是可信的)',
551
+ type: '',
552
+ el: 'hs-input',
553
+ },
554
+ { prop: 'icon', label: '自定义图标', type: '', el: 'hs-input' },
555
+ ],
556
+ },
557
+ {
558
+ key: 'cellRender',
559
+ visible: false,
560
+ title: '默认的渲染器配置项',
561
+ cellRender: [
562
+ { prop: 'name', label: '渲染器名称', el: 'hs-input' },
563
+ { prop: 'props', label: '渲染的参数', tooltip: '渲染的参数(请查看自定义的 Props)', type: 'textarea', el: 'hs-input' },
564
+ { prop: 'options', label: '下拉选项列表', tooltip: '只对 name=select 有效,下拉选项列表', type: 'textarea', el: 'hs-input' },
565
+ {
566
+ prop: 'optionProps',
567
+ label: '下拉选项属性参数配置',
568
+ tooltip: '只对 name=select 有效,下拉选项属性参数配置',
569
+ type: 'textarea',
570
+ el: 'hs-input',
571
+ },
572
+ {
573
+ prop: 'optionGroups',
574
+ label: '下拉分组选项列表',
575
+ tooltip: '只对 name=select 有效,下拉分组选项列表',
576
+ type: 'textarea',
577
+ el: 'hs-input',
578
+ },
579
+ {
580
+ prop: 'optionGroupProps',
581
+ label: '下拉分组选项属性参数配置',
582
+ tooltip: '只对 name=select 有效,下拉分组选项属性参数配置',
583
+ type: 'textarea',
584
+ el: 'hs-input',
585
+ },
586
+ { prop: 'events', label: '渲染组件的事件', tooltip: '渲染组件的事件(请查看自定义的 Events)', type: 'textarea', el: 'hs-input' },
587
+ { prop: 'content', label: '渲染组件的内容(仅用于特殊组件)', el: 'hs-input' },
588
+ ],
589
+ },
590
+ {
591
+ key: 'editRender',
592
+ visible: false,
593
+ title: '可编辑渲染器配置项',
594
+ editRender: [
595
+ { prop: 'name', label: '渲染器名称', el: 'hs-input' },
596
+ { prop: 'enabled', label: '是否启用', el: 'hs-switch' },
597
+ { prop: 'props', label: '渲染的参数', tooltip: '渲染的参数(请查看自定义的 Props)', type: 'textarea', el: 'hs-input' },
598
+ { prop: 'attrs', label: '渲染的属性', tooltip: '渲染的属性(请查看自定义的 Attribute)', type: 'textarea', el: 'hs-input' },
599
+ { prop: 'options', label: '下拉选项列表', tooltip: '只对 name=select 有效,下拉选项列表', type: 'textarea', el: 'hs-input' },
600
+ {
601
+ prop: 'optionProps',
602
+ label: '下拉选项属性参数配置',
603
+ tooltip: '只对 name=select 有效,下拉选项属性参数配置',
604
+ type: 'textarea',
605
+ el: 'hs-input',
606
+ },
607
+ {
608
+ prop: 'optionGroups',
609
+ label: '下拉分组选项列表',
610
+ tooltip: '只对 name=select 有效,下拉分组选项列表',
611
+ type: 'textarea',
612
+ el: 'hs-input',
613
+ },
614
+ {
615
+ prop: 'optionGroupProps',
616
+ label: '下拉分组选项属性参数配置',
617
+ tooltip: '只对 name=select 有效,下拉分组选项属性参数配置',
618
+ type: 'textarea',
619
+ el: 'hs-input',
620
+ },
621
+ {
622
+ prop: 'events',
623
+ label: '渲染组件的事件(请查看自定义的 Events)',
624
+ type: '',
625
+ default: '{row,rowIndex,$rowIndex,column,columnIndex,$columnIndex}, ...[自定义的 arguments]',
626
+ param: '',
627
+ el: 'hs-input',
628
+ },
629
+ { prop: 'content', label: '渲染组件的内容', tooltip: '渲染组件的内容(仅用于特殊组件)', type: '', el: 'hs-input' },
630
+ {
631
+ prop: 'autofocus',
632
+ label: '指定聚焦的选择器',
633
+ tooltip: '如果是自定义渲染可以指定聚焦的选择器,例如 .my-input',
634
+ type: '',
635
+ el: 'hs-input',
636
+ },
637
+ { prop: 'autoselect', label: '自动选中内容', tooltip: '是否在激活编辑之后自动选中输入框内容', type: '', el: 'hs-input' },
638
+ { prop: 'defaultValue', label: '默认值', tooltip: '默认值(插入数据时列的默认值)', type: '', el: 'hs-input' },
639
+ {
640
+ prop: 'immediate',
641
+ label: '输入值实时更新',
642
+ tooltip: '输入值实时同步更新(默认情况下单元格编辑的值只会在被触发时同步,如果需要实时同步可以设置为 true)',
643
+ type: '',
644
+ el: 'hs-input',
645
+ },
646
+ { prop: 'placeholder', label: '单元格占位符', tooltip: '单元格占位符,但单元格为空值时显示的占位符', type: '', el: 'hs-input' },
647
+ ],
648
+ },
649
+ {
650
+ key: 'contentRender',
651
+ visible: false,
652
+ title: '内容渲染配置项',
653
+ contentRender: [
654
+ { prop: 'name', label: '渲染器名称', type: '', el: 'hs-input' },
655
+ { prop: 'props', label: '渲染的参数', tooltip: '渲染的参数(请查看自定义的 Props)', type: 'textarea', el: 'hs-input' },
656
+ { prop: 'attrs', tooltip: '渲染的属性', label: '渲染的属性(请查看自定义的 Attribute)', type: 'textarea', el: 'hs-input' },
657
+ { prop: 'events', label: '渲染组件的事件', tooltip: '渲染组件的事件(请查看自定义的 Events)', type: 'textarea', el: 'hs-input' },
658
+ ],
659
+ },
660
+ ],
661
+ filterConfig: [],
662
+ btnData: [],
663
+ btnConfig: [],
664
+ rules: {},
665
+ },
666
+ {
667
+ id: '1709531716887',
668
+ data: {
669
+ type: null,
670
+ field: 'name',
671
+ title: '姓名',
672
+ isSlot: false,
673
+ isApply: true,
674
+ isShow: true,
675
+ returnValueType: 'string',
676
+ minWidth: '100',
677
+ resizable: false,
678
+ visible: true,
679
+ sortType: 'auto',
680
+ filterMultiple: true,
681
+ cellType: 'auto',
682
+ treeNode: false,
683
+ filters: [],
684
+ filterRender: {},
685
+ titlePrefix: {},
686
+ cellRender: {},
687
+ editRender: {},
688
+ contentRender: {},
689
+ },
690
+ list: [
691
+ {
692
+ prop: 'type',
693
+ label: '列的类型',
694
+ tooltip: '列的类型(部分功能需要设置 columnConfig.useKey',
695
+ type: '',
696
+ el: 'hs-select',
697
+ cel: 'hs-option',
698
+ op: [
699
+ { label: '序号', value: 'seq' },
700
+ { label: '复选框', value: 'checkbox' },
701
+ { label: '单选框', value: 'radio' },
702
+ { label: '展开行', value: 'expand' },
703
+ { label: 'HTML 标签', value: 'html' },
704
+ ],
705
+ },
706
+ { prop: 'title', label: '列标题', type: '', tooltip: '列标题(支持开启国际化)', el: 'hs-input', slotValue: 'title' },
707
+ {
708
+ prop: 'field',
709
+ label: '列字段名',
710
+ tooltip: '列字段名(注:属性层级越深,渲染性能就越差,例如:aa.bb.cc.dd.ee)',
711
+ type: '',
712
+ el: 'hs-input',
713
+ },
714
+ {
715
+ prop: 'returnValueType',
716
+ label: '返回值类型',
717
+ el: 'hs-select',
718
+ cel: 'hs-option',
719
+ op: [
720
+ { label: 'String', value: 'string' },
721
+ { label: 'Number', value: 'number' },
722
+ { label: 'String|Number', value: 'string|number' },
723
+ { label: 'Boolean', value: 'boolean' },
724
+ ],
725
+ },
726
+ { prop: 'isSlot', label: '是否自定义插槽', el: 'hs-switch', tooltip: '下拉选择,自定义模板,选择的名称就是模板名称' },
727
+ { prop: 'isApply', label: '是否启用', el: 'hs-switch' },
728
+ { prop: 'isShow', label: '是否显示', el: 'hs-switch' },
729
+ {
730
+ prop: 'width',
731
+ label: '列宽度',
732
+ type: '',
733
+ tooltip: '列宽度(如果为空则均匀分配剩余宽度,如果全部列固定了,可能会存在宽屏下不会铺满,可以配合 % 或者 min-width 布局)',
734
+ el: 'hs-input',
735
+ },
736
+ { prop: 'minWidth', label: '最小列宽度', type: '', tooltip: '最小列宽度;会自动将剩余空间按比例分配', el: 'hs-input' },
737
+ { prop: 'resizable', label: '是否允许调整列宽', type: '', tooltip: '列是否允许拖动列宽调整大小', el: 'hs-switch' },
738
+ { prop: 'visible', label: '默认是否显示', type: '', el: 'hs-switch' },
739
+ {
740
+ prop: 'fixed',
741
+ label: '列固定位置',
742
+ tooltip: '将列固定在左侧或者右侧(注意:固定列应该放在左右两侧的位置)',
743
+ type: '',
744
+ el: 'hs-select',
745
+ cel: 'hs-option',
746
+ op: [
747
+ { label: '不固定', value: '' },
748
+ { label: '固定左侧', value: 'left' },
749
+ { label: '固定右侧', value: 'right' },
750
+ ],
751
+ },
752
+ {
753
+ prop: 'align',
754
+ label: '列对齐方式',
755
+ type: '',
756
+ el: 'hs-select',
757
+ cel: 'hs-option',
758
+ op: [
759
+ { label: '左对齐', value: 'left' },
760
+ { label: '居中对齐', value: 'center' },
761
+ { label: '右对齐', value: 'right' },
762
+ ],
763
+ },
764
+ {
765
+ prop: 'headerAlign',
766
+ label: '表头列的对齐方式',
767
+ el: 'hs-select',
768
+ cel: 'hs-option',
769
+ op: [
770
+ { label: '左对齐', value: 'left' },
771
+ { label: '居中对齐', value: 'center' },
772
+ { label: '右对齐', value: 'right' },
773
+ ],
774
+ },
775
+ {
776
+ prop: 'footerAlign',
777
+ label: '表尾列的对齐方式',
778
+ el: 'hs-select',
779
+ cel: 'hs-option',
780
+ op: [
781
+ { label: '左对齐', value: 'left' },
782
+ { label: '居中对齐', value: 'center' },
783
+ { label: '右对齐', value: 'right' },
784
+ ],
785
+ },
786
+ {
787
+ prop: 'showOverflow',
788
+ label: '当内容过长时显示为省略号',
789
+ el: 'hs-select',
790
+ cel: 'hs-option',
791
+ op: [
792
+ { label: '只显示省略号', value: 'ellipsis' },
793
+ { label: '显示原生title', value: 'title' },
794
+ { label: '显示tooltip提示', value: 'tooltip' },
795
+ ],
796
+ },
797
+ {
798
+ prop: 'showHeaderOverflow',
799
+ label: '当表头内容过长时显示为省略号',
800
+ el: 'hs-select',
801
+ cel: 'hs-option',
802
+ op: [
803
+ { label: '只显示省略号', value: 'ellipsis' },
804
+ { label: '显示原生title', value: 'title' },
805
+ { label: '显示tooltip提示', value: 'tooltip' },
806
+ ],
807
+ },
808
+ {
809
+ prop: 'showFooterOverflow',
810
+ label: '当表尾内容过长时显示为省略号',
811
+ el: 'hs-select',
812
+ cel: 'hs-option',
813
+ op: [
814
+ { label: '只显示省略号', value: 'ellipsis' },
815
+ { label: '显示原生title', value: 'title' },
816
+ { label: '显示tooltip提示', value: 'tooltip' },
817
+ ],
818
+ },
819
+ { prop: 'className', label: '给单元格附加 className', type: 'textarea', el: 'hs-input' },
820
+ { prop: 'headerClassName', label: '给表头的单元格附加 className', type: 'textarea', el: 'hs-input' },
821
+ { prop: 'footerClassName', label: '给表尾的单元格附加 className', type: 'textarea', el: 'hs-input' },
822
+ { prop: 'formatter', label: '格式化显示内容', type: 'textarea', el: 'hs-input' },
823
+ { prop: 'sortable', label: '是否允许列排序', tooltip: '数据排序,是否允许列排序', type: '', el: 'hs-switch' },
824
+ {
825
+ prop: 'sortBy',
826
+ label: '指定排序字段',
827
+ tooltip: '数据排序,只对 sortable 有效,指定排序的字段(当值 formatter 格式化后,可以设置该字段,使用值进行排序)',
828
+ type: 'textarea',
829
+ el: 'hs-input',
830
+ },
831
+ {
832
+ prop: 'sortType',
833
+ label: '排序的字段类型',
834
+ tooltip: '数据排序,排序的字段类型,比如字符串转数值等',
835
+ type: '',
836
+ el: 'hs-select',
837
+ cel: 'hs-option',
838
+ op: [
839
+ { label: 'auto', value: 'auto' },
840
+ { label: '数值', value: 'number' },
841
+ { label: '字符串', value: 'string' },
842
+ ],
843
+ },
844
+ {
845
+ prop: 'filterMultiple',
846
+ label: '筛选是否允许多选',
847
+ tooltip: '数据筛选,只对 filters 有效,筛选是否允许多选',
848
+ type: '',
849
+ el: 'hs-switch',
850
+ },
851
+ {
852
+ prop: 'filterMethod',
853
+ label: '列的筛选方法',
854
+ tooltip: '数据筛选,只对 filters 有效,列的筛选方法,该方法的返回值用来决定该行是否显示',
855
+ type: 'textarea',
856
+ el: 'hs-input',
857
+ },
858
+ {
859
+ prop: 'filterResetMethod',
860
+ label: '自定义筛选重置方法',
861
+ tooltip: '数据筛选,只对 filters 有效,自定义筛选重置方法',
862
+ type: 'textarea',
863
+ el: 'hs-input',
864
+ },
865
+ {
866
+ prop: 'filterRecoverMethod',
867
+ label: '自定义筛选复原方法',
868
+ tooltip: '数据筛选,只对 filters 有效,自定义筛选复原方法(使用自定义筛选时可能会用到)',
869
+ type: 'textarea',
870
+ el: 'hs-input',
871
+ },
872
+ {
873
+ prop: 'cellType',
874
+ label: '单元格值类型',
875
+ tooltip: '只对特定功能有效,单元格值类型(例如:导出数据类型设置)',
876
+ type: '',
877
+ el: 'hs-select',
878
+ cel: 'hs-option',
879
+ op: [
880
+ { label: '默认自动转换', value: 'auto' },
881
+ { label: '数值', value: 'number' },
882
+ { label: '字符串', value: 'string' },
883
+ ],
884
+ },
885
+ { prop: 'treeNode', label: '是否指定为树节点', tooltip: '只对 treeConfig 配置时有效,指定为树节点', type: '', el: 'hs-switch' },
886
+ { prop: 'params', label: '额外的参数', tooltip: '额外的参数(可以用来存放一些私有参数)', type: '', el: 'hs-input' },
887
+ {
888
+ prop: 'colId',
889
+ label: '自定义列的唯一主键',
890
+ tooltip: '自定义列的唯一主键(注:列主键必须确保唯一,操作不正确将导致出现问题)',
891
+ type: '',
892
+ el: 'hs-input',
893
+ },
894
+ ],
895
+ second_config: [
896
+ {
897
+ key: 'filterRender',
898
+ visible: false,
899
+ title: '筛选渲染器配置项',
900
+ filterRender: [
901
+ { prop: 'name', label: '渲染器名称', type: '', el: 'hs-input' },
902
+ { prop: 'props', label: '渲染的参数', tooltip: '渲染的参数(请查看自定义的 Props)', type: '', el: 'hs-input' },
903
+ { prop: 'events', label: '渲染组件的事件(请查看自定义的 Events)', type: 'textarea', el: 'hs-input' },
904
+ { prop: 'content', label: '渲染组件的内容(仅用于特殊组件)', type: '', el: 'hs-input' },
905
+ ],
906
+ },
907
+ {
908
+ key: 'titlePrefix',
909
+ visible: false,
910
+ title: '标题前缀图标配置项',
911
+ titlePrefix: [
912
+ { prop: 'content', label: '提示消息', tooltip: '提示消息(支持开启国际化)', el: 'hs-input' },
913
+ {
914
+ prop: 'useHTML',
915
+ label: '是否显示为HTML标签',
916
+ tooltip: '是否显示为HTML标签(动态渲染任意 HTML 是非常危险的,很容易导致 XSS 攻击,请确保内容是可信的)',
917
+ type: '',
918
+ el: 'hs-input',
919
+ },
920
+ { prop: 'icon', label: '自定义图标', type: '', el: 'hs-input' },
921
+ ],
922
+ },
923
+ {
924
+ key: 'cellRender',
925
+ visible: false,
926
+ title: '默认的渲染器配置项',
927
+ cellRender: [
928
+ { prop: 'name', label: '渲染器名称', el: 'hs-input' },
929
+ { prop: 'props', label: '渲染的参数', tooltip: '渲染的参数(请查看自定义的 Props)', type: 'textarea', el: 'hs-input' },
930
+ { prop: 'options', label: '下拉选项列表', tooltip: '只对 name=select 有效,下拉选项列表', type: 'textarea', el: 'hs-input' },
931
+ {
932
+ prop: 'optionProps',
933
+ label: '下拉选项属性参数配置',
934
+ tooltip: '只对 name=select 有效,下拉选项属性参数配置',
935
+ type: 'textarea',
936
+ el: 'hs-input',
937
+ },
938
+ {
939
+ prop: 'optionGroups',
940
+ label: '下拉分组选项列表',
941
+ tooltip: '只对 name=select 有效,下拉分组选项列表',
942
+ type: 'textarea',
943
+ el: 'hs-input',
944
+ },
945
+ {
946
+ prop: 'optionGroupProps',
947
+ label: '下拉分组选项属性参数配置',
948
+ tooltip: '只对 name=select 有效,下拉分组选项属性参数配置',
949
+ type: 'textarea',
950
+ el: 'hs-input',
951
+ },
952
+ { prop: 'events', label: '渲染组件的事件', tooltip: '渲染组件的事件(请查看自定义的 Events)', type: 'textarea', el: 'hs-input' },
953
+ { prop: 'content', label: '渲染组件的内容(仅用于特殊组件)', el: 'hs-input' },
954
+ ],
955
+ },
956
+ {
957
+ key: 'editRender',
958
+ visible: false,
959
+ title: '可编辑渲染器配置项',
960
+ editRender: [
961
+ { prop: 'name', label: '渲染器名称', el: 'hs-input' },
962
+ { prop: 'enabled', label: '是否启用', el: 'hs-switch' },
963
+ { prop: 'props', label: '渲染的参数', tooltip: '渲染的参数(请查看自定义的 Props)', type: 'textarea', el: 'hs-input' },
964
+ { prop: 'attrs', label: '渲染的属性', tooltip: '渲染的属性(请查看自定义的 Attribute)', type: 'textarea', el: 'hs-input' },
965
+ { prop: 'options', label: '下拉选项列表', tooltip: '只对 name=select 有效,下拉选项列表', type: 'textarea', el: 'hs-input' },
966
+ {
967
+ prop: 'optionProps',
968
+ label: '下拉选项属性参数配置',
969
+ tooltip: '只对 name=select 有效,下拉选项属性参数配置',
970
+ type: 'textarea',
971
+ el: 'hs-input',
972
+ },
973
+ {
974
+ prop: 'optionGroups',
975
+ label: '下拉分组选项列表',
976
+ tooltip: '只对 name=select 有效,下拉分组选项列表',
977
+ type: 'textarea',
978
+ el: 'hs-input',
979
+ },
980
+ {
981
+ prop: 'optionGroupProps',
982
+ label: '下拉分组选项属性参数配置',
983
+ tooltip: '只对 name=select 有效,下拉分组选项属性参数配置',
984
+ type: 'textarea',
985
+ el: 'hs-input',
986
+ },
987
+ {
988
+ prop: 'events',
989
+ label: '渲染组件的事件(请查看自定义的 Events)',
990
+ type: '',
991
+ default: '{row,rowIndex,$rowIndex,column,columnIndex,$columnIndex}, ...[自定义的 arguments]',
992
+ param: '',
993
+ el: 'hs-input',
994
+ },
995
+ { prop: 'content', label: '渲染组件的内容', tooltip: '渲染组件的内容(仅用于特殊组件)', type: '', el: 'hs-input' },
996
+ {
997
+ prop: 'autofocus',
998
+ label: '指定聚焦的选择器',
999
+ tooltip: '如果是自定义渲染可以指定聚焦的选择器,例如 .my-input',
1000
+ type: '',
1001
+ el: 'hs-input',
1002
+ },
1003
+ { prop: 'autoselect', label: '自动选中内容', tooltip: '是否在激活编辑之后自动选中输入框内容', type: '', el: 'hs-input' },
1004
+ { prop: 'defaultValue', label: '默认值', tooltip: '默认值(插入数据时列的默认值)', type: '', el: 'hs-input' },
1005
+ {
1006
+ prop: 'immediate',
1007
+ label: '输入值实时更新',
1008
+ tooltip: '输入值实时同步更新(默认情况下单元格编辑的值只会在被触发时同步,如果需要实时同步可以设置为 true)',
1009
+ type: '',
1010
+ el: 'hs-input',
1011
+ },
1012
+ { prop: 'placeholder', label: '单元格占位符', tooltip: '单元格占位符,但单元格为空值时显示的占位符', type: '', el: 'hs-input' },
1013
+ ],
1014
+ },
1015
+ {
1016
+ key: 'contentRender',
1017
+ visible: false,
1018
+ title: '内容渲染配置项',
1019
+ contentRender: [
1020
+ { prop: 'name', label: '渲染器名称', type: '', el: 'hs-input' },
1021
+ { prop: 'props', label: '渲染的参数', tooltip: '渲染的参数(请查看自定义的 Props)', type: 'textarea', el: 'hs-input' },
1022
+ { prop: 'attrs', tooltip: '渲染的属性', label: '渲染的属性(请查看自定义的 Attribute)', type: 'textarea', el: 'hs-input' },
1023
+ { prop: 'events', label: '渲染组件的事件', tooltip: '渲染组件的事件(请查看自定义的 Events)', type: 'textarea', el: 'hs-input' },
1024
+ ],
1025
+ },
1026
+ ],
1027
+ filterConfig: [],
1028
+ btnData: [],
1029
+ btnConfig: [],
1030
+ rules: {
1031
+ list: {
1032
+ title: [{ required: true, message: '请输入列标题' }],
1033
+ field: [{ required: true, message: '请输入列字段名' }],
1034
+ returnValueType: [{ required: true, message: '请输入返回值类型' }],
1035
+ },
1036
+ },
1037
+ },
1038
+ {
1039
+ id: '1709531731243',
1040
+ data: {
1041
+ type: null,
1042
+ field: 'gender',
1043
+ title: '性别',
1044
+ isSlot: false,
1045
+ isApply: true,
1046
+ isShow: true,
1047
+ returnValueType: 'string',
1048
+ minWidth: '100',
1049
+ resizable: false,
1050
+ visible: true,
1051
+ sortType: 'auto',
1052
+ filterMultiple: true,
1053
+ cellType: 'auto',
1054
+ treeNode: false,
1055
+ filters: [],
1056
+ filterRender: {},
1057
+ titlePrefix: {},
1058
+ cellRender: {},
1059
+ editRender: {},
1060
+ contentRender: {},
1061
+ },
1062
+ list: [
1063
+ {
1064
+ prop: 'type',
1065
+ label: '列的类型',
1066
+ tooltip: '列的类型(部分功能需要设置 columnConfig.useKey',
1067
+ type: '',
1068
+ el: 'hs-select',
1069
+ cel: 'hs-option',
1070
+ op: [
1071
+ { label: '序号', value: 'seq' },
1072
+ { label: '复选框', value: 'checkbox' },
1073
+ { label: '单选框', value: 'radio' },
1074
+ { label: '展开行', value: 'expand' },
1075
+ { label: 'HTML 标签', value: 'html' },
1076
+ ],
1077
+ },
1078
+ { prop: 'title', label: '列标题', type: '', tooltip: '列标题(支持开启国际化)', el: 'hs-input', slotValue: 'title' },
1079
+ {
1080
+ prop: 'field',
1081
+ label: '列字段名',
1082
+ tooltip: '列字段名(注:属性层级越深,渲染性能就越差,例如:aa.bb.cc.dd.ee)',
1083
+ type: '',
1084
+ el: 'hs-input',
1085
+ },
1086
+ {
1087
+ prop: 'returnValueType',
1088
+ label: '返回值类型',
1089
+ el: 'hs-select',
1090
+ cel: 'hs-option',
1091
+ op: [
1092
+ { label: 'String', value: 'string' },
1093
+ { label: 'Number', value: 'number' },
1094
+ { label: 'String|Number', value: 'string|number' },
1095
+ { label: 'Boolean', value: 'boolean' },
1096
+ ],
1097
+ },
1098
+ { prop: 'isSlot', label: '是否自定义插槽', el: 'hs-switch', tooltip: '下拉选择,自定义模板,选择的名称就是模板名称' },
1099
+ { prop: 'isApply', label: '是否启用', el: 'hs-switch' },
1100
+ { prop: 'isShow', label: '是否显示', el: 'hs-switch' },
1101
+ {
1102
+ prop: 'width',
1103
+ label: '列宽度',
1104
+ type: '',
1105
+ tooltip: '列宽度(如果为空则均匀分配剩余宽度,如果全部列固定了,可能会存在宽屏下不会铺满,可以配合 % 或者 min-width 布局)',
1106
+ el: 'hs-input',
1107
+ },
1108
+ { prop: 'minWidth', label: '最小列宽度', type: '', tooltip: '最小列宽度;会自动将剩余空间按比例分配', el: 'hs-input' },
1109
+ { prop: 'resizable', label: '是否允许调整列宽', type: '', tooltip: '列是否允许拖动列宽调整大小', el: 'hs-switch' },
1110
+ { prop: 'visible', label: '默认是否显示', type: '', el: 'hs-switch' },
1111
+ {
1112
+ prop: 'fixed',
1113
+ label: '列固定位置',
1114
+ tooltip: '将列固定在左侧或者右侧(注意:固定列应该放在左右两侧的位置)',
1115
+ type: '',
1116
+ el: 'hs-select',
1117
+ cel: 'hs-option',
1118
+ op: [
1119
+ { label: '不固定', value: '' },
1120
+ { label: '固定左侧', value: 'left' },
1121
+ { label: '固定右侧', value: 'right' },
1122
+ ],
1123
+ },
1124
+ {
1125
+ prop: 'align',
1126
+ label: '列对齐方式',
1127
+ type: '',
1128
+ el: 'hs-select',
1129
+ cel: 'hs-option',
1130
+ op: [
1131
+ { label: '左对齐', value: 'left' },
1132
+ { label: '居中对齐', value: 'center' },
1133
+ { label: '右对齐', value: 'right' },
1134
+ ],
1135
+ },
1136
+ {
1137
+ prop: 'headerAlign',
1138
+ label: '表头列的对齐方式',
1139
+ el: 'hs-select',
1140
+ cel: 'hs-option',
1141
+ op: [
1142
+ { label: '左对齐', value: 'left' },
1143
+ { label: '居中对齐', value: 'center' },
1144
+ { label: '右对齐', value: 'right' },
1145
+ ],
1146
+ },
1147
+ {
1148
+ prop: 'footerAlign',
1149
+ label: '表尾列的对齐方式',
1150
+ el: 'hs-select',
1151
+ cel: 'hs-option',
1152
+ op: [
1153
+ { label: '左对齐', value: 'left' },
1154
+ { label: '居中对齐', value: 'center' },
1155
+ { label: '右对齐', value: 'right' },
1156
+ ],
1157
+ },
1158
+ {
1159
+ prop: 'showOverflow',
1160
+ label: '当内容过长时显示为省略号',
1161
+ el: 'hs-select',
1162
+ cel: 'hs-option',
1163
+ op: [
1164
+ { label: '只显示省略号', value: 'ellipsis' },
1165
+ { label: '显示原生title', value: 'title' },
1166
+ { label: '显示tooltip提示', value: 'tooltip' },
1167
+ ],
1168
+ },
1169
+ {
1170
+ prop: 'showHeaderOverflow',
1171
+ label: '当表头内容过长时显示为省略号',
1172
+ el: 'hs-select',
1173
+ cel: 'hs-option',
1174
+ op: [
1175
+ { label: '只显示省略号', value: 'ellipsis' },
1176
+ { label: '显示原生title', value: 'title' },
1177
+ { label: '显示tooltip提示', value: 'tooltip' },
1178
+ ],
1179
+ },
1180
+ {
1181
+ prop: 'showFooterOverflow',
1182
+ label: '当表尾内容过长时显示为省略号',
1183
+ el: 'hs-select',
1184
+ cel: 'hs-option',
1185
+ op: [
1186
+ { label: '只显示省略号', value: 'ellipsis' },
1187
+ { label: '显示原生title', value: 'title' },
1188
+ { label: '显示tooltip提示', value: 'tooltip' },
1189
+ ],
1190
+ },
1191
+ { prop: 'className', label: '给单元格附加 className', type: 'textarea', el: 'hs-input' },
1192
+ { prop: 'headerClassName', label: '给表头的单元格附加 className', type: 'textarea', el: 'hs-input' },
1193
+ { prop: 'footerClassName', label: '给表尾的单元格附加 className', type: 'textarea', el: 'hs-input' },
1194
+ { prop: 'formatter', label: '格式化显示内容', type: 'textarea', el: 'hs-input' },
1195
+ { prop: 'sortable', label: '是否允许列排序', tooltip: '数据排序,是否允许列排序', type: '', el: 'hs-switch' },
1196
+ {
1197
+ prop: 'sortBy',
1198
+ label: '指定排序字段',
1199
+ tooltip: '数据排序,只对 sortable 有效,指定排序的字段(当值 formatter 格式化后,可以设置该字段,使用值进行排序)',
1200
+ type: 'textarea',
1201
+ el: 'hs-input',
1202
+ },
1203
+ {
1204
+ prop: 'sortType',
1205
+ label: '排序的字段类型',
1206
+ tooltip: '数据排序,排序的字段类型,比如字符串转数值等',
1207
+ type: '',
1208
+ el: 'hs-select',
1209
+ cel: 'hs-option',
1210
+ op: [
1211
+ { label: 'auto', value: 'auto' },
1212
+ { label: '数值', value: 'number' },
1213
+ { label: '字符串', value: 'string' },
1214
+ ],
1215
+ },
1216
+ {
1217
+ prop: 'filterMultiple',
1218
+ label: '筛选是否允许多选',
1219
+ tooltip: '数据筛选,只对 filters 有效,筛选是否允许多选',
1220
+ type: '',
1221
+ el: 'hs-switch',
1222
+ },
1223
+ {
1224
+ prop: 'filterMethod',
1225
+ label: '列的筛选方法',
1226
+ tooltip: '数据筛选,只对 filters 有效,列的筛选方法,该方法的返回值用来决定该行是否显示',
1227
+ type: 'textarea',
1228
+ el: 'hs-input',
1229
+ },
1230
+ {
1231
+ prop: 'filterResetMethod',
1232
+ label: '自定义筛选重置方法',
1233
+ tooltip: '数据筛选,只对 filters 有效,自定义筛选重置方法',
1234
+ type: 'textarea',
1235
+ el: 'hs-input',
1236
+ },
1237
+ {
1238
+ prop: 'filterRecoverMethod',
1239
+ label: '自定义筛选复原方法',
1240
+ tooltip: '数据筛选,只对 filters 有效,自定义筛选复原方法(使用自定义筛选时可能会用到)',
1241
+ type: 'textarea',
1242
+ el: 'hs-input',
1243
+ },
1244
+ {
1245
+ prop: 'cellType',
1246
+ label: '单元格值类型',
1247
+ tooltip: '只对特定功能有效,单元格值类型(例如:导出数据类型设置)',
1248
+ type: '',
1249
+ el: 'hs-select',
1250
+ cel: 'hs-option',
1251
+ op: [
1252
+ { label: '默认自动转换', value: 'auto' },
1253
+ { label: '数值', value: 'number' },
1254
+ { label: '字符串', value: 'string' },
1255
+ ],
1256
+ },
1257
+ { prop: 'treeNode', label: '是否指定为树节点', tooltip: '只对 treeConfig 配置时有效,指定为树节点', type: '', el: 'hs-switch' },
1258
+ { prop: 'params', label: '额外的参数', tooltip: '额外的参数(可以用来存放一些私有参数)', type: '', el: 'hs-input' },
1259
+ {
1260
+ prop: 'colId',
1261
+ label: '自定义列的唯一主键',
1262
+ tooltip: '自定义列的唯一主键(注:列主键必须确保唯一,操作不正确将导致出现问题)',
1263
+ type: '',
1264
+ el: 'hs-input',
1265
+ },
1266
+ ],
1267
+ second_config: [
1268
+ {
1269
+ key: 'filterRender',
1270
+ visible: false,
1271
+ title: '筛选渲染器配置项',
1272
+ filterRender: [
1273
+ { prop: 'name', label: '渲染器名称', type: '', el: 'hs-input' },
1274
+ { prop: 'props', label: '渲染的参数', tooltip: '渲染的参数(请查看自定义的 Props)', type: '', el: 'hs-input' },
1275
+ { prop: 'events', label: '渲染组件的事件(请查看自定义的 Events)', type: 'textarea', el: 'hs-input' },
1276
+ { prop: 'content', label: '渲染组件的内容(仅用于特殊组件)', type: '', el: 'hs-input' },
1277
+ ],
1278
+ },
1279
+ {
1280
+ key: 'titlePrefix',
1281
+ visible: false,
1282
+ title: '标题前缀图标配置项',
1283
+ titlePrefix: [
1284
+ { prop: 'content', label: '提示消息', tooltip: '提示消息(支持开启国际化)', el: 'hs-input' },
1285
+ {
1286
+ prop: 'useHTML',
1287
+ label: '是否显示为HTML标签',
1288
+ tooltip: '是否显示为HTML标签(动态渲染任意 HTML 是非常危险的,很容易导致 XSS 攻击,请确保内容是可信的)',
1289
+ type: '',
1290
+ el: 'hs-input',
1291
+ },
1292
+ { prop: 'icon', label: '自定义图标', type: '', el: 'hs-input' },
1293
+ ],
1294
+ },
1295
+ {
1296
+ key: 'cellRender',
1297
+ visible: false,
1298
+ title: '默认的渲染器配置项',
1299
+ cellRender: [
1300
+ { prop: 'name', label: '渲染器名称', el: 'hs-input' },
1301
+ { prop: 'props', label: '渲染的参数', tooltip: '渲染的参数(请查看自定义的 Props)', type: 'textarea', el: 'hs-input' },
1302
+ { prop: 'options', label: '下拉选项列表', tooltip: '只对 name=select 有效,下拉选项列表', type: 'textarea', el: 'hs-input' },
1303
+ {
1304
+ prop: 'optionProps',
1305
+ label: '下拉选项属性参数配置',
1306
+ tooltip: '只对 name=select 有效,下拉选项属性参数配置',
1307
+ type: 'textarea',
1308
+ el: 'hs-input',
1309
+ },
1310
+ {
1311
+ prop: 'optionGroups',
1312
+ label: '下拉分组选项列表',
1313
+ tooltip: '只对 name=select 有效,下拉分组选项列表',
1314
+ type: 'textarea',
1315
+ el: 'hs-input',
1316
+ },
1317
+ {
1318
+ prop: 'optionGroupProps',
1319
+ label: '下拉分组选项属性参数配置',
1320
+ tooltip: '只对 name=select 有效,下拉分组选项属性参数配置',
1321
+ type: 'textarea',
1322
+ el: 'hs-input',
1323
+ },
1324
+ { prop: 'events', label: '渲染组件的事件', tooltip: '渲染组件的事件(请查看自定义的 Events)', type: 'textarea', el: 'hs-input' },
1325
+ { prop: 'content', label: '渲染组件的内容(仅用于特殊组件)', el: 'hs-input' },
1326
+ ],
1327
+ },
1328
+ {
1329
+ key: 'editRender',
1330
+ visible: false,
1331
+ title: '可编辑渲染器配置项',
1332
+ editRender: [
1333
+ { prop: 'name', label: '渲染器名称', el: 'hs-input' },
1334
+ { prop: 'enabled', label: '是否启用', el: 'hs-switch' },
1335
+ { prop: 'props', label: '渲染的参数', tooltip: '渲染的参数(请查看自定义的 Props)', type: 'textarea', el: 'hs-input' },
1336
+ { prop: 'attrs', label: '渲染的属性', tooltip: '渲染的属性(请查看自定义的 Attribute)', type: 'textarea', el: 'hs-input' },
1337
+ { prop: 'options', label: '下拉选项列表', tooltip: '只对 name=select 有效,下拉选项列表', type: 'textarea', el: 'hs-input' },
1338
+ {
1339
+ prop: 'optionProps',
1340
+ label: '下拉选项属性参数配置',
1341
+ tooltip: '只对 name=select 有效,下拉选项属性参数配置',
1342
+ type: 'textarea',
1343
+ el: 'hs-input',
1344
+ },
1345
+ {
1346
+ prop: 'optionGroups',
1347
+ label: '下拉分组选项列表',
1348
+ tooltip: '只对 name=select 有效,下拉分组选项列表',
1349
+ type: 'textarea',
1350
+ el: 'hs-input',
1351
+ },
1352
+ {
1353
+ prop: 'optionGroupProps',
1354
+ label: '下拉分组选项属性参数配置',
1355
+ tooltip: '只对 name=select 有效,下拉分组选项属性参数配置',
1356
+ type: 'textarea',
1357
+ el: 'hs-input',
1358
+ },
1359
+ {
1360
+ prop: 'events',
1361
+ label: '渲染组件的事件(请查看自定义的 Events)',
1362
+ type: '',
1363
+ default: '{row,rowIndex,$rowIndex,column,columnIndex,$columnIndex}, ...[自定义的 arguments]',
1364
+ param: '',
1365
+ el: 'hs-input',
1366
+ },
1367
+ { prop: 'content', label: '渲染组件的内容', tooltip: '渲染组件的内容(仅用于特殊组件)', type: '', el: 'hs-input' },
1368
+ {
1369
+ prop: 'autofocus',
1370
+ label: '指定聚焦的选择器',
1371
+ tooltip: '如果是自定义渲染可以指定聚焦的选择器,例如 .my-input',
1372
+ type: '',
1373
+ el: 'hs-input',
1374
+ },
1375
+ { prop: 'autoselect', label: '自动选中内容', tooltip: '是否在激活编辑之后自动选中输入框内容', type: '', el: 'hs-input' },
1376
+ { prop: 'defaultValue', label: '默认值', tooltip: '默认值(插入数据时列的默认值)', type: '', el: 'hs-input' },
1377
+ {
1378
+ prop: 'immediate',
1379
+ label: '输入值实时更新',
1380
+ tooltip: '输入值实时同步更新(默认情况下单元格编辑的值只会在被触发时同步,如果需要实时同步可以设置为 true)',
1381
+ type: '',
1382
+ el: 'hs-input',
1383
+ },
1384
+ { prop: 'placeholder', label: '单元格占位符', tooltip: '单元格占位符,但单元格为空值时显示的占位符', type: '', el: 'hs-input' },
1385
+ ],
1386
+ },
1387
+ {
1388
+ key: 'contentRender',
1389
+ visible: false,
1390
+ title: '内容渲染配置项',
1391
+ contentRender: [
1392
+ { prop: 'name', label: '渲染器名称', type: '', el: 'hs-input' },
1393
+ { prop: 'props', label: '渲染的参数', tooltip: '渲染的参数(请查看自定义的 Props)', type: 'textarea', el: 'hs-input' },
1394
+ { prop: 'attrs', tooltip: '渲染的属性', label: '渲染的属性(请查看自定义的 Attribute)', type: 'textarea', el: 'hs-input' },
1395
+ { prop: 'events', label: '渲染组件的事件', tooltip: '渲染组件的事件(请查看自定义的 Events)', type: 'textarea', el: 'hs-input' },
1396
+ ],
1397
+ },
1398
+ ],
1399
+ filterConfig: [],
1400
+ btnData: [],
1401
+ btnConfig: [],
1402
+ rules: {
1403
+ list: {
1404
+ title: [{ required: true, message: '请输入列标题' }],
1405
+ field: [{ required: true, message: '请输入列字段名' }],
1406
+ returnValueType: [{ required: true, message: '请输入返回值类型' }],
1407
+ },
1408
+ },
1409
+ },
1410
+ {
1411
+ id: '1709531739028',
1412
+ data: {
1413
+ type: null,
1414
+ field: 'phone',
1415
+ title: '手机号',
1416
+ isSlot: false,
1417
+ isApply: true,
1418
+ isShow: true,
1419
+ returnValueType: 'string',
1420
+ minWidth: '100',
1421
+ resizable: false,
1422
+ visible: true,
1423
+ sortType: 'auto',
1424
+ filterMultiple: true,
1425
+ cellType: 'auto',
1426
+ treeNode: false,
1427
+ filters: [],
1428
+ filterRender: {},
1429
+ titlePrefix: {},
1430
+ cellRender: {},
1431
+ editRender: {},
1432
+ contentRender: {},
1433
+ },
1434
+ list: [
1435
+ {
1436
+ prop: 'type',
1437
+ label: '列的类型',
1438
+ tooltip: '列的类型(部分功能需要设置 columnConfig.useKey',
1439
+ type: '',
1440
+ el: 'hs-select',
1441
+ cel: 'hs-option',
1442
+ op: [
1443
+ { label: '序号', value: 'seq' },
1444
+ { label: '复选框', value: 'checkbox' },
1445
+ { label: '单选框', value: 'radio' },
1446
+ { label: '展开行', value: 'expand' },
1447
+ { label: 'HTML 标签', value: 'html' },
1448
+ ],
1449
+ },
1450
+ { prop: 'title', label: '列标题', type: '', tooltip: '列标题(支持开启国际化)', el: 'hs-input', slotValue: 'title' },
1451
+ {
1452
+ prop: 'field',
1453
+ label: '列字段名',
1454
+ tooltip: '列字段名(注:属性层级越深,渲染性能就越差,例如:aa.bb.cc.dd.ee)',
1455
+ type: '',
1456
+ el: 'hs-input',
1457
+ },
1458
+ {
1459
+ prop: 'returnValueType',
1460
+ label: '返回值类型',
1461
+ el: 'hs-select',
1462
+ cel: 'hs-option',
1463
+ op: [
1464
+ { label: 'String', value: 'string' },
1465
+ { label: 'Number', value: 'number' },
1466
+ { label: 'String|Number', value: 'string|number' },
1467
+ { label: 'Boolean', value: 'boolean' },
1468
+ ],
1469
+ },
1470
+ { prop: 'isSlot', label: '是否自定义插槽', el: 'hs-switch', tooltip: '下拉选择,自定义模板,选择的名称就是模板名称' },
1471
+ { prop: 'isApply', label: '是否启用', el: 'hs-switch' },
1472
+ { prop: 'isShow', label: '是否显示', el: 'hs-switch' },
1473
+ {
1474
+ prop: 'width',
1475
+ label: '列宽度',
1476
+ type: '',
1477
+ tooltip: '列宽度(如果为空则均匀分配剩余宽度,如果全部列固定了,可能会存在宽屏下不会铺满,可以配合 % 或者 min-width 布局)',
1478
+ el: 'hs-input',
1479
+ },
1480
+ { prop: 'minWidth', label: '最小列宽度', type: '', tooltip: '最小列宽度;会自动将剩余空间按比例分配', el: 'hs-input' },
1481
+ { prop: 'resizable', label: '是否允许调整列宽', type: '', tooltip: '列是否允许拖动列宽调整大小', el: 'hs-switch' },
1482
+ { prop: 'visible', label: '默认是否显示', type: '', el: 'hs-switch' },
1483
+ {
1484
+ prop: 'fixed',
1485
+ label: '列固定位置',
1486
+ tooltip: '将列固定在左侧或者右侧(注意:固定列应该放在左右两侧的位置)',
1487
+ type: '',
1488
+ el: 'hs-select',
1489
+ cel: 'hs-option',
1490
+ op: [
1491
+ { label: '不固定', value: '' },
1492
+ { label: '固定左侧', value: 'left' },
1493
+ { label: '固定右侧', value: 'right' },
1494
+ ],
1495
+ },
1496
+ {
1497
+ prop: 'align',
1498
+ label: '列对齐方式',
1499
+ type: '',
1500
+ el: 'hs-select',
1501
+ cel: 'hs-option',
1502
+ op: [
1503
+ { label: '左对齐', value: 'left' },
1504
+ { label: '居中对齐', value: 'center' },
1505
+ { label: '右对齐', value: 'right' },
1506
+ ],
1507
+ },
1508
+ {
1509
+ prop: 'headerAlign',
1510
+ label: '表头列的对齐方式',
1511
+ el: 'hs-select',
1512
+ cel: 'hs-option',
1513
+ op: [
1514
+ { label: '左对齐', value: 'left' },
1515
+ { label: '居中对齐', value: 'center' },
1516
+ { label: '右对齐', value: 'right' },
1517
+ ],
1518
+ },
1519
+ {
1520
+ prop: 'footerAlign',
1521
+ label: '表尾列的对齐方式',
1522
+ el: 'hs-select',
1523
+ cel: 'hs-option',
1524
+ op: [
1525
+ { label: '左对齐', value: 'left' },
1526
+ { label: '居中对齐', value: 'center' },
1527
+ { label: '右对齐', value: 'right' },
1528
+ ],
1529
+ },
1530
+ {
1531
+ prop: 'showOverflow',
1532
+ label: '当内容过长时显示为省略号',
1533
+ el: 'hs-select',
1534
+ cel: 'hs-option',
1535
+ op: [
1536
+ { label: '只显示省略号', value: 'ellipsis' },
1537
+ { label: '显示原生title', value: 'title' },
1538
+ { label: '显示tooltip提示', value: 'tooltip' },
1539
+ ],
1540
+ },
1541
+ {
1542
+ prop: 'showHeaderOverflow',
1543
+ label: '当表头内容过长时显示为省略号',
1544
+ el: 'hs-select',
1545
+ cel: 'hs-option',
1546
+ op: [
1547
+ { label: '只显示省略号', value: 'ellipsis' },
1548
+ { label: '显示原生title', value: 'title' },
1549
+ { label: '显示tooltip提示', value: 'tooltip' },
1550
+ ],
1551
+ },
1552
+ {
1553
+ prop: 'showFooterOverflow',
1554
+ label: '当表尾内容过长时显示为省略号',
1555
+ el: 'hs-select',
1556
+ cel: 'hs-option',
1557
+ op: [
1558
+ { label: '只显示省略号', value: 'ellipsis' },
1559
+ { label: '显示原生title', value: 'title' },
1560
+ { label: '显示tooltip提示', value: 'tooltip' },
1561
+ ],
1562
+ },
1563
+ { prop: 'className', label: '给单元格附加 className', type: 'textarea', el: 'hs-input' },
1564
+ { prop: 'headerClassName', label: '给表头的单元格附加 className', type: 'textarea', el: 'hs-input' },
1565
+ { prop: 'footerClassName', label: '给表尾的单元格附加 className', type: 'textarea', el: 'hs-input' },
1566
+ { prop: 'formatter', label: '格式化显示内容', type: 'textarea', el: 'hs-input' },
1567
+ { prop: 'sortable', label: '是否允许列排序', tooltip: '数据排序,是否允许列排序', type: '', el: 'hs-switch' },
1568
+ {
1569
+ prop: 'sortBy',
1570
+ label: '指定排序字段',
1571
+ tooltip: '数据排序,只对 sortable 有效,指定排序的字段(当值 formatter 格式化后,可以设置该字段,使用值进行排序)',
1572
+ type: 'textarea',
1573
+ el: 'hs-input',
1574
+ },
1575
+ {
1576
+ prop: 'sortType',
1577
+ label: '排序的字段类型',
1578
+ tooltip: '数据排序,排序的字段类型,比如字符串转数值等',
1579
+ type: '',
1580
+ el: 'hs-select',
1581
+ cel: 'hs-option',
1582
+ op: [
1583
+ { label: 'auto', value: 'auto' },
1584
+ { label: '数值', value: 'number' },
1585
+ { label: '字符串', value: 'string' },
1586
+ ],
1587
+ },
1588
+ {
1589
+ prop: 'filterMultiple',
1590
+ label: '筛选是否允许多选',
1591
+ tooltip: '数据筛选,只对 filters 有效,筛选是否允许多选',
1592
+ type: '',
1593
+ el: 'hs-switch',
1594
+ },
1595
+ {
1596
+ prop: 'filterMethod',
1597
+ label: '列的筛选方法',
1598
+ tooltip: '数据筛选,只对 filters 有效,列的筛选方法,该方法的返回值用来决定该行是否显示',
1599
+ type: 'textarea',
1600
+ el: 'hs-input',
1601
+ },
1602
+ {
1603
+ prop: 'filterResetMethod',
1604
+ label: '自定义筛选重置方法',
1605
+ tooltip: '数据筛选,只对 filters 有效,自定义筛选重置方法',
1606
+ type: 'textarea',
1607
+ el: 'hs-input',
1608
+ },
1609
+ {
1610
+ prop: 'filterRecoverMethod',
1611
+ label: '自定义筛选复原方法',
1612
+ tooltip: '数据筛选,只对 filters 有效,自定义筛选复原方法(使用自定义筛选时可能会用到)',
1613
+ type: 'textarea',
1614
+ el: 'hs-input',
1615
+ },
1616
+ {
1617
+ prop: 'cellType',
1618
+ label: '单元格值类型',
1619
+ tooltip: '只对特定功能有效,单元格值类型(例如:导出数据类型设置)',
1620
+ type: '',
1621
+ el: 'hs-select',
1622
+ cel: 'hs-option',
1623
+ op: [
1624
+ { label: '默认自动转换', value: 'auto' },
1625
+ { label: '数值', value: 'number' },
1626
+ { label: '字符串', value: 'string' },
1627
+ ],
1628
+ },
1629
+ { prop: 'treeNode', label: '是否指定为树节点', tooltip: '只对 treeConfig 配置时有效,指定为树节点', type: '', el: 'hs-switch' },
1630
+ { prop: 'params', label: '额外的参数', tooltip: '额外的参数(可以用来存放一些私有参数)', type: '', el: 'hs-input' },
1631
+ {
1632
+ prop: 'colId',
1633
+ label: '自定义列的唯一主键',
1634
+ tooltip: '自定义列的唯一主键(注:列主键必须确保唯一,操作不正确将导致出现问题)',
1635
+ type: '',
1636
+ el: 'hs-input',
1637
+ },
1638
+ ],
1639
+ second_config: [
1640
+ {
1641
+ key: 'filterRender',
1642
+ visible: false,
1643
+ title: '筛选渲染器配置项',
1644
+ filterRender: [
1645
+ { prop: 'name', label: '渲染器名称', type: '', el: 'hs-input' },
1646
+ { prop: 'props', label: '渲染的参数', tooltip: '渲染的参数(请查看自定义的 Props)', type: '', el: 'hs-input' },
1647
+ { prop: 'events', label: '渲染组件的事件(请查看自定义的 Events)', type: 'textarea', el: 'hs-input' },
1648
+ { prop: 'content', label: '渲染组件的内容(仅用于特殊组件)', type: '', el: 'hs-input' },
1649
+ ],
1650
+ },
1651
+ {
1652
+ key: 'titlePrefix',
1653
+ visible: false,
1654
+ title: '标题前缀图标配置项',
1655
+ titlePrefix: [
1656
+ { prop: 'content', label: '提示消息', tooltip: '提示消息(支持开启国际化)', el: 'hs-input' },
1657
+ {
1658
+ prop: 'useHTML',
1659
+ label: '是否显示为HTML标签',
1660
+ tooltip: '是否显示为HTML标签(动态渲染任意 HTML 是非常危险的,很容易导致 XSS 攻击,请确保内容是可信的)',
1661
+ type: '',
1662
+ el: 'hs-input',
1663
+ },
1664
+ { prop: 'icon', label: '自定义图标', type: '', el: 'hs-input' },
1665
+ ],
1666
+ },
1667
+ {
1668
+ key: 'cellRender',
1669
+ visible: false,
1670
+ title: '默认的渲染器配置项',
1671
+ cellRender: [
1672
+ { prop: 'name', label: '渲染器名称', el: 'hs-input' },
1673
+ { prop: 'props', label: '渲染的参数', tooltip: '渲染的参数(请查看自定义的 Props)', type: 'textarea', el: 'hs-input' },
1674
+ { prop: 'options', label: '下拉选项列表', tooltip: '只对 name=select 有效,下拉选项列表', type: 'textarea', el: 'hs-input' },
1675
+ {
1676
+ prop: 'optionProps',
1677
+ label: '下拉选项属性参数配置',
1678
+ tooltip: '只对 name=select 有效,下拉选项属性参数配置',
1679
+ type: 'textarea',
1680
+ el: 'hs-input',
1681
+ },
1682
+ {
1683
+ prop: 'optionGroups',
1684
+ label: '下拉分组选项列表',
1685
+ tooltip: '只对 name=select 有效,下拉分组选项列表',
1686
+ type: 'textarea',
1687
+ el: 'hs-input',
1688
+ },
1689
+ {
1690
+ prop: 'optionGroupProps',
1691
+ label: '下拉分组选项属性参数配置',
1692
+ tooltip: '只对 name=select 有效,下拉分组选项属性参数配置',
1693
+ type: 'textarea',
1694
+ el: 'hs-input',
1695
+ },
1696
+ { prop: 'events', label: '渲染组件的事件', tooltip: '渲染组件的事件(请查看自定义的 Events)', type: 'textarea', el: 'hs-input' },
1697
+ { prop: 'content', label: '渲染组件的内容(仅用于特殊组件)', el: 'hs-input' },
1698
+ ],
1699
+ },
1700
+ {
1701
+ key: 'editRender',
1702
+ visible: false,
1703
+ title: '可编辑渲染器配置项',
1704
+ editRender: [
1705
+ { prop: 'name', label: '渲染器名称', el: 'hs-input' },
1706
+ { prop: 'enabled', label: '是否启用', el: 'hs-switch' },
1707
+ { prop: 'props', label: '渲染的参数', tooltip: '渲染的参数(请查看自定义的 Props)', type: 'textarea', el: 'hs-input' },
1708
+ { prop: 'attrs', label: '渲染的属性', tooltip: '渲染的属性(请查看自定义的 Attribute)', type: 'textarea', el: 'hs-input' },
1709
+ { prop: 'options', label: '下拉选项列表', tooltip: '只对 name=select 有效,下拉选项列表', type: 'textarea', el: 'hs-input' },
1710
+ {
1711
+ prop: 'optionProps',
1712
+ label: '下拉选项属性参数配置',
1713
+ tooltip: '只对 name=select 有效,下拉选项属性参数配置',
1714
+ type: 'textarea',
1715
+ el: 'hs-input',
1716
+ },
1717
+ {
1718
+ prop: 'optionGroups',
1719
+ label: '下拉分组选项列表',
1720
+ tooltip: '只对 name=select 有效,下拉分组选项列表',
1721
+ type: 'textarea',
1722
+ el: 'hs-input',
1723
+ },
1724
+ {
1725
+ prop: 'optionGroupProps',
1726
+ label: '下拉分组选项属性参数配置',
1727
+ tooltip: '只对 name=select 有效,下拉分组选项属性参数配置',
1728
+ type: 'textarea',
1729
+ el: 'hs-input',
1730
+ },
1731
+ {
1732
+ prop: 'events',
1733
+ label: '渲染组件的事件(请查看自定义的 Events)',
1734
+ type: '',
1735
+ default: '{row,rowIndex,$rowIndex,column,columnIndex,$columnIndex}, ...[自定义的 arguments]',
1736
+ param: '',
1737
+ el: 'hs-input',
1738
+ },
1739
+ { prop: 'content', label: '渲染组件的内容', tooltip: '渲染组件的内容(仅用于特殊组件)', type: '', el: 'hs-input' },
1740
+ {
1741
+ prop: 'autofocus',
1742
+ label: '指定聚焦的选择器',
1743
+ tooltip: '如果是自定义渲染可以指定聚焦的选择器,例如 .my-input',
1744
+ type: '',
1745
+ el: 'hs-input',
1746
+ },
1747
+ { prop: 'autoselect', label: '自动选中内容', tooltip: '是否在激活编辑之后自动选中输入框内容', type: '', el: 'hs-input' },
1748
+ { prop: 'defaultValue', label: '默认值', tooltip: '默认值(插入数据时列的默认值)', type: '', el: 'hs-input' },
1749
+ {
1750
+ prop: 'immediate',
1751
+ label: '输入值实时更新',
1752
+ tooltip: '输入值实时同步更新(默认情况下单元格编辑的值只会在被触发时同步,如果需要实时同步可以设置为 true)',
1753
+ type: '',
1754
+ el: 'hs-input',
1755
+ },
1756
+ { prop: 'placeholder', label: '单元格占位符', tooltip: '单元格占位符,但单元格为空值时显示的占位符', type: '', el: 'hs-input' },
1757
+ ],
1758
+ },
1759
+ {
1760
+ key: 'contentRender',
1761
+ visible: false,
1762
+ title: '内容渲染配置项',
1763
+ contentRender: [
1764
+ { prop: 'name', label: '渲染器名称', type: '', el: 'hs-input' },
1765
+ { prop: 'props', label: '渲染的参数', tooltip: '渲染的参数(请查看自定义的 Props)', type: 'textarea', el: 'hs-input' },
1766
+ { prop: 'attrs', tooltip: '渲染的属性', label: '渲染的属性(请查看自定义的 Attribute)', type: 'textarea', el: 'hs-input' },
1767
+ { prop: 'events', label: '渲染组件的事件', tooltip: '渲染组件的事件(请查看自定义的 Events)', type: 'textarea', el: 'hs-input' },
1768
+ ],
1769
+ },
1770
+ ],
1771
+ filterConfig: [],
1772
+ btnData: [],
1773
+ btnConfig: [],
1774
+ rules: {
1775
+ list: {
1776
+ title: [{ required: true, message: '请输入列标题' }],
1777
+ field: [{ required: true, message: '请输入列字段名' }],
1778
+ returnValueType: [{ required: true, message: '请输入返回值类型' }],
1779
+ },
1780
+ },
1781
+ },
1782
+ {
1783
+ id: '1709531745772',
1784
+ data: {
1785
+ type: null,
1786
+ field: 'btns',
1787
+ title: '操作',
1788
+ isSlot: false,
1789
+ isApply: true,
1790
+ isShow: true,
1791
+ returnValueType: 'string',
1792
+ minWidth: '100',
1793
+ resizable: false,
1794
+ visible: true,
1795
+ sortType: 'auto',
1796
+ filterMultiple: true,
1797
+ cellType: 'auto',
1798
+ treeNode: false,
1799
+ filters: [],
1800
+ filterRender: {},
1801
+ titlePrefix: {},
1802
+ cellRender: {},
1803
+ editRender: {},
1804
+ contentRender: {},
1805
+ },
1806
+ list: [
1807
+ {
1808
+ prop: 'type',
1809
+ label: '列的类型',
1810
+ tooltip: '列的类型(部分功能需要设置 columnConfig.useKey',
1811
+ type: '',
1812
+ el: 'hs-select',
1813
+ cel: 'hs-option',
1814
+ op: [
1815
+ { label: '序号', value: 'seq' },
1816
+ { label: '复选框', value: 'checkbox' },
1817
+ { label: '单选框', value: 'radio' },
1818
+ { label: '展开行', value: 'expand' },
1819
+ { label: 'HTML 标签', value: 'html' },
1820
+ ],
1821
+ },
1822
+ { prop: 'title', label: '列标题', type: '', tooltip: '列标题(支持开启国际化)', el: 'hs-input', slotValue: 'title' },
1823
+ {
1824
+ prop: 'field',
1825
+ label: '列字段名',
1826
+ tooltip: '列字段名(注:属性层级越深,渲染性能就越差,例如:aa.bb.cc.dd.ee)',
1827
+ type: '',
1828
+ el: 'hs-input',
1829
+ },
1830
+ {
1831
+ prop: 'returnValueType',
1832
+ label: '返回值类型',
1833
+ el: 'hs-select',
1834
+ cel: 'hs-option',
1835
+ op: [
1836
+ { label: 'String', value: 'string' },
1837
+ { label: 'Number', value: 'number' },
1838
+ { label: 'String|Number', value: 'string|number' },
1839
+ { label: 'Boolean', value: 'boolean' },
1840
+ ],
1841
+ },
1842
+ { prop: 'isSlot', label: '是否自定义插槽', el: 'hs-switch', tooltip: '下拉选择,自定义模板,选择的名称就是模板名称' },
1843
+ { prop: 'isApply', label: '是否启用', el: 'hs-switch' },
1844
+ { prop: 'isShow', label: '是否显示', el: 'hs-switch' },
1845
+ {
1846
+ prop: 'width',
1847
+ label: '列宽度',
1848
+ type: '',
1849
+ tooltip: '列宽度(如果为空则均匀分配剩余宽度,如果全部列固定了,可能会存在宽屏下不会铺满,可以配合 % 或者 min-width 布局)',
1850
+ el: 'hs-input',
1851
+ },
1852
+ { prop: 'minWidth', label: '最小列宽度', type: '', tooltip: '最小列宽度;会自动将剩余空间按比例分配', el: 'hs-input' },
1853
+ { prop: 'resizable', label: '是否允许调整列宽', type: '', tooltip: '列是否允许拖动列宽调整大小', el: 'hs-switch' },
1854
+ { prop: 'visible', label: '默认是否显示', type: '', el: 'hs-switch' },
1855
+ {
1856
+ prop: 'fixed',
1857
+ label: '列固定位置',
1858
+ tooltip: '将列固定在左侧或者右侧(注意:固定列应该放在左右两侧的位置)',
1859
+ type: '',
1860
+ el: 'hs-select',
1861
+ cel: 'hs-option',
1862
+ op: [
1863
+ { label: '不固定', value: '' },
1864
+ { label: '固定左侧', value: 'left' },
1865
+ { label: '固定右侧', value: 'right' },
1866
+ ],
1867
+ },
1868
+ {
1869
+ prop: 'align',
1870
+ label: '列对齐方式',
1871
+ type: '',
1872
+ el: 'hs-select',
1873
+ cel: 'hs-option',
1874
+ op: [
1875
+ { label: '左对齐', value: 'left' },
1876
+ { label: '居中对齐', value: 'center' },
1877
+ { label: '右对齐', value: 'right' },
1878
+ ],
1879
+ },
1880
+ {
1881
+ prop: 'headerAlign',
1882
+ label: '表头列的对齐方式',
1883
+ el: 'hs-select',
1884
+ cel: 'hs-option',
1885
+ op: [
1886
+ { label: '左对齐', value: 'left' },
1887
+ { label: '居中对齐', value: 'center' },
1888
+ { label: '右对齐', value: 'right' },
1889
+ ],
1890
+ },
1891
+ {
1892
+ prop: 'footerAlign',
1893
+ label: '表尾列的对齐方式',
1894
+ el: 'hs-select',
1895
+ cel: 'hs-option',
1896
+ op: [
1897
+ { label: '左对齐', value: 'left' },
1898
+ { label: '居中对齐', value: 'center' },
1899
+ { label: '右对齐', value: 'right' },
1900
+ ],
1901
+ },
1902
+ {
1903
+ prop: 'showOverflow',
1904
+ label: '当内容过长时显示为省略号',
1905
+ el: 'hs-select',
1906
+ cel: 'hs-option',
1907
+ op: [
1908
+ { label: '只显示省略号', value: 'ellipsis' },
1909
+ { label: '显示原生title', value: 'title' },
1910
+ { label: '显示tooltip提示', value: 'tooltip' },
1911
+ ],
1912
+ },
1913
+ {
1914
+ prop: 'showHeaderOverflow',
1915
+ label: '当表头内容过长时显示为省略号',
1916
+ el: 'hs-select',
1917
+ cel: 'hs-option',
1918
+ op: [
1919
+ { label: '只显示省略号', value: 'ellipsis' },
1920
+ { label: '显示原生title', value: 'title' },
1921
+ { label: '显示tooltip提示', value: 'tooltip' },
1922
+ ],
1923
+ },
1924
+ {
1925
+ prop: 'showFooterOverflow',
1926
+ label: '当表尾内容过长时显示为省略号',
1927
+ el: 'hs-select',
1928
+ cel: 'hs-option',
1929
+ op: [
1930
+ { label: '只显示省略号', value: 'ellipsis' },
1931
+ { label: '显示原生title', value: 'title' },
1932
+ { label: '显示tooltip提示', value: 'tooltip' },
1933
+ ],
1934
+ },
1935
+ { prop: 'className', label: '给单元格附加 className', type: 'textarea', el: 'hs-input' },
1936
+ { prop: 'headerClassName', label: '给表头的单元格附加 className', type: 'textarea', el: 'hs-input' },
1937
+ { prop: 'footerClassName', label: '给表尾的单元格附加 className', type: 'textarea', el: 'hs-input' },
1938
+ { prop: 'formatter', label: '格式化显示内容', type: 'textarea', el: 'hs-input' },
1939
+ { prop: 'sortable', label: '是否允许列排序', tooltip: '数据排序,是否允许列排序', type: '', el: 'hs-switch' },
1940
+ {
1941
+ prop: 'sortBy',
1942
+ label: '指定排序字段',
1943
+ tooltip: '数据排序,只对 sortable 有效,指定排序的字段(当值 formatter 格式化后,可以设置该字段,使用值进行排序)',
1944
+ type: 'textarea',
1945
+ el: 'hs-input',
1946
+ },
1947
+ {
1948
+ prop: 'sortType',
1949
+ label: '排序的字段类型',
1950
+ tooltip: '数据排序,排序的字段类型,比如字符串转数值等',
1951
+ type: '',
1952
+ el: 'hs-select',
1953
+ cel: 'hs-option',
1954
+ op: [
1955
+ { label: 'auto', value: 'auto' },
1956
+ { label: '数值', value: 'number' },
1957
+ { label: '字符串', value: 'string' },
1958
+ ],
1959
+ },
1960
+ {
1961
+ prop: 'filterMultiple',
1962
+ label: '筛选是否允许多选',
1963
+ tooltip: '数据筛选,只对 filters 有效,筛选是否允许多选',
1964
+ type: '',
1965
+ el: 'hs-switch',
1966
+ },
1967
+ {
1968
+ prop: 'filterMethod',
1969
+ label: '列的筛选方法',
1970
+ tooltip: '数据筛选,只对 filters 有效,列的筛选方法,该方法的返回值用来决定该行是否显示',
1971
+ type: 'textarea',
1972
+ el: 'hs-input',
1973
+ },
1974
+ {
1975
+ prop: 'filterResetMethod',
1976
+ label: '自定义筛选重置方法',
1977
+ tooltip: '数据筛选,只对 filters 有效,自定义筛选重置方法',
1978
+ type: 'textarea',
1979
+ el: 'hs-input',
1980
+ },
1981
+ {
1982
+ prop: 'filterRecoverMethod',
1983
+ label: '自定义筛选复原方法',
1984
+ tooltip: '数据筛选,只对 filters 有效,自定义筛选复原方法(使用自定义筛选时可能会用到)',
1985
+ type: 'textarea',
1986
+ el: 'hs-input',
1987
+ },
1988
+ {
1989
+ prop: 'cellType',
1990
+ label: '单元格值类型',
1991
+ tooltip: '只对特定功能有效,单元格值类型(例如:导出数据类型设置)',
1992
+ type: '',
1993
+ el: 'hs-select',
1994
+ cel: 'hs-option',
1995
+ op: [
1996
+ { label: '默认自动转换', value: 'auto' },
1997
+ { label: '数值', value: 'number' },
1998
+ { label: '字符串', value: 'string' },
1999
+ ],
2000
+ },
2001
+ { prop: 'treeNode', label: '是否指定为树节点', tooltip: '只对 treeConfig 配置时有效,指定为树节点', type: '', el: 'hs-switch' },
2002
+ { prop: 'params', label: '额外的参数', tooltip: '额外的参数(可以用来存放一些私有参数)', type: '', el: 'hs-input' },
2003
+ {
2004
+ prop: 'colId',
2005
+ label: '自定义列的唯一主键',
2006
+ tooltip: '自定义列的唯一主键(注:列主键必须确保唯一,操作不正确将导致出现问题)',
2007
+ type: '',
2008
+ el: 'hs-input',
2009
+ },
2010
+ ],
2011
+ second_config: [
2012
+ {
2013
+ key: 'filterRender',
2014
+ visible: false,
2015
+ title: '筛选渲染器配置项',
2016
+ filterRender: [
2017
+ { prop: 'name', label: '渲染器名称', type: '', el: 'hs-input' },
2018
+ { prop: 'props', label: '渲染的参数', tooltip: '渲染的参数(请查看自定义的 Props)', type: '', el: 'hs-input' },
2019
+ { prop: 'events', label: '渲染组件的事件(请查看自定义的 Events)', type: 'textarea', el: 'hs-input' },
2020
+ { prop: 'content', label: '渲染组件的内容(仅用于特殊组件)', type: '', el: 'hs-input' },
2021
+ ],
2022
+ },
2023
+ {
2024
+ key: 'titlePrefix',
2025
+ visible: false,
2026
+ title: '标题前缀图标配置项',
2027
+ titlePrefix: [
2028
+ { prop: 'content', label: '提示消息', tooltip: '提示消息(支持开启国际化)', el: 'hs-input' },
2029
+ {
2030
+ prop: 'useHTML',
2031
+ label: '是否显示为HTML标签',
2032
+ tooltip: '是否显示为HTML标签(动态渲染任意 HTML 是非常危险的,很容易导致 XSS 攻击,请确保内容是可信的)',
2033
+ type: '',
2034
+ el: 'hs-input',
2035
+ },
2036
+ { prop: 'icon', label: '自定义图标', type: '', el: 'hs-input' },
2037
+ ],
2038
+ },
2039
+ {
2040
+ key: 'cellRender',
2041
+ visible: false,
2042
+ title: '默认的渲染器配置项',
2043
+ cellRender: [
2044
+ { prop: 'name', label: '渲染器名称', el: 'hs-input' },
2045
+ { prop: 'props', label: '渲染的参数', tooltip: '渲染的参数(请查看自定义的 Props)', type: 'textarea', el: 'hs-input' },
2046
+ { prop: 'options', label: '下拉选项列表', tooltip: '只对 name=select 有效,下拉选项列表', type: 'textarea', el: 'hs-input' },
2047
+ {
2048
+ prop: 'optionProps',
2049
+ label: '下拉选项属性参数配置',
2050
+ tooltip: '只对 name=select 有效,下拉选项属性参数配置',
2051
+ type: 'textarea',
2052
+ el: 'hs-input',
2053
+ },
2054
+ {
2055
+ prop: 'optionGroups',
2056
+ label: '下拉分组选项列表',
2057
+ tooltip: '只对 name=select 有效,下拉分组选项列表',
2058
+ type: 'textarea',
2059
+ el: 'hs-input',
2060
+ },
2061
+ {
2062
+ prop: 'optionGroupProps',
2063
+ label: '下拉分组选项属性参数配置',
2064
+ tooltip: '只对 name=select 有效,下拉分组选项属性参数配置',
2065
+ type: 'textarea',
2066
+ el: 'hs-input',
2067
+ },
2068
+ { prop: 'events', label: '渲染组件的事件', tooltip: '渲染组件的事件(请查看自定义的 Events)', type: 'textarea', el: 'hs-input' },
2069
+ { prop: 'content', label: '渲染组件的内容(仅用于特殊组件)', el: 'hs-input' },
2070
+ ],
2071
+ },
2072
+ {
2073
+ key: 'editRender',
2074
+ visible: false,
2075
+ title: '可编辑渲染器配置项',
2076
+ editRender: [
2077
+ { prop: 'name', label: '渲染器名称', el: 'hs-input' },
2078
+ { prop: 'enabled', label: '是否启用', el: 'hs-switch' },
2079
+ { prop: 'props', label: '渲染的参数', tooltip: '渲染的参数(请查看自定义的 Props)', type: 'textarea', el: 'hs-input' },
2080
+ { prop: 'attrs', label: '渲染的属性', tooltip: '渲染的属性(请查看自定义的 Attribute)', type: 'textarea', el: 'hs-input' },
2081
+ { prop: 'options', label: '下拉选项列表', tooltip: '只对 name=select 有效,下拉选项列表', type: 'textarea', el: 'hs-input' },
2082
+ {
2083
+ prop: 'optionProps',
2084
+ label: '下拉选项属性参数配置',
2085
+ tooltip: '只对 name=select 有效,下拉选项属性参数配置',
2086
+ type: 'textarea',
2087
+ el: 'hs-input',
2088
+ },
2089
+ {
2090
+ prop: 'optionGroups',
2091
+ label: '下拉分组选项列表',
2092
+ tooltip: '只对 name=select 有效,下拉分组选项列表',
2093
+ type: 'textarea',
2094
+ el: 'hs-input',
2095
+ },
2096
+ {
2097
+ prop: 'optionGroupProps',
2098
+ label: '下拉分组选项属性参数配置',
2099
+ tooltip: '只对 name=select 有效,下拉分组选项属性参数配置',
2100
+ type: 'textarea',
2101
+ el: 'hs-input',
2102
+ },
2103
+ {
2104
+ prop: 'events',
2105
+ label: '渲染组件的事件(请查看自定义的 Events)',
2106
+ type: '',
2107
+ default: '{row,rowIndex,$rowIndex,column,columnIndex,$columnIndex}, ...[自定义的 arguments]',
2108
+ param: '',
2109
+ el: 'hs-input',
2110
+ },
2111
+ { prop: 'content', label: '渲染组件的内容', tooltip: '渲染组件的内容(仅用于特殊组件)', type: '', el: 'hs-input' },
2112
+ {
2113
+ prop: 'autofocus',
2114
+ label: '指定聚焦的选择器',
2115
+ tooltip: '如果是自定义渲染可以指定聚焦的选择器,例如 .my-input',
2116
+ type: '',
2117
+ el: 'hs-input',
2118
+ },
2119
+ { prop: 'autoselect', label: '自动选中内容', tooltip: '是否在激活编辑之后自动选中输入框内容', type: '', el: 'hs-input' },
2120
+ { prop: 'defaultValue', label: '默认值', tooltip: '默认值(插入数据时列的默认值)', type: '', el: 'hs-input' },
2121
+ {
2122
+ prop: 'immediate',
2123
+ label: '输入值实时更新',
2124
+ tooltip: '输入值实时同步更新(默认情况下单元格编辑的值只会在被触发时同步,如果需要实时同步可以设置为 true)',
2125
+ type: '',
2126
+ el: 'hs-input',
2127
+ },
2128
+ { prop: 'placeholder', label: '单元格占位符', tooltip: '单元格占位符,但单元格为空值时显示的占位符', type: '', el: 'hs-input' },
2129
+ ],
2130
+ },
2131
+ {
2132
+ key: 'contentRender',
2133
+ visible: false,
2134
+ title: '内容渲染配置项',
2135
+ contentRender: [
2136
+ { prop: 'name', label: '渲染器名称', type: '', el: 'hs-input' },
2137
+ { prop: 'props', label: '渲染的参数', tooltip: '渲染的参数(请查看自定义的 Props)', type: 'textarea', el: 'hs-input' },
2138
+ { prop: 'attrs', tooltip: '渲染的属性', label: '渲染的属性(请查看自定义的 Attribute)', type: 'textarea', el: 'hs-input' },
2139
+ { prop: 'events', label: '渲染组件的事件', tooltip: '渲染组件的事件(请查看自定义的 Events)', type: 'textarea', el: 'hs-input' },
2140
+ ],
2141
+ },
2142
+ ],
2143
+ filterConfig: [],
2144
+ btnData: [
2145
+ {
2146
+ name: '开始接诊',
2147
+ key: 'clinical_reception',
2148
+ isApply: true,
2149
+ isSlot: false,
2150
+ isShow: false,
2151
+ size: 'small',
2152
+ btnIcon: '',
2153
+ type: 'primary',
2154
+ plain: false,
2155
+ text: false,
2156
+ bg: false,
2157
+ link: false,
2158
+ round: false,
2159
+ circle: false,
2160
+ loading: false,
2161
+ 'loading-icon': 'Loading',
2162
+ disabled: false,
2163
+ autofocus: false,
2164
+ 'native-type': 'button',
2165
+ dark: false,
2166
+ tag: 'button',
2167
+ },
2168
+ {
2169
+ name: '查询',
2170
+ key: 'search',
2171
+ isApply: true,
2172
+ isSlot: false,
2173
+ isShow: false,
2174
+ size: 'small',
2175
+ btnIcon: '',
2176
+ type: 'primary',
2177
+ plain: false,
2178
+ text: false,
2179
+ bg: false,
2180
+ link: false,
2181
+ round: false,
2182
+ circle: false,
2183
+ loading: false,
2184
+ 'loading-icon': 'Loading',
2185
+ disabled: false,
2186
+ autofocus: false,
2187
+ 'native-type': 'button',
2188
+ dark: false,
2189
+ tag: 'button',
2190
+ },
2191
+ ],
2192
+ btnConfig: [
2193
+ {
2194
+ title: { subTitle: '按钮配置' },
2195
+ visible: false,
2196
+ list: [
2197
+ { prop: 'name', label: '按钮名称', el: 'hs-input', slotValue: 'name', tooltips: '按钮名称' },
2198
+ { prop: 'key', label: '按钮key值', el: 'hs-input', tooltips: '按钮key值' },
2199
+ { prop: 'isApply', label: '是否启用', el: 'hs-switch', tooltips: '是否启用' },
2200
+ { prop: 'isSlot', label: '插槽名称', el: 'hs-switch', tooltips: '是否自定义插槽, 如果用插槽则赋值,不用插槽则清空' },
2201
+ { prop: 'isShow', label: '是否显示', el: 'hs-switch', tooltips: '是否显示' },
2202
+ { prop: 'color', label: '自定义颜色', el: 'hs-color-picker' },
2203
+ { prop: 'textColor', label: '按钮文本色', el: 'hs-color-picker' },
2204
+ { prop: 'btnIcon', label: '按钮图标', el: 'hs-input', slotValue: 'btnIcon' },
2205
+ {
2206
+ prop: 'iconPosition',
2207
+ label: '图标位置',
2208
+ el: 'hs-select',
2209
+ cel: 'hs-option',
2210
+ op: [
2211
+ { label: '左边', value: 'left' },
2212
+ { label: '右边', value: 'right' },
2213
+ ],
2214
+ },
2215
+ { prop: 'fnName', label: '方法名称', el: 'hs-input', type: 'textarea' },
2216
+ {
2217
+ prop: 'size',
2218
+ label: '尺寸',
2219
+ el: 'hs-select',
2220
+ cel: 'hs-option',
2221
+ op: [
2222
+ { label: '大', value: 'large' },
2223
+ { label: '默认', value: 'default' },
2224
+ { label: '小', value: 'small' },
2225
+ ],
2226
+ },
2227
+ {
2228
+ prop: 'type',
2229
+ label: '类型',
2230
+ el: 'hs-select',
2231
+ cel: 'hs-option',
2232
+ op: [
2233
+ { label: 'primary', value: 'primary' },
2234
+ { label: 'success', value: 'success' },
2235
+ { label: 'warning', value: 'warning' },
2236
+ { label: 'danger', value: 'danger' },
2237
+ { label: 'info', value: 'info' },
2238
+ ],
2239
+ },
2240
+ { prop: 'plain', label: '朴素按钮', el: 'hs-switch', tooltips: '是否为朴素按钮' },
2241
+ { prop: 'text', label: '文字按钮', el: 'hs-switch', tooltips: '是否为文字按钮' },
2242
+ { prop: 'bg', label: '文字按钮背景颜色', el: 'hs-switch', tooltips: '是否显示文字按钮背景颜色' },
2243
+ { prop: 'link', label: '链接按钮', el: 'hs-switch', tooltips: '是否为链接按钮' },
2244
+ { prop: 'round', label: '圆角按钮', el: 'hs-switch', tooltips: '是否为圆角按钮' },
2245
+ { prop: 'circle', label: '圆形按钮', el: 'hs-switch', tooltips: '是否为圆形按钮' },
2246
+ { prop: 'loading', label: '加载状态', el: 'hs-switch', tooltips: '是否为加载中状态' },
2247
+ { prop: 'loading-icon', label: '加载状态图标', el: 'hs-input', tooltips: '自定义加载中状态图标组件' },
2248
+ { prop: 'disabled', label: '是否禁用', el: 'hs-switch', tooltips: '按钮是否为禁用状态' },
2249
+ { prop: 'icon', label: '图标组件', el: 'hs-input', tooltips: '图标组件' },
2250
+ { prop: 'autofocus', label: '自动聚焦', el: 'hs-switch', tooltips: '原生 autofocus 属性' },
2251
+ {
2252
+ prop: 'native-type',
2253
+ label: '原生 type 属性',
2254
+ el: 'hs-select',
2255
+ cel: 'hs-option',
2256
+ op: [
2257
+ { label: '按钮', value: 'button' },
2258
+ { label: '提交', value: 'submit' },
2259
+ { label: '重置', value: 'reset' },
2260
+ ],
2261
+ tooltips: '原生 type 属性',
2262
+ },
2263
+ { prop: 'auto-insert-space', label: '中文字符之间插入空格', el: 'hs-switch', tooltips: '自动在两个中文字符之间插入空格' },
2264
+ { prop: 'color', label: '按钮颜色', el: 'hs-input', tooltips: '自定义按钮颜色, 并自动计算 hover 和 active 触发后的颜色' },
2265
+ { prop: 'dark', label: 'dark 模式', el: 'hs-switch', tooltips: 'dark 模式, 意味着自动设置 color 为 dark 模式的颜色' },
2266
+ { prop: 'tag', label: '自定义元素标签', el: 'hs-input', tooltips: '自定义元素标签' },
2267
+ ],
2268
+ rules: {},
2269
+ },
2270
+ {
2271
+ title: { subTitle: '按钮配置' },
2272
+ visible: true,
2273
+ list: [
2274
+ { prop: 'name', label: '按钮名称', el: 'hs-input', slotValue: 'name', tooltips: '按钮名称' },
2275
+ { prop: 'key', label: '按钮key值', el: 'hs-input', tooltips: '按钮key值' },
2276
+ { prop: 'isApply', label: '是否启用', el: 'hs-switch', tooltips: '是否启用' },
2277
+ { prop: 'isSlot', label: '插槽名称', el: 'hs-switch', tooltips: '是否自定义插槽, 如果用插槽则赋值,不用插槽则清空' },
2278
+ { prop: 'isShow', label: '是否显示', el: 'hs-switch', tooltips: '是否显示' },
2279
+ { prop: 'color', label: '自定义颜色', el: 'hs-color-picker' },
2280
+ { prop: 'textColor', label: '按钮文本色', el: 'hs-color-picker' },
2281
+ { prop: 'btnIcon', label: '按钮图标', el: 'hs-input', slotValue: 'btnIcon' },
2282
+ {
2283
+ prop: 'iconPosition',
2284
+ label: '图标位置',
2285
+ el: 'hs-select',
2286
+ cel: 'hs-option',
2287
+ op: [
2288
+ { label: '左边', value: 'left' },
2289
+ { label: '右边', value: 'right' },
2290
+ ],
2291
+ },
2292
+ { prop: 'fnName', label: '方法名称', el: 'hs-input', type: 'textarea' },
2293
+ {
2294
+ prop: 'size',
2295
+ label: '尺寸',
2296
+ el: 'hs-select',
2297
+ cel: 'hs-option',
2298
+ op: [
2299
+ { label: '大', value: 'large' },
2300
+ { label: '默认', value: 'default' },
2301
+ { label: '小', value: 'small' },
2302
+ ],
2303
+ },
2304
+ {
2305
+ prop: 'type',
2306
+ label: '类型',
2307
+ el: 'hs-select',
2308
+ cel: 'hs-option',
2309
+ op: [
2310
+ { label: 'primary', value: 'primary' },
2311
+ { label: 'success', value: 'success' },
2312
+ { label: 'warning', value: 'warning' },
2313
+ { label: 'danger', value: 'danger' },
2314
+ { label: 'info', value: 'info' },
2315
+ ],
2316
+ },
2317
+ { prop: 'plain', label: '朴素按钮', el: 'hs-switch', tooltips: '是否为朴素按钮' },
2318
+ { prop: 'text', label: '文字按钮', el: 'hs-switch', tooltips: '是否为文字按钮' },
2319
+ { prop: 'bg', label: '文字按钮背景颜色', el: 'hs-switch', tooltips: '是否显示文字按钮背景颜色' },
2320
+ { prop: 'link', label: '链接按钮', el: 'hs-switch', tooltips: '是否为链接按钮' },
2321
+ { prop: 'round', label: '圆角按钮', el: 'hs-switch', tooltips: '是否为圆角按钮' },
2322
+ { prop: 'circle', label: '圆形按钮', el: 'hs-switch', tooltips: '是否为圆形按钮' },
2323
+ { prop: 'loading', label: '加载状态', el: 'hs-switch', tooltips: '是否为加载中状态' },
2324
+ { prop: 'loading-icon', label: '加载状态图标', el: 'hs-input', tooltips: '自定义加载中状态图标组件' },
2325
+ { prop: 'disabled', label: '是否禁用', el: 'hs-switch', tooltips: '按钮是否为禁用状态' },
2326
+ { prop: 'icon', label: '图标组件', el: 'hs-input', tooltips: '图标组件' },
2327
+ { prop: 'autofocus', label: '自动聚焦', el: 'hs-switch', tooltips: '原生 autofocus 属性' },
2328
+ {
2329
+ prop: 'native-type',
2330
+ label: '原生 type 属性',
2331
+ el: 'hs-select',
2332
+ cel: 'hs-option',
2333
+ op: [
2334
+ { label: '按钮', value: 'button' },
2335
+ { label: '提交', value: 'submit' },
2336
+ { label: '重置', value: 'reset' },
2337
+ ],
2338
+ tooltips: '原生 type 属性',
2339
+ },
2340
+ { prop: 'auto-insert-space', label: '中文字符之间插入空格', el: 'hs-switch', tooltips: '自动在两个中文字符之间插入空格' },
2341
+ { prop: 'color', label: '按钮颜色', el: 'hs-input', tooltips: '自定义按钮颜色, 并自动计算 hover 和 active 触发后的颜色' },
2342
+ { prop: 'dark', label: 'dark 模式', el: 'hs-switch', tooltips: 'dark 模式, 意味着自动设置 color 为 dark 模式的颜色' },
2343
+ { prop: 'tag', label: '自定义元素标签', el: 'hs-input', tooltips: '自定义元素标签' },
2344
+ ],
2345
+ rules: {},
2346
+ },
2347
+ ],
2348
+ rules: {
2349
+ list: {
2350
+ title: [{ required: true, message: '请输入列标题' }],
2351
+ field: [{ required: true, message: '请输入列字段名' }],
2352
+ returnValueType: [{ required: true, message: '请输入返回值类型' }],
2353
+ },
2354
+ },
2355
+ },
2356
+ ],
2357
+ baseConfig: {
2358
+ baseTableConfig: [
2359
+ { prop: 'id', label: '表格唯一标识', type: '', tooltip: '唯一标识(被某些特定的功能所依赖)', disabled: true, el: 'hs-input' },
2360
+ { prop: 'tableName', label: '表格配置名称', type: '', el: 'hs-input' },
2361
+ { prop: 'data', label: '表格数据', tooltip: '表格数据(与 loadData 行为一致,更新数据是不会重置状态)', type: '', el: 'hs-input' },
2362
+ {
2363
+ prop: 'height',
2364
+ label: '表格的高度',
2365
+ type: '',
2366
+ disabled: true,
2367
+ tooltip:
2368
+ '表格的高度;支持铺满父容器或者固定高度,如果设置 auto 为铺满父容器(如果设置为 auto,则必须确保存在父节点且不允许存在相邻元素)',
2369
+ el: 'hs-input',
2370
+ },
2371
+ { prop: 'minHeight', label: '表格最小高度', type: '', el: 'hs-input' },
2372
+ { prop: 'maxHeight', label: '表格的最大高度', type: '', el: 'hs-input' },
2373
+ {
2374
+ prop: 'border',
2375
+ label: '是否带有边框',
2376
+ type: '',
2377
+ op: [
2378
+ { label: '默认', value: 'default' },
2379
+ { label: '完整边框', value: 'full' },
2380
+ { label: '外边框', value: 'outer' },
2381
+ { label: '内边框', value: 'inner' },
2382
+ { label: '无边框', value: 'none' },
2383
+ ],
2384
+ el: 'hs-select',
2385
+ cel: 'hs-option',
2386
+ },
2387
+ {
2388
+ prop: 'size',
2389
+ label: '表格的尺寸',
2390
+ type: '',
2391
+ op: [
2392
+ { label: '中等', value: 'medium' },
2393
+ { label: '小', value: 'small' },
2394
+ { label: '超小', value: 'mini' },
2395
+ { label: '内边框', value: 'inner' },
2396
+ { label: '无边框', value: 'none' },
2397
+ ],
2398
+ el: 'hs-select',
2399
+ cel: 'hs-option',
2400
+ },
2401
+ {
2402
+ prop: 'align',
2403
+ label: '所有的列对齐方式',
2404
+ type: '',
2405
+ op: [
2406
+ { label: '左对齐', value: 'left' },
2407
+ { label: '居中对齐', value: 'center' },
2408
+ { label: '右对齐', value: 'right' },
2409
+ ],
2410
+ el: 'hs-select',
2411
+ cel: 'hs-option',
2412
+ },
2413
+ {
2414
+ prop: 'headerAlign',
2415
+ label: '所有的表头列的对齐方式',
2416
+ tooltip: '所有的表头列的对齐方式',
2417
+ type: '',
2418
+ op: [
2419
+ { label: '左对齐', value: 'left' },
2420
+ { label: '居中对齐', value: 'center' },
2421
+ { label: '右对齐', value: 'right' },
2422
+ ],
2423
+ el: 'hs-select',
2424
+ cel: 'hs-option',
2425
+ },
2426
+ {
2427
+ prop: 'footerAlign',
2428
+ label: '所有的表尾列的对齐方式',
2429
+ type: '',
2430
+ tooltip: '所有的表尾列的对齐方式',
2431
+ op: [
2432
+ { label: '左对齐', value: 'left' },
2433
+ { label: '居中对齐', value: 'center' },
2434
+ { label: '右对齐', value: 'right' },
2435
+ ],
2436
+ el: 'hs-select',
2437
+ cel: 'hs-option',
2438
+ },
2439
+ { prop: 'emptyText', label: '空数据时显示的内容', type: '', el: 'hs-input' },
2440
+ {
2441
+ prop: 'showOverflow',
2442
+ label: '设置所有内容溢出显示',
2443
+ tooltip: '设置所有内容过长时显示为省略号(如果是固定列建议设置该值,提升渲染速度)',
2444
+ type: '',
2445
+ op: [
2446
+ { label: '省略号', value: 'ellipsis' },
2447
+ { label: 'title', value: 'title' },
2448
+ { label: 'tooltip', value: 'tooltip' },
2449
+ ],
2450
+ el: 'hs-select',
2451
+ cel: 'hs-option',
2452
+ },
2453
+ {
2454
+ prop: 'showHeaderOverflow',
2455
+ label: '设置表头内容溢出显示',
2456
+ type: '',
2457
+ tooltip: '设置表头所有内容过长时显示为省略号',
2458
+ op: [
2459
+ { label: '省略号', value: 'ellipsis' },
2460
+ { label: 'title', value: 'title' },
2461
+ { label: 'tooltip', value: 'tooltip' },
2462
+ ],
2463
+ el: 'hs-select',
2464
+ cel: 'hs-option',
2465
+ },
2466
+ {
2467
+ prop: 'showFooterOverflow',
2468
+ label: '设置表尾内容溢出显示',
2469
+ type: '',
2470
+ tooltip: '设置表尾所有内容过长时显示为省略号',
2471
+ op: [
2472
+ { label: '省略号', value: 'ellipsis' },
2473
+ { label: 'title', value: 'title' },
2474
+ { label: 'tooltip', value: 'tooltip' },
2475
+ ],
2476
+ el: 'hs-select',
2477
+ cel: 'hs-option',
2478
+ },
2479
+ { prop: 'showHeader', label: '是否显示表头', type: '', el: 'hs-switch' },
2480
+ {
2481
+ prop: 'keepSource',
2482
+ label: '保持原始值的状态',
2483
+ type: '',
2484
+ tooltip: '保持原始值的状态,被某些功能所依赖,比如编辑状态、还原数据等(开启后影响性能,具体取决于数据量)',
2485
+ el: 'hs-switch',
2486
+ },
2487
+ { prop: 'loading', label: '表格是否显示加载中', type: '', el: 'hs-switch' },
2488
+ { prop: 'round', label: '是否为圆角边框', type: '', el: 'hs-switch' },
2489
+ {
2490
+ prop: 'stripe',
2491
+ label: '是否带有斑马纹',
2492
+ type: '',
2493
+ tooltip: '是否带有斑马纹(需要注意的是,在可编辑表格场景下,临时插入的数据不会有斑马纹样式)',
2494
+ el: 'hs-switch',
2495
+ },
2496
+ {
2497
+ prop: 'autoResize',
2498
+ label: '监听父元素变化重新计算表格',
2499
+ tooltip: '自动监听父元素的变化去重新计算表格(对于父元素可能存在动态变化、显示隐藏的容器中、列宽异常等场景中的可能会用到)',
2500
+ type: '',
2501
+ el: 'hs-switch',
2502
+ },
2503
+ {
2504
+ prop: 'syncResize',
2505
+ label: '随属性的变化重新计算表格',
2506
+ type: '',
2507
+ tooltip:
2508
+ '自动跟随某个属性的变化去重新计算表格,和手动调用 recalculate 方法是一样的效果(对于通过某个属性来控制显示/隐藏切换时可能会用到)',
2509
+ el: 'hs-switch',
2510
+ },
2511
+ { prop: 'showFooter', label: '是否显示表尾', el: 'hs-switch' },
2512
+ { prop: 'is_slot_loading', label: '自定义加载中模板', el: 'hs-switch' },
2513
+ { prop: 'is_slot_empty', label: '自定义空数据时显示模板', el: 'hs-switch' },
2514
+ { prop: 'rowClassName', label: '给行附加样式类', tooltip: '给行附加 className', type: 'textarea', el: 'hs-input' },
2515
+ { prop: 'cellClassName', label: '给单元格附加样式类', type: 'textarea', tooltip: '给单元格附加 className', el: 'hs-input' },
2516
+ { prop: 'headerRowClassName', label: '给表头的行附加样式类', tooltip: '给表头的行附加 className', type: 'textarea', el: 'hs-input' },
2517
+ {
2518
+ prop: 'headerCellClass-name',
2519
+ label: '给表头的单元格附加样式类',
2520
+ type: 'textarea',
2521
+ tooltip: '给表头的单元格附加 className',
2522
+ el: 'hs-input',
2523
+ },
2524
+ { prop: 'footerRowClassName', label: '给表尾的行附加样式类', tooltip: '给表尾的行附加 className', type: 'textarea', el: 'hs-input' },
2525
+ { prop: 'footerCellClassName', label: '给表尾的单元格附加样式类', type: 'textarea', el: 'hs-input' },
2526
+ { prop: 'footerMethod', label: '表尾的数据获取方法', tooltip: '表尾的数据获取方法,返回一个二维数组', type: 'textarea', el: 'hs-input' },
2527
+ {
2528
+ prop: 'mergeCells',
2529
+ label: '临时合并指定的单元格',
2530
+ tooltip: '临时合并指定的单元格 (不能用于展开行,不建议用于固定列、树形结构)',
2531
+ type: 'textarea',
2532
+ el: 'hs-input',
2533
+ },
2534
+ {
2535
+ prop: 'mergeFooterItems',
2536
+ label: '临时合并表尾',
2537
+ tooltip: '临时合并表尾 (不能用于展开行,不建议用于固定列、树形结构)',
2538
+ type: 'textarea',
2539
+ el: 'hs-input',
2540
+ },
2541
+ { prop: 'params', label: '自定义参数', type: 'textarea', el: 'hs-input' },
2542
+ { prop: 'is_apply_page', label: '是否分页', el: 'hs-switch' },
2543
+ ],
2544
+ baseVisible: false,
2545
+ pageVisible: false,
2546
+ tableAttrConfig: [
2547
+ {
2548
+ key: 'columnConfig',
2549
+ visible: false,
2550
+ title: '列的默认参数',
2551
+ columnConfig: [
2552
+ { prop: 'useKey', label: '是否为每列设置key属性', tooltip: '是否需要为每一列的 VNode 设置 key 属性', type: '', el: 'hs-switch' },
2553
+ { prop: 'isCurrent', label: '点击列头当前列是否高亮', tooltip: '当鼠标点击列头时,是否要高亮当前列', type: '', el: 'hs-switch' },
2554
+ {
2555
+ prop: 'isHover',
2556
+ label: '当鼠标移到列头时,是否要高亮当前头',
2557
+ tooltip: '当鼠标移到列头时,是否要高亮当前列头',
2558
+ type: '',
2559
+ el: 'hs-switch',
2560
+ },
2561
+ { prop: 'resizable', label: '每一列是否启用列宽调整', type: '', tooltip: '每一列是否启用列宽调整', el: 'hs-switch' },
2562
+ { prop: 'width', label: '每一列的宽度', tooltip: '每一列的宽度', type: '', el: 'hs-input' },
2563
+ { prop: 'minWidth', label: '每一列的最小宽度', tooltip: '每一列的最小宽度', type: '', el: 'hs-input' },
2564
+ {
2565
+ prop: 'maxFixedSize',
2566
+ label: '固定列允许设置的最大数量',
2567
+ tooltip: '固定列允许设置的最大数量(如果是分组,则一个分组算一个',
2568
+ type: 'number',
2569
+ el: 'hs-input',
2570
+ },
2571
+ {
2572
+ prop: 'header-export-method',
2573
+ label: '每一列的自定义表头单元格数据导出方法',
2574
+ tooltip: '每一列的自定义表头单元格数据导出方法,返回自定义的标题',
2575
+ type: 'textarea',
2576
+ el: 'hs-input',
2577
+ },
2578
+ {
2579
+ prop: 'export-method',
2580
+ label: '每一列的自定义单元格数据导出方法',
2581
+ tooltip: '每一列的自定义单元格数据导出方法,返回自定义的值',
2582
+ type: 'textarea',
2583
+ el: 'hs-input',
2584
+ },
2585
+ {
2586
+ prop: 'footer-export-method',
2587
+ label: '每一列的自定义表尾单元格数据导出方法',
2588
+ tooltip: '每一列的自定义表尾单元格数据导出方法,返回自定义的值',
2589
+ type: 'textarea',
2590
+ el: 'hs-input',
2591
+ },
2592
+ ],
2593
+ },
2594
+ {
2595
+ key: 'rowConfig',
2596
+ visible: false,
2597
+ title: '行配置信息',
2598
+ rowConfig: [
2599
+ { prop: 'useKey', label: '是否为每行设置key属性', type: '', tooltip: '是否需要为每一行的 VNode 设置 key 属性', el: 'hs-switch' },
2600
+ {
2601
+ prop: 'keyField',
2602
+ label: '自定义行主键的字段名',
2603
+ type: '',
2604
+ tooltip: '自定义行数据唯一主键的字段名(默认自动生成)',
2605
+ el: 'hs-input',
2606
+ },
2607
+ { prop: 'isCurrent', label: '点击行是否要高亮当前行', tooltip: '当鼠标点击行时,是否要高亮当前行', type: '', el: 'hs-switch' },
2608
+ { prop: 'isHover', label: '鼠标悬浮行是否高亮显示', tooltip: '当鼠标移到行时,是否要高亮当前行', type: '', el: 'hs-switch' },
2609
+ { prop: 'height', label: '每一行的高度', tooltip: '只对 show-overflow 有效,每一行的高度', type: 'number', el: 'hs-input' },
2610
+ ],
2611
+ },
2612
+ {
2613
+ key: 'resizeConfig',
2614
+ visible: false,
2615
+ title: '响应式布局配置项',
2616
+ resizeConfig: [
2617
+ {
2618
+ prop: 'refreshDelay',
2619
+ label: '刷新延时时长(毫秒)',
2620
+ type: 'number',
2621
+ el: 'hs-input',
2622
+ tooltip: '只对 auto-resize 有效,刷新延时,当父容器发生变化时,至少多少毫秒刷新布局',
2623
+ },
2624
+ ],
2625
+ },
2626
+ {
2627
+ key: 'resizableConfig',
2628
+ visible: false,
2629
+ title: '列宽拖动配置项',
2630
+ resizableConfig: [{ prop: 'minWidth', label: '列宽拖动的最小宽度', type: '', tooltip: '列宽拖动的最小宽度', el: 'hs-input' }],
2631
+ },
2632
+ {
2633
+ key: 'seqConfig',
2634
+ visible: false,
2635
+ title: '序号配置项',
2636
+ seqConfig: [
2637
+ { prop: 'seqMethod', label: '自定义序号的方法', type: 'textarea', el: 'hs-input', tooltip: '自定义序号的方法返回处理后的值' },
2638
+ ],
2639
+ },
2640
+ {
2641
+ key: 'sortConfig',
2642
+ visible: false,
2643
+ title: '排序配置项',
2644
+ sortConfig: [
2645
+ { prop: 'orders', label: '自定义序号的方法', type: 'textarea', tooltip: '自定义轮转顺序', el: 'hs-input' },
2646
+ {
2647
+ prop: 'sortMethod',
2648
+ label: '全局排序方法',
2649
+ type: 'textarea',
2650
+ tooltip: '全局排序方法,当触发排序时会调用该函数返回排序后的列表',
2651
+ el: 'hs-input',
2652
+ },
2653
+ { prop: 'multiple', label: '是否启用多列组合筛选', type: '', tooltip: '是否启用多列组合筛选', el: 'hs-switch' },
2654
+ {
2655
+ prop: 'chronological',
2656
+ label: '是否按照触发顺序进行排序',
2657
+ type: '',
2658
+ tooltip: '只对 multiple 有效,是否按照先后触发顺序进行排序',
2659
+ el: 'hs-switch',
2660
+ },
2661
+ {
2662
+ prop: 'remote',
2663
+ label: '所有列是否使用服务端排序',
2664
+ type: '',
2665
+ tooltip: '所有列是否使用服务端排序,如果设置为 true 则不会对数据进行处理',
2666
+ el: 'hs-switch',
2667
+ },
2668
+ {
2669
+ prop: 'trigger',
2670
+ label: '触发方式',
2671
+ type: '',
2672
+ tooltip: '触发方式(注:当多种功能重叠时,会同时触发)',
2673
+ el: 'hs-select',
2674
+ cel: 'hs-option',
2675
+ op: [
2676
+ { label: '点击按钮', value: 'default' },
2677
+ { label: '点击表头', value: 'cell' },
2678
+ ],
2679
+ },
2680
+ { prop: 'showIcon', label: '是否显示列头排序图标', type: '', tooltip: '是否显示列头排序图标', el: 'hs-switch' },
2681
+ { prop: 'iconAsc', label: '自定义升序的图标', tooltip: '自定义升序的图标', type: '', el: 'hs-input' },
2682
+ { prop: 'iconDesc', label: '自定义降序的图标', tooltip: '自定义降序的图标', type: '', el: 'hs-input' },
2683
+ ],
2684
+ second_config: [
2685
+ {
2686
+ key: 'defaultSort',
2687
+ visible: false,
2688
+ title: '默认排序',
2689
+ defaultSort: [
2690
+ { prop: 'field', label: '列字段名', el: 'hs-input' },
2691
+ { prop: 'order', label: '排序方式', el: 'hs-input' },
2692
+ ],
2693
+ },
2694
+ ],
2695
+ },
2696
+ {
2697
+ key: 'filterConfig',
2698
+ visible: false,
2699
+ title: '筛选配置项',
2700
+ filterConfig: [
2701
+ {
2702
+ prop: 'remote',
2703
+ label: '所有列是否使用服务端筛选',
2704
+ type: '',
2705
+ tooltip: '所有列是否使用服务端筛选,如果设置为 true 则不会对数据进行处理',
2706
+ el: 'hs-switch',
2707
+ },
2708
+ {
2709
+ prop: 'filterMethod',
2710
+ label: '全局筛选方法',
2711
+ type: 'textarea',
2712
+ tooltip: '全局筛选方法,当触发筛选时会调用该函数返回是否有效',
2713
+ el: 'hs-input',
2714
+ },
2715
+ { prop: 'showIcon', label: '是否显示列头筛选图标', tooltip: '是否显示列头筛选图标', type: '', el: 'hs-switch' },
2716
+ { prop: 'iconNone', label: '自定义无条件时显示的图标', type: '', tooltip: '自定义无条件时显示的图标', el: 'hs-input' },
2717
+ { prop: 'iconMatch', label: '自定义带条件时显示的图标', tooltip: '自定义带条件时显示的图标', type: '', el: 'hs-input' },
2718
+ { prop: 'confirmButtonText', label: '自定义确认按钮文本', tooltip: '自定义确认按钮文本', type: '', el: 'hs-input' },
2719
+ { prop: 'resetButtonText', label: '自定义重置按钮文本', type: '', el: 'hs-input' },
2720
+ ],
2721
+ },
2722
+ {
2723
+ key: 'radioConfig',
2724
+ visible: false,
2725
+ title: '单选框配置项',
2726
+ radioConfig: [
2727
+ { prop: 'strict', label: '严格模式,选中后不能取消', tooltip: '严格模式,选中后不能取消', type: '', el: 'hs-switch' },
2728
+ {
2729
+ prop: 'reserve',
2730
+ label: '是否保留勾选状态',
2731
+ tooltip: '是否保留勾选状态,例如:数据被刷新或者分页之后还保留之前选中的状态(需要有 rowConfig.keyField)',
2732
+ type: '',
2733
+ el: 'hs-switch',
2734
+ },
2735
+ { prop: 'labelField', label: '单选框显示的字段名', tooltip: '单选框显示的字段名,可以直接显示在单选框中', type: '', el: 'hs-input' },
2736
+ {
2737
+ prop: 'checkRowKey',
2738
+ label: '默认选中指定行',
2739
+ tooltip: '默认选中指定行(只会在初始化时被触发一次,需要有 rowConfig.keyField)',
2740
+ type: '',
2741
+ el: 'hs-input',
2742
+ },
2743
+ {
2744
+ prop: 'visibleMethod',
2745
+ label: '是否允许勾选的方法',
2746
+ tooltip: '是否允许勾选的方法,该方法,的返回值用来决定这一行的 radio 是否显示',
2747
+ type: 'textarea',
2748
+ el: 'hs-input',
2749
+ },
2750
+ {
2751
+ prop: 'checkMethod',
2752
+ label: '是否允许选中的方法',
2753
+ tooltip: '是否允许选中的方法,该方法的返回值用来决定这一行的 radio 是否可以选中',
2754
+ type: 'textarea',
2755
+ el: 'hs-input',
2756
+ },
2757
+ {
2758
+ prop: 'trigger',
2759
+ label: '触发方式',
2760
+ type: '',
2761
+ tooltip: '触发方式(注:当多种功能重叠时,会同时触发)',
2762
+ el: 'hs-select',
2763
+ cel: 'hs-option',
2764
+ op: [
2765
+ { label: '默认', value: 'default' },
2766
+ { label: '点击单元格触发', value: 'cell' },
2767
+ { label: '点击行触发', value: 'row' },
2768
+ ],
2769
+ },
2770
+ { prop: 'highlight', label: '高亮选中行', type: '', el: 'hs-switch' },
2771
+ ],
2772
+ },
2773
+ {
2774
+ key: 'checkboxConfig',
2775
+ visible: false,
2776
+ title: '复选框配置项',
2777
+ checkboxConfig: [
2778
+ { prop: 'labelField', label: '复选框显示的字段名', tooltip: '复选框显示的字段名,可以直接显示在复选框中', type: '', el: 'hs-input' },
2779
+ { prop: 'checkField', label: '绑定选中属性', tooltip: '绑定选中属性(行数据中必须存在该字段,否则无效)', type: '', el: 'hs-input' },
2780
+ {
2781
+ prop: 'indeterminateField',
2782
+ label: '绑定半选属性',
2783
+ tooltip: '绑定半选属性(行数据中必须存在该字段,否则无效)',
2784
+ type: '',
2785
+ el: 'hs-input',
2786
+ },
2787
+ {
2788
+ prop: 'showHeader',
2789
+ label: '是否显示全选按钮',
2790
+ tooltip: '是否显示全选按钮(如果 checkStrictly=true 则默认为 false)',
2791
+ type: '',
2792
+ el: 'hs-switch',
2793
+ },
2794
+ { prop: 'checkAll', label: '默认勾选所有', tooltip: '默认勾选所有(只会在初始化时被触发一次)', type: '', el: 'hs-switch' },
2795
+ {
2796
+ prop: 'checkRowKeys',
2797
+ label: '默认勾选指定行',
2798
+ type: 'textarea',
2799
+ tooltip: '默认勾选指定行(只会在初始化时被触发一次,需要有 rowConfig.keyField)',
2800
+ el: 'hs-input',
2801
+ },
2802
+ {
2803
+ prop: 'checkStrictly',
2804
+ label: '是否严格的遵循父子不互相关联的做法',
2805
+ type: '',
2806
+ tooltip: '是否严格的遵循父子不互相关联的做法',
2807
+ el: 'hs-switch',
2808
+ },
2809
+ { prop: 'strict', label: '严格模式', type: '', tooltip: '严格模式,当数据为空或全部禁用时,列头的复选框为禁用状态', el: 'hs-switch' },
2810
+ {
2811
+ prop: 'visibleMethod',
2812
+ label: '是否允许勾选的方法',
2813
+ tooltip: '是否允许勾选的方法,该方法,的返回值用来决定这一行的 checkbox 是否显示',
2814
+ type: 'textarea',
2815
+ el: 'hs-input',
2816
+ },
2817
+ {
2818
+ prop: 'checkMethod',
2819
+ label: '是否允许勾选的方法',
2820
+ tooltip: '是否允许勾选的方法,该方法的返回值用来决定这一行的 checkbox 是否可以勾选',
2821
+ type: 'textarea',
2822
+ el: 'hs-input',
2823
+ },
2824
+ {
2825
+ prop: 'trigger',
2826
+ label: '触发方式',
2827
+ type: '',
2828
+ tooltip: '触发方式(注:当多种功能重叠时,会同时触发)',
2829
+ el: 'hs-select',
2830
+ cel: 'hs-option',
2831
+ op: [
2832
+ { label: '默认', value: 'default' },
2833
+ { label: '点击单元格触发', value: 'cell' },
2834
+ { label: '点击行触发', value: 'row' },
2835
+ ],
2836
+ },
2837
+ { prop: 'highlight', label: '高亮勾选行', type: '', el: 'hs-switch' },
2838
+ {
2839
+ prop: 'reserve',
2840
+ label: '是否保留勾选状态',
2841
+ tooltip: '是否保留勾选状态,对于某些场景可能会用到,比如数据被刷新之后还保留之前选中的状态(需要有 rowConfig.keyField)',
2842
+ type: '',
2843
+ el: 'hs-switch',
2844
+ },
2845
+ {
2846
+ prop: 'range',
2847
+ label: '开启复选框范围选择功能',
2848
+ type: '',
2849
+ tooltip: '开启复选框范围选择功能(启用后通过鼠标在复选框的列内滑动选中或取消指定行)',
2850
+ el: 'hs-switch',
2851
+ },
2852
+ {
2853
+ prop: 'isShiftKey',
2854
+ label: '开启复选框指定行选择功能',
2855
+ tooltip: '开启复选框指定行选择功能(启用后通过鼠标点击和 shift 键选取指定范围的行)',
2856
+ type: '',
2857
+ el: 'hs-switch',
2858
+ },
2859
+ ],
2860
+ },
2861
+ {
2862
+ key: 'tooltipConfig',
2863
+ visible: false,
2864
+ title: 'tooltip 配置项',
2865
+ tooltipConfig: [
2866
+ { prop: 'showAll', label: '所有单元格开启工具提示', tooltip: '所有单元格开启工具提示', type: '', el: 'hs-switch' },
2867
+ {
2868
+ prop: 'theme',
2869
+ label: '主题颜色',
2870
+ tooltip: 'tooltip 的主题颜色',
2871
+ type: '',
2872
+ el: 'hs-select',
2873
+ cel: 'hs-option',
2874
+ op: [
2875
+ { label: '暗黑', value: 'dark' },
2876
+ { label: '明亮', value: 'light' },
2877
+ ],
2878
+ },
2879
+ { prop: 'enterable', label: '鼠标是否可进入到工具提示中', tooltip: '鼠标是否可进入到工具提示中', type: '', el: 'hs-switch' },
2880
+ {
2881
+ prop: 'enterDelay',
2882
+ label: '鼠标移入后延时多少才显示工具提示',
2883
+ tooltip: '鼠标移入后延时多少才显示工具提示',
2884
+ type: 'number',
2885
+ el: 'hs-input',
2886
+ },
2887
+ { prop: 'leaveDelay', label: '鼠标移出后延时多少才隐藏工具提示', type: 'number', el: 'hs-input' },
2888
+ {
2889
+ prop: 'contentMethod',
2890
+ label: '通过返回值来重写默认的提示内容',
2891
+ type: 'textarea',
2892
+ el: 'hs-input',
2893
+ tooltip: '该方法可以通过返回值来重写默认的提示内容,可以返回 null 使用默认的提示内容,可以返回空内容去掉指定单元格的提示内容',
2894
+ },
2895
+ ],
2896
+ },
2897
+ {
2898
+ key: 'expandConfig',
2899
+ visible: false,
2900
+ title: '展开行配置项(不支持虚拟滚动)',
2901
+ expandConfig: [
2902
+ { prop: 'labelField', label: '展开列显示的字段名', type: '', tooltip: '展开列显示的字段名,可以直接显示在单元格中', el: 'hs-input' },
2903
+ { prop: 'expandAll', label: '默认展开所有行', type: '', tooltip: '默认展开所有行(只会在初始化时被触发一次)', el: 'hs-switch' },
2904
+ {
2905
+ prop: 'expandRowKeys',
2906
+ label: '默认展开指定行',
2907
+ type: 'textarea',
2908
+ tooltip: '默认展开指定行(只会在初始化时被触发一次,需要有 rowConfig.keyField)',
2909
+ el: 'hs-input',
2910
+ },
2911
+ { prop: 'accordion', label: '每次只能展开一行', type: '', el: 'hs-switch' },
2912
+ { prop: 'height', label: '展开内容的高度', tooltip: '展开内容的高度,默认自适应高度', type: '', el: 'hs-input' },
2913
+ {
2914
+ prop: 'trigger',
2915
+ label: '触发方式',
2916
+ type: '',
2917
+ tooltip: '触发方式(注:当多种功能重叠时,会同时触发)',
2918
+ el: 'hs-select',
2919
+ cel: 'hs-option',
2920
+ op: [
2921
+ { label: '默认', value: 'default' },
2922
+ { label: '点击单元格触发', value: 'cell' },
2923
+ { label: '点击行触发', value: 'row' },
2924
+ ],
2925
+ },
2926
+ { prop: 'lazy', label: '是否使用懒加载', type: '', el: 'hs-switch' },
2927
+ {
2928
+ prop: 'loadMethod',
2929
+ label: '该方法用于异步加载展开后的内容',
2930
+ type: 'textarea',
2931
+ tooltip: '该方法用于异步加载展开后的内容(必须返回 Promise<any[]> 对象)',
2932
+ el: 'hs-input',
2933
+ },
2934
+ {
2935
+ prop: 'toggleMethod',
2936
+ label: '该方法在展开或关闭触发之前调用',
2937
+ tooltip: '该方法在展开或关闭触发之前调用,可以通过返回值来决定是否允许继续执行',
2938
+ type: 'textarea',
2939
+ el: 'hs-input',
2940
+ },
2941
+ {
2942
+ prop: 'visibleMethod',
2943
+ label: '是否允许显示展开按钮',
2944
+ tooltip: '该函数的返回值用来决定是否允许显示展开按钮',
2945
+ type: 'textarea',
2946
+ el: 'hs-input',
2947
+ },
2948
+ {
2949
+ prop: 'reserve',
2950
+ label: '是否保留展开状态',
2951
+ type: '',
2952
+ tooltip: '是否保留展开状态,对于某些场景可能会用到,比如数据被刷新之后还保留之前展开的状态(需要有 rowConfig.keyField)',
2953
+ el: 'hs-switch',
2954
+ },
2955
+ { prop: 'showIcon', label: '是否显示图标按钮', type: '', el: 'hs-switch' },
2956
+ { prop: 'iconOpen', label: '自定义展开后显示的图标', type: '', el: 'hs-input' },
2957
+ { prop: 'iconClose', label: '自定义收起后显示的图标', type: '', el: 'hs-input' },
2958
+ { prop: 'iconLoaded', label: '自定义懒加载中显示的图标', type: '', el: 'hs-input' },
2959
+ ],
2960
+ },
2961
+ {
2962
+ key: 'treeConfig',
2963
+ visible: false,
2964
+ title: '树形结构配置项',
2965
+ treeConfig: [
2966
+ { prop: 'transform', label: '自动将列表转为树结构', tooltip: '自动将列表转为树结构(支持虚拟滚动)', type: '', el: 'hs-switch' },
2967
+ { prop: 'rowField', label: '树节点的字段名', tooltip: '用于 treeConfig.transform,树节点的字段名', type: '', el: 'hs-input' },
2968
+ { prop: 'parentField', label: '树父节点的字段名', tooltip: '用于 treeConfig.transform,树父节点的字段名', type: '', el: 'hs-input' },
2969
+ { prop: 'childrenField', label: '树子节点的字段名', type: '', el: 'hs-input' },
2970
+ { prop: 'indent', label: '树节点的缩进', type: 'number', el: 'hs-input' },
2971
+ { prop: 'showLine', label: '树节点的连接线', type: '', tooltip: '树节点的连接线(启用连接线会降低渲染性能)', el: 'hs-switch' },
2972
+ {
2973
+ prop: 'expandAll',
2974
+ label: '默认展开所有子孙树节点',
2975
+ type: '',
2976
+ tooltip: '默认展开所有子孙树节点(只会在初始化时被触发一次)',
2977
+ el: 'hs-switch',
2978
+ },
2979
+ {
2980
+ prop: 'expandRowKeys',
2981
+ label: '默认展开指定树节点',
2982
+ type: 'textarea',
2983
+ el: 'hs-input',
2984
+ tooltip: '默认展开指定树节点(只会在初始化时被触发一次,需要有 rowConfig.keyField)',
2985
+ },
2986
+ { prop: 'accordion', label: '同级节点每次只展开一个', tooltip: '对于同一级的节点,每次只能展开一个', type: '', el: 'hs-switch' },
2987
+ {
2988
+ prop: 'trigger',
2989
+ label: '触发方式',
2990
+ type: '',
2991
+ tooltip: '触发方式(注:当多种功能重叠时,会同时触发)',
2992
+ el: 'hs-select',
2993
+ cel: 'hs-option',
2994
+ op: [
2995
+ { label: '默认', value: 'default' },
2996
+ { label: '点击单元格触发', value: 'cell' },
2997
+ { label: '点击行触发', value: 'row' },
2998
+ ],
2999
+ },
3000
+ {
3001
+ prop: 'lazy',
3002
+ label: '是否使用懒加载',
3003
+ type: '',
3004
+ tooltip: '是否使用懒加载(启用后只有指定 hasChild 字段的节点才允许被点击)',
3005
+ el: 'hs-switch',
3006
+ },
3007
+ {
3008
+ prop: 'hasChildField',
3009
+ label: '标识是否存在子节点',
3010
+ tooltip: '只对 lazy 启用后有效,标识是否存在子节点,从而控制是否允许被点击',
3011
+ type: '',
3012
+ el: 'hs-input',
3013
+ },
3014
+ {
3015
+ prop: 'loadMethod',
3016
+ label: '该方法用于异步加载子节点',
3017
+ type: 'textarea',
3018
+ tooltip: '该方法用于异步加载子节点(必须返回 Promise<any[]> 对象)',
3019
+ el: 'hs-input',
3020
+ },
3021
+ {
3022
+ prop: 'toggleMethod',
3023
+ label: '在展开或关闭触发判断是否继续执行',
3024
+ tooltip: '该方法在展开或关闭触发之前调用,可以通过返回值来决定是否允许继续执行',
3025
+ type: 'textarea',
3026
+ el: 'hs-input',
3027
+ },
3028
+ {
3029
+ prop: 'reserve',
3030
+ label: '是否保留展开状态',
3031
+ type: '',
3032
+ tooltip: '是否保留展开状态,对于某些场景可能会用到,比如数据被刷新之后还保留之前展开的状态(需要有 rowConfig.keyField)',
3033
+ el: 'hs-switch',
3034
+ },
3035
+ { prop: 'showIcon', label: '是否显示图标按钮', type: '', el: 'hs-switch' },
3036
+ { prop: 'iconOpen', label: '自定义展开后显示的图标', type: '', el: 'hs-input' },
3037
+ { prop: 'iconClose', label: '自定义收起后显示的图标', type: '', el: 'hs-input' },
3038
+ { prop: 'iconLoaded', label: '自定义懒加载中显示的图标', type: '', el: 'hs-input' },
3039
+ ],
3040
+ },
3041
+ {
3042
+ key: 'editConfig',
3043
+ visible: false,
3044
+ title: '可编辑配置项',
3045
+ editConfig: [
3046
+ {
3047
+ prop: 'trigger',
3048
+ label: '触发方式',
3049
+ type: '',
3050
+ el: 'hs-select',
3051
+ cel: 'hs-option',
3052
+ op: [
3053
+ { label: '手动触发(用于行编辑模式)', value: 'manual' },
3054
+ { label: '点击触发编辑', value: 'click' },
3055
+ { label: '双击触发编辑', value: 'dblclick' },
3056
+ ],
3057
+ },
3058
+ { prop: 'enabled', label: '是否启用', type: '', el: 'hs-switch' },
3059
+ {
3060
+ prop: 'mode',
3061
+ label: '编辑模式',
3062
+ type: '',
3063
+ el: 'hs-select',
3064
+ cel: 'hs-option',
3065
+ op: [
3066
+ { label: '单元格编辑模式', value: 'cell' },
3067
+ { label: '行编辑模式', value: 'row' },
3068
+ ],
3069
+ },
3070
+ { prop: 'showIcon', label: '是否显示列头编辑图标', tooltip: '是否显示列头编辑图标', type: '', el: 'hs-switch' },
3071
+ {
3072
+ prop: 'showStatus',
3073
+ label: '是否显示单元格新增与修改状态',
3074
+ type: '',
3075
+ tooltip: '只对 keep-source 开启有效,是否显示单元格新增与修改状态',
3076
+ el: 'hs-switch',
3077
+ },
3078
+ {
3079
+ prop: 'showUpdateStatus',
3080
+ label: '是否显示单元格修改状态',
3081
+ type: '',
3082
+ tooltip: '只对 keep-source 开启有效,是否显示单元格修改状态',
3083
+ el: 'hs-switch',
3084
+ },
3085
+ {
3086
+ prop: 'showInsertStatus',
3087
+ label: '是否显示单元格新增状态',
3088
+ tooltip: '只对 keep-source 开启有效,是否显示单元格新增状态',
3089
+ type: '',
3090
+ el: 'hs-switch',
3091
+ },
3092
+ { prop: 'showAsterisk', label: '是否显示必填字段的红色星号', tooltip: '是否显示必填字段的红色星号', type: '', el: 'hs-switch' },
3093
+ {
3094
+ prop: 'autoClear',
3095
+ label: '点空白处是否清除激活状态',
3096
+ type: '',
3097
+ tooltip: '当点击非编辑列之后,是否自动清除单元格的激活状态',
3098
+ el: 'hs-switch',
3099
+ },
3100
+ {
3101
+ prop: 'beforeEditMethod',
3102
+ label: '该单元格是否允许编辑',
3103
+ tooltip: '该方法的返回值用来决定该单元格是否允许编辑',
3104
+ type: 'textarea',
3105
+ el: 'hs-input',
3106
+ },
3107
+ { prop: 'icon', label: '自定义可编辑列的状态图标', type: '', el: 'hs-input' },
3108
+ ],
3109
+ },
3110
+ {
3111
+ key: 'validConfig',
3112
+ visible: false,
3113
+ title: '校验配置项',
3114
+ validConfig: [
3115
+ {
3116
+ prop: 'autoPos',
3117
+ label: '是否自动定位到校验不通过的单元格',
3118
+ tooltip: '是否自动定位到校验不通过的单元格',
3119
+ type: '',
3120
+ el: 'hs-switch',
3121
+ },
3122
+ { prop: 'showMessage', label: '是否显示错误显示', type: '', el: 'hs-switch' },
3123
+ ],
3124
+ },
3125
+ {
3126
+ key: 'editRules',
3127
+ visible: false,
3128
+ title: '校验规则配置项',
3129
+ editRules: [
3130
+ { prop: 'required', label: '是否必填', type: '', el: 'hs-switch' },
3131
+ { prop: 'min', label: '校验值最小长度', tooltip: '校验值最小长度(如果 type=number 则比较值大小)', type: 'number', el: 'hs-input' },
3132
+ { prop: 'max', label: '校验值最大长度', tooltip: '校验值最大长度(如果 type=number 则比较值大小)', type: 'number', el: 'hs-input' },
3133
+ {
3134
+ prop: 'type',
3135
+ label: '数据校验的类型',
3136
+ type: '',
3137
+ op: [
3138
+ { label: '数值', value: 'number' },
3139
+ { label: '字符串', value: 'string' },
3140
+ { label: '数组', value: 'array' },
3141
+ ],
3142
+ el: 'hs-select',
3143
+ cel: 'hs-option',
3144
+ },
3145
+ { prop: 'pattern', label: '正则校验', type: 'textarea', el: 'hs-input' },
3146
+ {
3147
+ prop: 'validator',
3148
+ label: '"自定义校验方法',
3149
+ tooltip: '自定义校验方法返回一个 Error 或者 Promise<new Error("提示消息")>',
3150
+ type: 'textarea',
3151
+ el: 'hs-input',
3152
+ },
3153
+ { prop: 'message', label: '校验提示内容', tooltip: '校验提示内容(支持开启国际化)', type: '', el: 'hs-input' },
3154
+ ],
3155
+ },
3156
+ {
3157
+ key: 'emptyRender',
3158
+ visible: false,
3159
+ title: '空内容渲染配置项',
3160
+ emptyRender: [{ prop: 'name', label: '渲染器名称', type: '', el: 'hs-input' }],
3161
+ },
3162
+ {
3163
+ key: 'loadingConfig',
3164
+ visible: false,
3165
+ title: '加载中配置项',
3166
+ loadingConfig: [
3167
+ { prop: 'icon', label: '显示图标', type: '', el: 'hs-input' },
3168
+ { prop: 'text', label: '显示文字', type: '', el: 'hs-input' },
3169
+ ],
3170
+ },
3171
+ {
3172
+ key: 'customConfig',
3173
+ visible: false,
3174
+ title: '个性化信息配置项',
3175
+ customConfig: [
3176
+ {
3177
+ prop: 'checkMethod',
3178
+ label: '自定义列是否允许列选中的方法',
3179
+ tooltip: '自定义列是否允许列选中的方法,该方法的返回值用来决定这一列的 checkbox 是否可以选中',
3180
+ type: 'textarea',
3181
+ el: 'hs-input',
3182
+ },
3183
+ ],
3184
+ second_config: [
3185
+ {
3186
+ key: 'storage',
3187
+ visible: false,
3188
+ title: '是否启用缓存本地保存',
3189
+ storage: [
3190
+ { prop: 'visible', label: '启用显示/隐藏列状态缓存', tooltip: '启用显示/隐藏列状态缓存', type: '', el: 'hs-switch' },
3191
+ { prop: 'resizable', label: '启用列宽状态缓存', type: '', el: 'hs-switch' },
3192
+ { prop: 'fixed', label: '启用固定列状态缓存', type: '', el: 'hs-switch' },
3193
+ ],
3194
+ },
3195
+ ],
3196
+ },
3197
+ {
3198
+ key: 'scrollX',
3199
+ visible: false,
3200
+ title: '横向虚拟滚动配置',
3201
+ scrollX: [
3202
+ { prop: 'enabled', label: '是否启用', el: 'hs-switch' },
3203
+ {
3204
+ prop: 'gt',
3205
+ label: '指定大于指定列时自动启动横向虚拟滚动',
3206
+ tooltip: '指定大于指定列时自动启动横向虚拟滚动,如果为 0 则总是启用;如果需要关闭,可以设置 enabled 为 false',
3207
+ type: 'number',
3208
+ el: 'hs-input',
3209
+ },
3210
+ {
3211
+ prop: 'oSize',
3212
+ label: '指定每次渲染的数据偏移量',
3213
+ tooltip: '指定每次渲染的数据偏移量,偏移量越大渲染次数就越少,但每次渲染耗时就越久(对于低性能浏览器可以设置大一点,减低渲染次数)',
3214
+ type: 'number',
3215
+ el: 'hs-input',
3216
+ },
3217
+ {
3218
+ prop: 'scrollToLeftOnChange',
3219
+ label: '数据改变滚动条是否复位',
3220
+ tooltip: '当数据源被更改时,自动将横向滚动条滚动到左侧',
3221
+ type: '',
3222
+ el: 'hs-switch',
3223
+ },
3224
+ ],
3225
+ },
3226
+ {
3227
+ key: 'scrollY',
3228
+ visible: false,
3229
+ title: '纵向虚拟滚动配置',
3230
+ scrollY: [
3231
+ { prop: 'enabled', label: '是否启用', type: '', el: 'hs-switch' },
3232
+ {
3233
+ prop: 'mode',
3234
+ label: '滚动模式',
3235
+ type: '',
3236
+ op: [
3237
+ { label: '默认', value: 'default' },
3238
+ { label: '无限滚动', value: 'wheel' },
3239
+ ],
3240
+ el: 'hs-select',
3241
+ cel: 'hs-option',
3242
+ },
3243
+ {
3244
+ prop: 'gt',
3245
+ label: '指定大于指定行时自动启动纵向虚拟滚动',
3246
+ tooltip:
3247
+ '指定大于指定行时自动启动纵向虚拟滚动,如果为 0 则总是启用;如果需要关闭,可以设置 enabled 为 false(注:启用纵向虚拟滚动之后将不能支持动态行高)',
3248
+ type: 'number',
3249
+ el: 'hs-input',
3250
+ },
3251
+ {
3252
+ prop: 'oSize',
3253
+ label: '指定每次渲染的数据偏移量',
3254
+ tooltip: '指定每次渲染的数据偏移量,偏移量越大渲染次数就越少,但每次渲染耗时就越久(对于低性能浏览器可以设置大一点,减低渲染次数)',
3255
+ type: 'number',
3256
+ el: 'hs-input',
3257
+ },
3258
+ {
3259
+ prop: 'scrollToTopOnChange',
3260
+ label: '数据改变滚动条是否复位',
3261
+ tooltip: '当数据源被更改时,自动将纵向滚动条滚动到顶部',
3262
+ type: '',
3263
+ el: 'hs-switch',
3264
+ },
3265
+ ],
3266
+ },
3267
+ ],
3268
+ tablePageConfig: [
3269
+ {
3270
+ prop: 'size',
3271
+ label: '尺寸',
3272
+ el: 'hs-select',
3273
+ cel: 'hs-option',
3274
+ op: [
3275
+ { label: '中等', value: 'medium' },
3276
+ { label: '小号', value: 'small' },
3277
+ { label: '迷你', value: 'mini' },
3278
+ ],
3279
+ },
3280
+ { prop: 'loading', label: '是否加载中', el: 'hs-switch' },
3281
+ { prop: 'layouts', label: '自定义布局', type: 'textarea', el: 'hs-input' },
3282
+ { prop: 'currentPage', label: '当前页', type: 'number', el: 'hs-input' },
3283
+ { prop: 'pageSize', label: '每页大小', type: 'number', el: 'hs-input' },
3284
+ { prop: 'total', label: '总条数', type: 'number', el: 'hs-input' },
3285
+ { prop: 'pagerCount', label: '显示页码按钮的数量', type: 'number', el: 'hs-input' },
3286
+ { prop: 'pageSizes', label: '每页大小选项列表', type: 'textarea', el: 'hs-input' },
3287
+ {
3288
+ prop: 'align',
3289
+ label: '对齐方式',
3290
+ type: 'number',
3291
+ el: 'hs-select',
3292
+ cel: 'hs-option',
3293
+ op: [
3294
+ { label: '左对齐', value: 'left' },
3295
+ { label: '居中对齐', value: 'center' },
3296
+ { label: '右对齐', value: 'right' },
3297
+ ],
3298
+ },
3299
+ { prop: 'border', label: '带边框', el: 'hs-switch' },
3300
+ { prop: 'background', label: '带背景颜色', el: 'hs-switch' },
3301
+ { prop: 'perfect', label: '配套的样式', el: 'hs-switch' },
3302
+ { prop: 'className', label: '给分页附加 className', type: 'textarea', el: 'hs-input' },
3303
+ { prop: 'autoHidden', label: '当只有一页时自动隐藏', el: 'hs-switch' },
3304
+ { prop: 'iconPrevPage', label: '自定义上一页图标', el: 'hs-input' },
3305
+ { prop: 'iconJumpPrev', label: '自定义向上跳页图标', el: 'hs-input' },
3306
+ { prop: 'iconJumpNext', label: '自定义向下跳页图标', el: 'hs-input' },
3307
+ { prop: 'iconnextPage', label: '自定义下一页图标', el: 'hs-input' },
3308
+ { prop: 'iconJumpMore', label: '自定义跳页显示图标', el: 'hs-input' },
3309
+ ],
3310
+ },
3311
+ },
3312
+ ],
3313
+ form: {
3314
+ id: '1709531697525',
3315
+ baseData: {
3316
+ size: 'default',
3317
+ rules: '',
3318
+ inline: true,
3319
+ labelPosition: 'left',
3320
+ labelWidth: '80',
3321
+ labelSuffix: '',
3322
+ hideRequiredAsterisk: false,
3323
+ requireAsteriskPosition: 'left',
3324
+ showMessage: true,
3325
+ inlineMessage: false,
3326
+ statusIcon: false,
3327
+ validateOnRuleChange: true,
3328
+ disabled: false,
3329
+ scrollToError: false,
3330
+ gutter: 10,
3331
+ justify: 'start',
3332
+ align: '',
3333
+ isSetDictDefaultValue: true,
3334
+ isSupportShortcutKey: true,
3335
+ submitUrl: '1',
3336
+ submitSuccessMsg: '1',
3337
+ },
3338
+ baseConfig: [
3339
+ { prop: 'rules', label: '表单验证规则', type: 'textarea', el: 'hs-input' },
3340
+ { prop: 'inline', label: '行内表单模式', el: 'hs-switch' },
3341
+ {
3342
+ prop: 'labelPosition',
3343
+ label: '表单域标签的位置',
3344
+ el: 'hs-select',
3345
+ tooltip: '表单域标签的位置, 当设置为 left 或 right 时,则也需要设置 label-width 属性',
3346
+ required: false,
3347
+ multiple: false,
3348
+ op: [
3349
+ { label: ' 靠左', value: 'left' },
3350
+ { label: '靠右', value: 'right' },
3351
+ { label: '靠上', value: 'top' },
3352
+ ],
3353
+ cel: 'hs-option',
3354
+ },
3355
+ {
3356
+ prop: 'labelWidth',
3357
+ label: '标签的宽度',
3358
+ tooltip: '标签的长度,例如 "50px"。 作为 Form 直接子元素的 form-item 会继承该值。 可以使用 auto。',
3359
+ el: 'hs-input',
3360
+ },
3361
+ { prop: 'labelSuffix', label: '表单域标签的后缀', tooltip: '表单域标签的后缀', el: 'hs-input' },
3362
+ { prop: 'hideRequiredAsterisk', label: '是否隐藏必填标识', tooltip: '是否隐藏必填字段标签旁边的红色星号。', el: 'hs-switch' },
3363
+ {
3364
+ prop: 'requireAsteriskPosition',
3365
+ label: '必填标识的位置',
3366
+ tooltip: '星号的位置。',
3367
+ el: 'hs-select',
3368
+ op: [
3369
+ { label: ' 靠左', value: 'left' },
3370
+ { label: '靠右', value: 'right' },
3371
+ ],
3372
+ cel: 'hs-option',
3373
+ },
3374
+ { prop: 'showMessage', label: '是否显示校验错误信息', tooltip: '是否显示校验错误信息', el: 'hs-switch' },
3375
+ { prop: 'inlineMessage', label: '是否以行内形式展示校验信息', tooltip: '是否以行内形式展示校验信息', el: 'hs-switch' },
3376
+ { prop: 'statusIcon', label: '是否框中显示校验反馈图标', tooltip: '是否在输入框中显示校验结果反馈图标', el: 'hs-switch' },
3377
+ { prop: 'validateOnRuleChange', label: '是否触发第一次验证', tooltip: '是否在 rules 属性改变后立即触发一次验证', el: 'hs-switch' },
3378
+ {
3379
+ prop: 'size',
3380
+ label: '表单项组件的尺寸',
3381
+ el: 'hs-select',
3382
+ tooltip: '用于控制该表单内组件的尺寸',
3383
+ op: [
3384
+ { label: ' 大尺寸', value: 'large' },
3385
+ { label: '默认尺寸', value: 'default' },
3386
+ { label: '小尺寸', value: 'small' },
3387
+ ],
3388
+ cel: 'hs-option',
3389
+ },
3390
+ {
3391
+ prop: 'disabled',
3392
+ label: '是否禁用表单项',
3393
+ tooltip: '是否禁用该表单内的所有组件。 如果设置为 true, 它将覆盖内部组件的 disabled 属性',
3394
+ el: 'hs-switch',
3395
+ },
3396
+ { prop: 'scrollToError', label: '滚动至首个校验失败的表单', tooltip: '当校验失败时,滚动到第一个错误表单项', el: 'hs-switch' },
3397
+ {
3398
+ label: '是否取字典项的默认值',
3399
+ prop: 'isSetDictDefaultValue',
3400
+ el: 'hs-switch',
3401
+ tooltip: '当校验有失败结果时,滚动到第一个失败的表单项目 可通过 scrollIntoView 配置',
3402
+ },
3403
+ { label: '是否支持表单回车快捷功能', prop: 'isSupportShortcutKey', el: 'hs-switch' },
3404
+ { label: '栅格间隔', prop: 'gutter', type: 'number', el: 'hs-input' },
3405
+ {
3406
+ label: '盒子布局下的水平排列方式',
3407
+ prop: 'justify',
3408
+ el: 'hs-select',
3409
+ tooltip: 'flex 布局下的水平排列方式',
3410
+ op: [
3411
+ { label: '从起始方向排列', value: 'start' },
3412
+ { label: '从末尾方向排列', value: 'end' },
3413
+ { label: '居中', value: 'center' },
3414
+ { label: '两端对齐均匀分布', value: 'space-between' },
3415
+ { label: '两端是中间间隔的一半均匀分布', value: 'space-around' },
3416
+ { label: '间隔相等均匀分布', value: 'space-evenly' },
3417
+ ],
3418
+ cel: 'hs-option',
3419
+ },
3420
+ {
3421
+ label: '盒子布局下的垂直排列方式',
3422
+ prop: 'align',
3423
+ el: 'hs-select',
3424
+ tooltip: 'flex 布局下的垂直排列方式',
3425
+ op: [
3426
+ { label: '自上而下', value: 'top' },
3427
+ { label: '居中', value: 'middle' },
3428
+ { label: '自下而上', value: 'bottom' },
3429
+ ],
3430
+ cel: 'hs-option',
3431
+ },
3432
+ { label: '自定义元素标签', prop: 'tag', el: 'hs-input' },
3433
+ { label: '提交表单的请求api', prop: 'submitUrl', el: 'hs-input' },
3434
+ { label: '表单提交成功的提示信息', prop: 'submitSuccessMsg', el: 'hs-input' },
3435
+ ],
3436
+ formData: { name: '', phone: '' },
3437
+ formConfig: [
3438
+ {
3439
+ id: '1709531698340',
3440
+ data: {
3441
+ baseData: { label: '姓名', prop: 'name', el: 'hs-input', isSlot: false, isApply: true, isShow: true },
3442
+ elData: {
3443
+ attrs: {
3444
+ size: 'small',
3445
+ type: 'text',
3446
+ clearable: false,
3447
+ 'show-password': false,
3448
+ disabled: false,
3449
+ autosize: false,
3450
+ autocomplete: 'off',
3451
+ autofocus: false,
3452
+ 'validate-event': true,
3453
+ },
3454
+ rules: { required: false, rules: '' },
3455
+ },
3456
+ },
3457
+ baseConfig: {
3458
+ title: { subTitle: '表单项属性' },
3459
+ visible: true,
3460
+ list: [
3461
+ { prop: 'label', label: '参数名称', el: 'hs-input', slotValue: 'label' },
3462
+ { prop: 'prop', label: '查询参数', el: 'hs-input' },
3463
+ {
3464
+ prop: 'el',
3465
+ label: '组件类型',
3466
+ clearable: false,
3467
+ tooltip: '下拉选择组件类型,组件类型取自配置文件',
3468
+ el: 'hs-select',
3469
+ cel: 'hs-option',
3470
+ op: [
3471
+ { label: '输入框', value: 'hs-input' },
3472
+ { label: '选择器', value: 'hs-select' },
3473
+ { label: '开关', value: 'hs-switch' },
3474
+ { label: '日期选择器', value: 'hs-date-picker' },
3475
+ { label: '按钮', value: 'hs-button' },
3476
+ { label: '自动补全', value: 'hs-autocomplete' },
3477
+ { label: '上传', value: 'hs-upload' },
3478
+ { label: '多选框', value: 'hs-checkbox' },
3479
+ { label: '单选框', value: 'hs-radio' },
3480
+ { label: '数字输入框', value: 'hs-input-number' },
3481
+ { label: '级联选择器', value: 'hs-cascader-panel' },
3482
+ { label: '树形选择', value: 'hs-tree-select' },
3483
+ ],
3484
+ },
3485
+ { prop: 'label-width', label: '标签宽度', el: 'hs-input' },
3486
+ { prop: 'isSlot', label: '是否自定义插槽', el: 'hs-switch', tooltip: '下拉选择,自定义模板,选择的名称就是模板名称' },
3487
+ { prop: 'isApply', label: '是否启用', tooltip: '是否启用该表单项', el: 'hs-switch' },
3488
+ { prop: 'isShow', label: '是否显示该表单项', el: 'hs-switch' },
3489
+ ],
3490
+ rules: {
3491
+ label: [{ required: true, message: '请输入参数名称' }],
3492
+ prop: [{ required: true, message: '请输入查询参数' }],
3493
+ el: [{ required: true, message: '请选择组件类型' }],
3494
+ },
3495
+ },
3496
+ elConfig: { title: { subTitle: '元素项属性' }, visible: true, list: [] },
3497
+ },
3498
+ {
3499
+ id: '1709531706043',
3500
+ data: { baseData: { label: '手机号', prop: 'phone', el: 'hs-input', isSlot: false, isApply: true, isShow: true }, elData: {} },
3501
+ baseConfig: {
3502
+ title: { subTitle: '表单项属性' },
3503
+ visible: true,
3504
+ list: [
3505
+ { prop: 'label', label: '参数名称', el: 'hs-input', slotValue: 'label' },
3506
+ { prop: 'prop', label: '查询参数', el: 'hs-input' },
3507
+ {
3508
+ prop: 'el',
3509
+ label: '组件类型',
3510
+ clearable: false,
3511
+ tooltip: '下拉选择组件类型,组件类型取自配置文件',
3512
+ el: 'hs-select',
3513
+ cel: 'hs-option',
3514
+ op: [
3515
+ { label: '输入框', value: 'hs-input' },
3516
+ { label: '选择器', value: 'hs-select' },
3517
+ { label: '开关', value: 'hs-switch' },
3518
+ { label: '日期选择器', value: 'hs-date-picker' },
3519
+ { label: '按钮', value: 'hs-button' },
3520
+ { label: '自动补全', value: 'hs-autocomplete' },
3521
+ { label: '上传', value: 'hs-upload' },
3522
+ { label: '多选框', value: 'hs-checkbox' },
3523
+ { label: '单选框', value: 'hs-radio' },
3524
+ { label: '数字输入框', value: 'hs-input-number' },
3525
+ { label: '级联选择器', value: 'hs-cascader-panel' },
3526
+ { label: '树形选择', value: 'hs-tree-select' },
3527
+ ],
3528
+ },
3529
+ { prop: 'label-width', label: '标签宽度', el: 'hs-input' },
3530
+ { prop: 'isSlot', label: '是否自定义插槽', el: 'hs-switch', tooltip: '下拉选择,自定义模板,选择的名称就是模板名称' },
3531
+ { prop: 'isApply', label: '是否启用', tooltip: '是否启用该表单项', el: 'hs-switch' },
3532
+ { prop: 'isShow', label: '是否显示该表单项', el: 'hs-switch' },
3533
+ ],
3534
+ rules: {
3535
+ label: [{ required: true, message: '请输入参数名称' }],
3536
+ prop: [{ required: true, message: '请输入查询参数' }],
3537
+ el: [{ required: true, message: '请选择组件类型' }],
3538
+ },
3539
+ },
3540
+ elConfig: { title: { subTitle: '元素项属性' }, visible: false, list: [] },
3541
+ },
3542
+ ],
3543
+ },
3544
+ },
3545
+ ];
3546
+ // 角色配置数据
3547
+ const roleConfigData: Record<string, IFormTable.Data>[] = [];
3548
+
3549
+ // 页面树结构数据
3550
+ const PageData = [
3551
+ {
3552
+ label: '首页',
3553
+ value: 'home',
3554
+ },
3555
+ {
3556
+ label: '系统设置',
3557
+ children: [
3558
+ {
3559
+ label: '菜单管理',
3560
+ value: 'menu',
3561
+ },
3562
+ {
3563
+ label: '角色管理',
3564
+ value: 'role',
3565
+ },
3566
+ ],
3567
+ },
3568
+ {
3569
+ label: '测试菜单',
3570
+ children: [
3571
+ {
3572
+ label: '测试菜单1',
3573
+ value: 'test_1',
3574
+ },
3575
+ {
3576
+ label: '测试菜单2',
3577
+ value: 'test_2',
3578
+ },
3579
+ ],
3580
+ },
3581
+ ];
3582
+ const connectData = {
3583
+ // 'home':'',
3584
+ home: menuConfigData,
3585
+ role: roleConfigData,
3586
+ };
3587
+
3588
+ // 页面权限数据
3589
+ const pageAuthData = [
3590
+ {
3591
+ name: '',
3592
+ id: '',
3593
+ btn: {
3594
+ name: '按钮',
3595
+ id: 'btn',
3596
+ list: [
3597
+ {
3598
+ name: '按钮1',
3599
+ id: 'btn_id_1',
3600
+ },
3601
+ ],
3602
+ },
3603
+ form: {
3604
+ name: '表单',
3605
+ id: 'form',
3606
+ list: [
3607
+ {
3608
+ name: '表单项1',
3609
+ id: 'form_item_1',
3610
+ },
3611
+ ],
3612
+ },
3613
+ table: {
3614
+ name: '表格',
3615
+ id: 'table',
3616
+ list: [
3617
+ {
3618
+ name: '表格配置1',
3619
+ id: 'table_1',
3620
+ list: [
3621
+ {
3622
+ name: '展示列_1',
3623
+ id: 'table_1_tabs_1',
3624
+ },
3625
+ {
3626
+ name: '展示列_1_2',
3627
+ id: 'table_1_tabs_2',
3628
+ },
3629
+ ],
3630
+ },
3631
+ {
3632
+ name: '表格配置2',
3633
+ id: 'table_2',
3634
+ list: [
3635
+ {
3636
+ name: '展示列_2_1',
3637
+ id: 'table_2_tabs_1',
3638
+ },
3639
+ ],
3640
+ },
3641
+ ],
3642
+ },
3643
+ },
3644
+ {
3645
+ name: '',
3646
+ id: '',
3647
+ btn: {
3648
+ name: '按钮',
3649
+ id: 'btn',
3650
+ list: [
3651
+ {
3652
+ name: '按钮1',
3653
+ id: 'btn_id_1',
3654
+ },
3655
+ ],
3656
+ },
3657
+ form: {
3658
+ name: '表单',
3659
+ id: 'form',
3660
+ list: [
3661
+ {
3662
+ name: '表单项1',
3663
+ id: 'form_item_1',
3664
+ },
3665
+ ],
3666
+ },
3667
+ table: {
3668
+ name: '表格',
3669
+ id: 'table',
3670
+ list: [
3671
+ {
3672
+ name: '表格配置1',
3673
+ id: 'table_1',
3674
+ list: [
3675
+ {
3676
+ name: '展示列_1',
3677
+ id: 'table_1_tabs_1',
3678
+ },
3679
+ {
3680
+ name: '展示列_1_2',
3681
+ id: 'table_1_tabs_2',
3682
+ },
3683
+ ],
3684
+ },
3685
+ {
3686
+ name: '表格配置2',
3687
+ id: 'table_2',
3688
+ list: [
3689
+ {
3690
+ name: '展示列_2_1',
3691
+ id: 'table_2_tabs_1',
3692
+ },
3693
+ ],
3694
+ },
3695
+ ],
3696
+ },
3697
+ },
3698
+ ];
3699
+
3700
+ export { connectData, pageAuthData, PageData };