cnhis-design-vue 2.1.57 → 2.1.59

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 (574) hide show
  1. package/.prettierrc.js +27 -27
  2. package/CHANGELOG.md +2610 -2634
  3. package/README.md +90 -90
  4. package/commitlint.config.js +1 -1
  5. package/es/affix/index.js +8 -8
  6. package/es/age/index.js +18 -18
  7. package/es/alert/index.js +8 -8
  8. package/es/anchor/index.js +8 -8
  9. package/es/auto-complete/index.js +8 -8
  10. package/es/avatar/index.js +8 -8
  11. package/es/back-top/index.js +8 -8
  12. package/es/badge/index.js +8 -8
  13. package/es/base/index.js +8 -8
  14. package/es/big-table/index.js +345 -333
  15. package/es/big-table/style.css +1 -1
  16. package/es/breadcrumb/index.js +8 -8
  17. package/es/button/index.js +31 -31
  18. package/es/calendar/index.js +8 -8
  19. package/es/captcha/index.js +7 -7
  20. package/es/card/index.js +8 -8
  21. package/es/carousel/index.js +8 -8
  22. package/es/cascader/index.js +8 -8
  23. package/es/checkbox/index.js +17 -17
  24. package/es/col/index.js +8 -8
  25. package/es/collapse/index.js +8 -8
  26. package/es/color-picker/index.js +5 -5
  27. package/es/comment/index.js +8 -8
  28. package/es/config-provider/index.js +8 -8
  29. package/es/date-picker/index.js +30 -30
  30. package/es/descriptions/index.js +8 -8
  31. package/es/divider/index.js +8 -8
  32. package/es/drag-layout/index.js +5 -5
  33. package/es/drawer/index.js +8 -8
  34. package/es/dropdown/index.js +8 -8
  35. package/es/editor/index.js +1 -1
  36. package/es/ellipsis/index.js +1 -1
  37. package/es/empty/index.js +8 -8
  38. package/es/fabric-chart/index.js +724 -436
  39. package/es/fabric-chart/style.css +1 -1
  40. package/es/form/index.js +8 -8
  41. package/es/form-model/index.js +8 -8
  42. package/es/form-table/index.js +221 -189
  43. package/es/form-table/style.css +1 -1
  44. package/es/grid/index.js +4 -4
  45. package/es/index/index.js +2042 -1695
  46. package/es/index/style.css +1 -1
  47. package/es/input/index.js +11 -11
  48. package/es/input-number/index.js +8 -8
  49. package/es/keep-cache/index.js +9 -9
  50. package/es/layout/index.js +8 -8
  51. package/es/list/index.js +8 -8
  52. package/es/locale-provider/index.js +8 -8
  53. package/es/map/index.js +13 -13
  54. package/es/mentions/index.js +8 -8
  55. package/es/menu/index.js +8 -8
  56. package/es/message/index.js +8 -8
  57. package/es/multi-chat/index.js +116 -116
  58. package/es/multi-chat-client/index.js +110 -110
  59. package/es/multi-chat-history/index.js +6 -6
  60. package/es/multi-chat-record/index.js +27 -27
  61. package/es/multi-chat-setting/index.js +43 -43
  62. package/es/multi-chat-sip/index.js +1 -1
  63. package/es/notification/index.js +8 -8
  64. package/es/page-header/index.js +8 -8
  65. package/es/pagination/index.js +8 -8
  66. package/es/popconfirm/index.js +8 -8
  67. package/es/popover/index.js +8 -8
  68. package/es/progress/index.js +8 -8
  69. package/es/radio/index.js +17 -17
  70. package/es/rate/index.js +8 -8
  71. package/es/result/index.js +8 -8
  72. package/es/row/index.js +8 -8
  73. package/es/scale-container/index.js +28 -23
  74. package/es/scale-container/style.css +1 -1
  75. package/es/scale-view/index.js +158 -158
  76. package/es/select/index.js +44 -44
  77. package/es/select-label/index.js +50 -50
  78. package/es/select-person/index.js +20 -20
  79. package/es/shortcut-setter/index.js +10 -10
  80. package/es/skeleton/index.js +8 -8
  81. package/es/slider/index.js +8 -8
  82. package/es/space/index.js +8 -8
  83. package/es/spin/index.js +8 -8
  84. package/es/statistic/index.js +8 -8
  85. package/es/steps/index.js +8 -8
  86. package/es/switch/index.js +8 -8
  87. package/es/table-filter/index.js +253 -238
  88. package/es/table-filter/style.css +1 -1
  89. package/es/tabs/index.js +8 -8
  90. package/es/tag/index.js +9 -9
  91. package/es/time-picker/index.js +8 -8
  92. package/es/timeline/index.js +8 -8
  93. package/es/tooltip/index.js +8 -8
  94. package/es/transfer/index.js +8 -8
  95. package/es/tree/index.js +8 -8
  96. package/es/tree-select/index.js +8 -8
  97. package/es/upload/index.js +8 -8
  98. package/es/utils/clickoutside.js +7 -7
  99. package/es/utils/kty.min-1.0.0.js +5 -5
  100. package/es/utils/time-domain.js +16 -16
  101. package/es/utils/utils-map.js +32 -32
  102. package/es/utils/vexutils.js +27 -27
  103. package/es/verification-code/index.js +2 -2
  104. package/lib/cui.common.js +2172 -1825
  105. package/lib/cui.umd.js +2172 -1825
  106. package/lib/cui.umd.min.js +28 -28
  107. package/package.json +110 -110
  108. package/packages/affix/index.js +12 -12
  109. package/packages/affix/src/Affix.jsx +12 -12
  110. package/packages/age/index.js +27 -27
  111. package/packages/age/src/age/index.vue +139 -139
  112. package/packages/age/src/age-com/index.vue +209 -209
  113. package/packages/alert/index.js +12 -12
  114. package/packages/alert/src/Alert.jsx +11 -11
  115. package/packages/anchor/index.js +18 -18
  116. package/packages/anchor/src/Anchor.jsx +11 -11
  117. package/packages/anchor/src/Link.jsx +11 -11
  118. package/packages/auto-complete/index.js +12 -12
  119. package/packages/auto-complete/src/AutoComplete.jsx +12 -12
  120. package/packages/avatar/index.js +12 -12
  121. package/packages/avatar/src/Avatar.jsx +11 -11
  122. package/packages/back-top/index.js +12 -12
  123. package/packages/back-top/src/BackTop.jsx +11 -11
  124. package/packages/badge/index.js +12 -12
  125. package/packages/badge/src/Badge.jsx +11 -11
  126. package/packages/base/index.js +3 -3
  127. package/packages/big-table/index.js +16 -16
  128. package/packages/big-table/src/BigTable.vue +3150 -3144
  129. package/packages/big-table/src/Fieldset.vue +2067 -2067
  130. package/packages/big-table/src/assets/iconfont/iconfont.css +21 -21
  131. package/packages/big-table/src/assets/style/table-base.less +385 -385
  132. package/packages/big-table/src/assets/style/table-global.less +175 -175
  133. package/packages/big-table/src/components/AutoLayoutButton.vue +279 -279
  134. package/packages/big-table/src/components/NoData.vue +81 -81
  135. package/packages/big-table/src/components/TextOverTooltip.vue +120 -120
  136. package/packages/big-table/src/components/edit-form/EditForm.vue +509 -509
  137. package/packages/big-table/src/components/edit-form/edit-component/config-data/index.js +68 -68
  138. package/packages/big-table/src/components/edit-form/edit-component/edit-date-picker/edit-date-picker.vue +60 -60
  139. package/packages/big-table/src/components/edit-form/edit-component/edit-digital/edit-digital.vue +54 -54
  140. package/packages/big-table/src/components/edit-form/edit-component/edit-input/edit-input.vue +39 -39
  141. package/packages/big-table/src/components/edit-form/edit-component/edit-input-password/edit-input-password.vue +79 -79
  142. package/packages/big-table/src/components/edit-form/edit-component/edit-month-picker/edit-month-picker.vue +37 -37
  143. package/packages/big-table/src/components/edit-form/edit-component/edit-search/edit-search.vue +82 -82
  144. package/packages/big-table/src/components/edit-form/edit-component/edit-search-more/edit-search-more.vue +95 -95
  145. package/packages/big-table/src/components/edit-form/edit-component/edit-select/edit-select.vue +40 -40
  146. package/packages/big-table/src/components/edit-form/edit-component/edit-select-multiple/edit-select-multiple.vue +55 -55
  147. package/packages/big-table/src/components/edit-form/edit-component/edit-switch/edit-switch.vue +43 -43
  148. package/packages/big-table/src/components/edit-form/edit-component/edit-textarea/edit-textarea.vue +41 -41
  149. package/packages/big-table/src/components/edit-form/edit-component/edit-time-picker/edit-time-picker.vue +40 -40
  150. package/packages/big-table/src/components/edit-form/edit-component/mixins/bound-date.js +3 -3
  151. package/packages/big-table/src/components/edit-form/edit-component/mixins/dateType.js +217 -217
  152. package/packages/big-table/src/components/edit-form/edit-component/mixins/item-default.js +639 -639
  153. package/packages/big-table/src/components/edit-form/edit-component/mixins/search.js +1247 -1247
  154. package/packages/big-table/src/components/edit-form/edit-component/register-com.js +26 -26
  155. package/packages/big-table/src/components/edit-form/edit-item/form-event.js +80 -80
  156. package/packages/big-table/src/components/edit-form/edit-item/global-props.js +33 -33
  157. package/packages/big-table/src/components/edit-form/edit-item/index.js +4 -4
  158. package/packages/big-table/src/components/edit-form/edit-item/render-methods.js +28 -28
  159. package/packages/big-table/src/components/edit-form/edit-item/validate-rules.js +463 -463
  160. package/packages/big-table/src/components/edit-form/edit-mixins/form-commom.js +673 -673
  161. package/packages/big-table/src/components/edit-form/edit-mixins/index.js +3 -3
  162. package/packages/big-table/src/components/edit-form/edit-utils/index.js +112 -112
  163. package/packages/big-table/src/components/password-com.vue +58 -58
  164. package/packages/big-table/src/components/player-vod/index.vue +57 -57
  165. package/packages/big-table/src/components/player-vod/player.vue +189 -189
  166. package/packages/big-table/src/components/player-vod/video-list.vue +265 -265
  167. package/packages/big-table/src/components/player-vod/video-modal.vue +126 -126
  168. package/packages/big-table/src/utils/CustomPagination.vue +86 -86
  169. package/packages/big-table/src/utils/batchEditing.js +610 -610
  170. package/packages/big-table/src/utils/bigTableProps.js +103 -103
  171. package/packages/big-table/src/utils/format.js +557 -557
  172. package/packages/big-table/src/utils/nestTable.js +109 -109
  173. package/packages/big-table/src/utils/tableParse.js +234 -234
  174. package/packages/breadcrumb/index.js +21 -21
  175. package/packages/breadcrumb/src/Breadcrumb.jsx +11 -11
  176. package/packages/breadcrumb/src/BreadcrumbItem.jsx +11 -11
  177. package/packages/breadcrumb/src/BreadcrumbSeparator.jsx +11 -11
  178. package/packages/button/index.js +21 -21
  179. package/packages/button/src/Button.jsx +11 -11
  180. package/packages/button/src/ButtonGroup.jsx +11 -11
  181. package/packages/button/src/ButtonPrint/components/IdentityVerification.vue +181 -181
  182. package/packages/button/src/ButtonPrint/index.vue +766 -766
  183. package/packages/button/src/ButtonPrint/mixin/his-print.js +95 -95
  184. package/packages/calendar/index.js +12 -12
  185. package/packages/calendar/src/Calendar.jsx +11 -11
  186. package/packages/captcha/index.js +9 -9
  187. package/packages/captcha/src/Captcha.vue +164 -164
  188. package/packages/captcha/src/Index.vue +47 -47
  189. package/packages/captcha/src/SlideVerify.vue +285 -285
  190. package/packages/card/index.js +21 -21
  191. package/packages/card/src/Card.jsx +12 -12
  192. package/packages/card/src/CardGrid.js +7 -7
  193. package/packages/card/src/CardMeta.js +7 -7
  194. package/packages/carousel/index.js +12 -12
  195. package/packages/carousel/src/Carousel.jsx +12 -12
  196. package/packages/cascader/index.js +12 -12
  197. package/packages/cascader/src/Cascader.jsx +11 -11
  198. package/packages/checkbox/index.js +30 -30
  199. package/packages/checkbox/src/Checkbox.jsx +11 -11
  200. package/packages/checkbox/src/CheckboxImg/index.vue +141 -141
  201. package/packages/checkbox/src/Group.jsx +11 -11
  202. package/packages/col/index.js +13 -13
  203. package/packages/col/src/Col.jsx +11 -11
  204. package/packages/collapse/index.js +18 -18
  205. package/packages/collapse/src/Collapse.jsx +11 -11
  206. package/packages/collapse/src/Panel.jsx +11 -11
  207. package/packages/color-picker/index.js +10 -10
  208. package/packages/color-picker/src/color-picker.vue +191 -191
  209. package/packages/color-picker/src/style.less +109 -109
  210. package/packages/comment/index.js +12 -12
  211. package/packages/comment/src/Comment.jsx +11 -11
  212. package/packages/config-provider/index.js +12 -12
  213. package/packages/config-provider/src/ConfigProvider.jsx +11 -11
  214. package/packages/date-picker/index.js +26 -26
  215. package/packages/date-picker/src/DatePicker.jsx +12 -12
  216. package/packages/date-picker/src/MonthPicker.jsx +11 -11
  217. package/packages/date-picker/src/RangePicker.jsx +11 -11
  218. package/packages/date-picker/src/WeekPicker.jsx +11 -11
  219. package/packages/date-picker/src/utils/index.js +374 -374
  220. package/packages/descriptions/index.js +18 -18
  221. package/packages/descriptions/src/Descriptions.jsx +11 -11
  222. package/packages/descriptions/src/Item.jsx +11 -11
  223. package/packages/divider/index.js +12 -12
  224. package/packages/divider/src/Divider.jsx +11 -11
  225. package/packages/drag-layout/DragFormLeftItem.vue +173 -173
  226. package/packages/drag-layout/DragFormRightItem.vue +284 -284
  227. package/packages/drag-layout/I18n-mixins.js +10 -10
  228. package/packages/drag-layout/drag-layout.vue +778 -778
  229. package/packages/drag-layout/index.js +12 -12
  230. package/packages/drawer/index.js +12 -12
  231. package/packages/drawer/src/Drawer.jsx +11 -11
  232. package/packages/dropdown/index.js +12 -12
  233. package/packages/dropdown/src/Dropdown.jsx +11 -11
  234. package/packages/editor/index.js +9 -9
  235. package/packages/ellipsis/index.js +8 -8
  236. package/packages/ellipsis/src/Ellipsis.vue +65 -65
  237. package/packages/empty/index.js +12 -12
  238. package/packages/empty/src/Empty.jsx +11 -11
  239. package/packages/fabric-chart/index.js +9 -9
  240. package/packages/fabric-chart/src/FabricGrid.vue +67 -66
  241. package/packages/fabric-chart/src/components/DropPopup.vue +90 -90
  242. package/packages/fabric-chart/src/components/MouseRightClick.vue +168 -168
  243. package/packages/fabric-chart/src/components/TimeScaleValue.vue +114 -115
  244. package/packages/fabric-chart/src/const/defaultVaule.js +60 -59
  245. package/packages/fabric-chart/src/fabric-chart/FabricCanvas.vue +43 -9
  246. package/packages/fabric-chart/src/fabric-chart/FabricLines.vue +579 -552
  247. package/packages/fabric-chart/src/fabric-chart/FabricPolylines.vue +1142 -1126
  248. package/packages/fabric-chart/src/fabric-chart/FabricScaleValue.vue +134 -134
  249. package/packages/fabric-chart/src/fabric-chart/FabricTextGroup.vue +574 -566
  250. package/packages/fabric-chart/src/mixins/eventCommon.js +34 -1
  251. package/packages/fabric-chart/src/mixins/fabricCommon.js +95 -95
  252. package/packages/fabric-chart/src/mixins/fabricObject.js +193 -193
  253. package/packages/fabric-chart/src/mixins/type.js +5 -5
  254. package/packages/form/index.js +16 -16
  255. package/packages/form/src/Form.jsx +11 -11
  256. package/packages/form/src/Item.jsx +11 -11
  257. package/packages/form-model/index.js +14 -14
  258. package/packages/form-model/src/FormModel.jsx +11 -11
  259. package/packages/form-model/src/Item.jsx +11 -11
  260. package/packages/form-table/index.js +16 -16
  261. package/packages/form-table/src/FormTable.vue +1110 -1110
  262. package/packages/form-table/src/components/table-component/config-data/index.js +80 -80
  263. package/packages/form-table/src/components/table-component/global-props.js +22 -22
  264. package/packages/form-table/src/components/table-component/index.js +8 -8
  265. package/packages/form-table/src/components/table-component/mixins/bound-date.js +455 -455
  266. package/packages/form-table/src/components/table-component/mixins/dateType.js +217 -217
  267. package/packages/form-table/src/components/table-component/mixins/item-default.js +257 -257
  268. package/packages/form-table/src/components/table-component/mixins/search.js +1242 -1238
  269. package/packages/form-table/src/components/table-component/register-com.js +30 -30
  270. package/packages/form-table/src/components/table-component/table-age/table-age.vue +175 -175
  271. package/packages/form-table/src/components/table-component/table-date-picker/table-date-picker.vue +87 -87
  272. package/packages/form-table/src/components/table-component/table-digital/table-digital.vue +93 -93
  273. package/packages/form-table/src/components/table-component/table-input/table-input.vue +81 -81
  274. package/packages/form-table/src/components/table-component/table-input-password/table-input-password.vue +126 -126
  275. package/packages/form-table/src/components/table-component/table-month-picker/table-month-picker.vue +55 -55
  276. package/packages/form-table/src/components/table-component/table-search/table-search.vue +174 -174
  277. package/packages/form-table/src/components/table-component/table-search-more/table-search-more.vue +191 -191
  278. package/packages/form-table/src/components/table-component/table-select/table-select.vue +64 -64
  279. package/packages/form-table/src/components/table-component/table-select-multiple/table-select-multiple.vue +81 -81
  280. package/packages/form-table/src/components/table-component/table-textarea/table-textarea.vue +76 -76
  281. package/packages/form-table/src/components/table-component/table-time-picker/table-time-picker.vue +55 -55
  282. package/packages/form-table/src/components/table-component/table-tree-select/table-tree-select.vue +135 -135
  283. package/packages/form-table/src/components/table-component/text-over-tooltip/TextOverTooltip.vue +97 -97
  284. package/packages/form-table/src/components/table-item/form-event.js +81 -81
  285. package/packages/form-table/src/components/table-item/global-props.js +27 -27
  286. package/packages/form-table/src/components/table-item/index.js +4 -4
  287. package/packages/form-table/src/components/table-item/render-methods.js +28 -28
  288. package/packages/form-table/src/components/table-item/validate-rules.js +520 -520
  289. package/packages/form-table/src/components/table-mixins/form-commom.js +98 -98
  290. package/packages/form-table/src/components/table-mixins/index.js +3 -3
  291. package/packages/form-table/src/components/table-utils/index.js +112 -112
  292. package/packages/form-table/src/disabledDetail.less +46 -46
  293. package/packages/grid/index.js +10 -10
  294. package/packages/grid/src/grid.js +28 -28
  295. package/packages/icon/index.js +10 -10
  296. package/packages/icon/src/icon.js +13 -13
  297. package/packages/index.js +313 -313
  298. package/packages/input/index.js +30 -30
  299. package/packages/input/src/Group.jsx +11 -11
  300. package/packages/input/src/Input.jsx +11 -11
  301. package/packages/input/src/Password.jsx +11 -11
  302. package/packages/input/src/Search.jsx +11 -11
  303. package/packages/input/src/TextArea.jsx +11 -11
  304. package/packages/input/src/input-quick/components/quick-item.vue +284 -284
  305. package/packages/input/src/input-quick/components/quick-popover.vue +596 -596
  306. package/packages/input/src/input-quick/index.vue +137 -137
  307. package/packages/input-number/index.js +12 -12
  308. package/packages/input-number/src/InputNumber.jsx +11 -11
  309. package/packages/keep-cache/KeepCache.js +236 -236
  310. package/packages/keep-cache/index.css +2 -2
  311. package/packages/keep-cache/index.js +8 -8
  312. package/packages/layout/index.js +27 -27
  313. package/packages/layout/src/Content.jsx +11 -11
  314. package/packages/layout/src/Footer.jsx +11 -11
  315. package/packages/layout/src/Header.jsx +11 -11
  316. package/packages/layout/src/Layout.jsx +11 -11
  317. package/packages/layout/src/Sider.jsx +11 -11
  318. package/packages/list/index.js +21 -21
  319. package/packages/list/src/Item.jsx +11 -11
  320. package/packages/list/src/ItemMeta.jsx +11 -11
  321. package/packages/list/src/List.jsx +11 -11
  322. package/packages/locale-provider/index.js +12 -12
  323. package/packages/locale-provider/src/LocaleProvider.jsx +11 -11
  324. package/packages/map/index.js +9 -9
  325. package/packages/map/src/Map.vue +484 -484
  326. package/packages/map/src/popup-map.vue +53 -53
  327. package/packages/mentions/index.js +18 -18
  328. package/packages/mentions/src/Mentions.jsx +11 -11
  329. package/packages/mentions/src/Option.jsx +11 -11
  330. package/packages/menu/index.js +27 -27
  331. package/packages/menu/src/Divider.jsx +11 -11
  332. package/packages/menu/src/Item.jsx +11 -11
  333. package/packages/menu/src/ItemGroup.jsx +11 -11
  334. package/packages/menu/src/Menu.jsx +11 -11
  335. package/packages/menu/src/SubMenu.jsx +11 -11
  336. package/packages/message/index.js +8 -8
  337. package/packages/modal/index.js +10 -10
  338. package/packages/modal/src/Modal.js +7 -7
  339. package/packages/multi-chat/chat/addConference.vue +200 -200
  340. package/packages/multi-chat/chat/addMembers.vue +411 -411
  341. package/packages/multi-chat/chat/advancedFilter.vue +372 -372
  342. package/packages/multi-chat/chat/calling.vue +246 -246
  343. package/packages/multi-chat/chat/chatFooter.vue +1596 -1596
  344. package/packages/multi-chat/chat/chatHistory.vue +605 -605
  345. package/packages/multi-chat/chat/chatMain.vue +1486 -1486
  346. package/packages/multi-chat/chat/client/index.vue +149 -149
  347. package/packages/multi-chat/chat/delay.vue +177 -177
  348. package/packages/multi-chat/chat/evaluate.vue +343 -343
  349. package/packages/multi-chat/chat/messageRecord.vue +324 -324
  350. package/packages/multi-chat/chat/mixins/NoData.js +20 -20
  351. package/packages/multi-chat/chat/mixins/base.js +97 -97
  352. package/packages/multi-chat/chat/mixins/uniRTCAPI.js +80 -80
  353. package/packages/multi-chat/chat/mixins/viewerOptions.js +67 -67
  354. package/packages/multi-chat/chat/quickReply.vue +439 -439
  355. package/packages/multi-chat/chat/robot/index.vue +312 -312
  356. package/packages/multi-chat/chat/scrollList.vue +1238 -1238
  357. package/packages/multi-chat/chat/videoVoiceList.vue +348 -348
  358. package/packages/multi-chat/chat/voice.vue +431 -431
  359. package/packages/multi-chat/components/avatar.vue +113 -113
  360. package/packages/multi-chat/components/chat-tabs-header.vue +251 -251
  361. package/packages/multi-chat/components/classify-tabs.vue +185 -185
  362. package/packages/multi-chat/components/empty.vue +24 -24
  363. package/packages/multi-chat/components/modal-refuse-reason.vue +112 -112
  364. package/packages/multi-chat/components/modal-sip.vue +160 -160
  365. package/packages/multi-chat/components/modal-user-transfer.vue +98 -98
  366. package/packages/multi-chat/components/msg-describe.vue +138 -138
  367. package/packages/multi-chat/components/msg-picture.vue +68 -68
  368. package/packages/multi-chat/components/msg-prescription.vue +205 -205
  369. package/packages/multi-chat/components/read-record.vue +133 -133
  370. package/packages/multi-chat/components/read-status.vue +34 -34
  371. package/packages/multi-chat/components/user-status.vue +198 -198
  372. package/packages/multi-chat/index.js +7 -7
  373. package/packages/multi-chat/setting/authority/index.vue +156 -156
  374. package/packages/multi-chat/setting/authority/roleSetting.vue +204 -204
  375. package/packages/multi-chat/setting/baseInfo/index.vue +1316 -1316
  376. package/packages/multi-chat/setting/customerService/batchSelect.vue +403 -403
  377. package/packages/multi-chat/setting/customerService/index.vue +273 -273
  378. package/packages/multi-chat/setting/event/edit/condition.vue +128 -128
  379. package/packages/multi-chat/setting/event/edit/index.vue +437 -437
  380. package/packages/multi-chat/setting/event/edit/notice.vue +129 -129
  381. package/packages/multi-chat/setting/event/edit/strategy.vue +98 -98
  382. package/packages/multi-chat/setting/event/index.vue +249 -249
  383. package/packages/multi-chat/setting/index.vue +269 -269
  384. package/packages/multi-chat/setting/page.vue +14 -14
  385. package/packages/multi-chat/setting/sessionList/index.vue +412 -412
  386. package/packages/multi-chat/setting/sessionList/messageRecord.vue +372 -372
  387. package/packages/multi-chat/setting/userConfig/index.vue +124 -124
  388. package/packages/multi-chat/setting/worktime/index.vue +274 -274
  389. package/packages/multi-chat/store/actions.js +452 -452
  390. package/packages/multi-chat/store/getters.js +371 -371
  391. package/packages/multi-chat/store/helper.js +66 -66
  392. package/packages/multi-chat/store/index.js +50 -50
  393. package/packages/multi-chat/store/mutation.js +296 -296
  394. package/packages/multi-chat/store/state.js +117 -117
  395. package/packages/multi-chat/style/emoji.css +315 -315
  396. package/packages/multi-chat/style/message.mixin.less +38 -38
  397. package/packages/multi-chat/utils/chatSock.js +93 -93
  398. package/packages/multi-chat/utils/compressImage.js +115 -115
  399. package/packages/multi-chat/utils/emoji.json +68 -68
  400. package/packages/multi-chat/utils/index.js +259 -259
  401. package/packages/multi-chat/utils/observer-scroll.js +49 -49
  402. package/packages/multi-chat/utils/panelsetting.js +48 -48
  403. package/packages/multi-chat-client/index.js +7 -7
  404. package/packages/multi-chat-history/index.js +7 -7
  405. package/packages/multi-chat-record/index.js +7 -7
  406. package/packages/multi-chat-setting/index.js +7 -7
  407. package/packages/multi-chat-sip/index.js +6 -6
  408. package/packages/notification/index.js +8 -8
  409. package/packages/page-header/index.js +12 -12
  410. package/packages/page-header/src/PageHeader.jsx +11 -11
  411. package/packages/pagination/index.js +12 -12
  412. package/packages/pagination/src/Pagination.jsx +11 -11
  413. package/packages/popconfirm/index.js +12 -12
  414. package/packages/popconfirm/src/Popconfirm.jsx +11 -11
  415. package/packages/popover/index.js +12 -12
  416. package/packages/popover/src/Popover.jsx +11 -11
  417. package/packages/progress/index.js +12 -12
  418. package/packages/progress/src/Progress.jsx +11 -11
  419. package/packages/radio/index.js +33 -33
  420. package/packages/radio/src/Group.jsx +11 -11
  421. package/packages/radio/src/Radio.jsx +11 -11
  422. package/packages/radio/src/RadioButton.jsx +11 -11
  423. package/packages/radio/src/RadioImg/index.vue +124 -124
  424. package/packages/rate/index.js +12 -12
  425. package/packages/rate/src/Rate.jsx +11 -11
  426. package/packages/result/index.js +12 -12
  427. package/packages/result/src/Result.jsx +11 -11
  428. package/packages/row/index.js +12 -12
  429. package/packages/row/src/Row.jsx +11 -11
  430. package/packages/scale-container/index.js +8 -8
  431. package/packages/scale-container/src/ScaleContainer.vue +197 -194
  432. package/packages/scale-view/NoData.vue +81 -81
  433. package/packages/scale-view/answerParse.vue +133 -133
  434. package/packages/scale-view/customList.vue +801 -801
  435. package/packages/scale-view/data.js +80 -80
  436. package/packages/scale-view/evaluateCountdown.vue +155 -155
  437. package/packages/scale-view/evaluatePage.vue +202 -202
  438. package/packages/scale-view/formitem/data.js +3991 -3991
  439. package/packages/scale-view/formitem/index.js +6 -6
  440. package/packages/scale-view/formitem/r-address.vue +238 -238
  441. package/packages/scale-view/formitem/r-choice.vue +726 -726
  442. package/packages/scale-view/formitem/r-input.vue +92 -92
  443. package/packages/scale-view/formitem/r-prompt.vue +52 -52
  444. package/packages/scale-view/formitem/r-time.vue +285 -285
  445. package/packages/scale-view/formitem/r-upload-custom-list.vue +242 -242
  446. package/packages/scale-view/formitem/r-upload.vue +287 -287
  447. package/packages/scale-view/formitem/text-over-tooltip/TextOverTooltip.vue +98 -98
  448. package/packages/scale-view/index.js +17 -17
  449. package/packages/scale-view/mixin/NoData.js +38 -38
  450. package/packages/scale-view/mixin/evaluate.js +146 -146
  451. package/packages/scale-view/mixin/index.js +337 -337
  452. package/packages/scale-view/mixin/judgeTypes.js +267 -267
  453. package/packages/scale-view/scaleView.vue +2010 -2010
  454. package/packages/select/index.js +27 -27
  455. package/packages/select/src/CustomSelect/index.vue +130 -130
  456. package/packages/select/src/OptGroup.jsx +11 -11
  457. package/packages/select/src/Option.jsx +11 -11
  458. package/packages/select/src/Select/Select.vue +231 -231
  459. package/packages/select/src/Select/index.js +12 -12
  460. package/packages/select/src/TableSelect/index.vue +514 -514
  461. package/packages/select-label/index.js +14 -14
  462. package/packages/select-label/label-classify.vue +129 -129
  463. package/packages/select-label/labelFormContent.vue +787 -787
  464. package/packages/select-label/select-label.vue +581 -581
  465. package/packages/select-person/index.js +10 -10
  466. package/packages/select-person/search-tree.vue +373 -373
  467. package/packages/select-person/select-person.vue +1696 -1696
  468. package/packages/shortcut-setter/index.js +12 -12
  469. package/packages/shortcut-setter/src/ShortcutSetter.vue +55 -55
  470. package/packages/shortcut-setter/src/ShortcutSetterItem.vue +84 -84
  471. package/packages/shortcut-setter/src/utils/index.js +63 -63
  472. package/packages/skeleton/index.js +12 -12
  473. package/packages/skeleton/src/Skeleton.jsx +11 -11
  474. package/packages/slider/index.js +12 -12
  475. package/packages/slider/src/Slider.jsx +11 -11
  476. package/packages/space/index.js +12 -12
  477. package/packages/space/src/Space.jsx +11 -11
  478. package/packages/spin/index.js +12 -12
  479. package/packages/spin/src/Spin.jsx +11 -11
  480. package/packages/statistic/index.js +18 -18
  481. package/packages/statistic/src/Countdown.jsx +11 -11
  482. package/packages/statistic/src/Statistic.jsx +11 -11
  483. package/packages/steps/index.js +18 -18
  484. package/packages/steps/src/Step.jsx +11 -11
  485. package/packages/steps/src/Steps.jsx +11 -11
  486. package/packages/switch/index.js +12 -12
  487. package/packages/switch/src/Switch.jsx +11 -11
  488. package/packages/table-filter/index.js +27 -27
  489. package/packages/table-filter/src/base-search-com/BaseSearch.vue +2572 -2572
  490. package/packages/table-filter/src/classification/Classification-com.vue +1756 -1756
  491. package/packages/table-filter/src/classification/search-class-name.vue +266 -266
  492. package/packages/table-filter/src/classification/search-professional-model.vue +680 -680
  493. package/packages/table-filter/src/components/TextOverTooltip.vue +107 -107
  494. package/packages/table-filter/src/components/age-com/index.vue +205 -205
  495. package/packages/table-filter/src/components/button-group/ButtonGroup.vue +162 -162
  496. package/packages/table-filter/src/components/button-icon/button-icon.js +33 -33
  497. package/packages/table-filter/src/components/button-icon/getBtnIcon.js +34 -34
  498. package/packages/table-filter/src/components/c-tree-select/tree-select.vue +336 -336
  499. package/packages/table-filter/src/components/drop-button/drop-button.vue +224 -224
  500. package/packages/table-filter/src/components/drop-button/head-btn-icon.js +33 -33
  501. package/packages/table-filter/src/components/drop-view/drop-view.vue +89 -89
  502. package/packages/table-filter/src/components/multi-select/multi-select.vue +227 -227
  503. package/packages/table-filter/src/components/out-quick-search/out-quick-search.vue +340 -340
  504. package/packages/table-filter/src/components/range-age/index.vue +172 -172
  505. package/packages/table-filter/src/components/search-condition/SearchCondition.vue +1897 -1897
  506. package/packages/table-filter/src/components/search-condition/fieldTypeList.js +169 -169
  507. package/packages/table-filter/src/components/search-filter/SearchFilter.vue +278 -278
  508. package/packages/table-filter/src/components/search-modal/set-classification.vue +310 -310
  509. package/packages/table-filter/src/components/table-modal/TableModal.vue +473 -463
  510. package/packages/table-filter/src/const/dataOptions.js +43 -43
  511. package/packages/table-filter/src/const/index.js +1 -1
  512. package/packages/table-filter/src/index.vue +584 -584
  513. package/packages/table-filter/src/mixins/mixins.js +694 -694
  514. package/packages/table-filter/src/mixins/tableSearchCon.js +128 -128
  515. package/packages/table-filter/src/mixins/wordBookutils.js +102 -102
  516. package/packages/table-filter/src/quick-search/QuickSearch.vue +2125 -2125
  517. package/packages/tabs/index.js +18 -18
  518. package/packages/tabs/src/TabPane.jsx +11 -11
  519. package/packages/tabs/src/Tabs.jsx +11 -11
  520. package/packages/tag/index.js +21 -21
  521. package/packages/tag/src/CheckableTag.jsx +11 -11
  522. package/packages/tag/src/Tag.jsx +11 -11
  523. package/packages/tag/src/TagGroup.vue +621 -621
  524. package/packages/time-picker/index.js +12 -12
  525. package/packages/time-picker/src/TimePicker.jsx +11 -11
  526. package/packages/timeline/index.js +14 -14
  527. package/packages/timeline/src/Item.jsx +11 -11
  528. package/packages/timeline/src/Timeline.jsx +11 -11
  529. package/packages/tooltip/index.js +12 -12
  530. package/packages/tooltip/src/Tooltip.jsx +11 -11
  531. package/packages/transfer/index.js +12 -12
  532. package/packages/transfer/src/Transfer.jsx +11 -11
  533. package/packages/tree/index.js +18 -18
  534. package/packages/tree/src/Tree.jsx +11 -11
  535. package/packages/tree/src/TreeNode.jsx +11 -11
  536. package/packages/tree-select/index.js +18 -18
  537. package/packages/tree-select/src/TreeNode.jsx +11 -11
  538. package/packages/tree-select/src/TreeSelect.jsx +11 -11
  539. package/packages/upload/chunk-upload/chunk-upload-new.vue +1001 -1001
  540. package/packages/upload/chunk-upload/vod-chunk-upload.vue +749 -749
  541. package/packages/upload/chunk-upload/vod-upload-modal.vue +100 -100
  542. package/packages/upload/index.js +12 -12
  543. package/packages/upload/src/Upload.jsx +11 -11
  544. package/packages/verification-code/SlideVerify.vue +306 -306
  545. package/packages/verification-code/index.js +17 -17
  546. package/packages/verification-code/verification-code.vue +147 -147
  547. package/src/component/player-vod/index.vue +57 -57
  548. package/src/component/player-vod/player.vue +188 -188
  549. package/src/component/player-vod/video-list.vue +262 -262
  550. package/src/component/player-vod/video-modal.vue +128 -128
  551. package/src/component/select-options/index.vue +430 -413
  552. package/src/component/select-pages/index.vue +95 -95
  553. package/src/component/svg/index.vue +59 -59
  554. package/src/core/create.js +6 -6
  555. package/src/core/event.js +23 -23
  556. package/src/core/table-methods.js +444 -444
  557. package/src/directive/flexibleResize.js +151 -151
  558. package/src/directive/preventReClick.js +12 -12
  559. package/src/directive/scroll.js +230 -230
  560. package/src/global/variable.js +2 -2
  561. package/src/style/normalize.css +424 -424
  562. package/src/style/style.less +49 -49
  563. package/src/utils/UniRTCv2.js +626 -626
  564. package/src/utils/chatFetch.js +61 -61
  565. package/src/utils/clickoutside.js +75 -75
  566. package/src/utils/crypto.js +25 -25
  567. package/src/utils/index.js +81 -81
  568. package/src/utils/kty-sdk.js +582 -582
  569. package/src/utils/kty.min-1.0.0.js +14378 -14378
  570. package/src/utils/sip-device.js +79 -79
  571. package/src/utils/time-domain.js +193 -193
  572. package/src/utils/trtc.js +1 -1
  573. package/src/utils/utils-map.js +484 -484
  574. package/src/utils/vexutils.js +836 -836
@@ -1,610 +1,610 @@
1
- // import { mapMutations, mapActions } from "vuex";
2
- import utils from '@/utils/utils-map';
3
- export default {
4
- props: {
5
- // 曾经的getters
6
- isBatchEditing: Boolean,
7
- isEditAllRow: Boolean,
8
- isBatchSave: Boolean,
9
- isBatchCancel: Boolean,
10
- batchDynamicPropsCache: { type: Object, default: () => ({}) },
11
- batchEditDoneNumber: { type: Object, default: () => ({}) },
12
- batchError: Boolean,
13
- batchFormData: { type: Object, default: () => ({}) },
14
-
15
- // 曾经的mapActions
16
- resetInlineBatchEdit: Function,
17
- resetBatchEditRowStatus: Function
18
- },
19
- data() {
20
- return {
21
- cacheUniqueKey: {},
22
- theUniqueKeyListObj: {},
23
- batchFieldList: [],
24
- editColumnMap: {},
25
- fieldLength: 0,
26
- originFormatList: [],
27
- isSaveForm: false,
28
- isLoadData: false,
29
- isLoadColumn: false,
30
- addInlineEditPrimaryKey: ''
31
- };
32
- },
33
- computed: {
34
- configuration() {
35
- return {
36
- userInfo: this.userInfo || {},
37
- sysImageSize: this.sysImageSize || {},
38
- switchConfig: this.switchConfig || {},
39
- hospitalConfigData: this.iconObj || {}
40
- };
41
- },
42
- tableLoad() {
43
- return {
44
- isLoadData: this.isLoadData,
45
- isLoadColumn: this.isLoadColumn
46
- };
47
- },
48
- isTableEdit() {
49
- return this.isInlineOperating || this.isInlineAdding;
50
- }
51
- },
52
- watch: {
53
- tableLoad(obj) {
54
- if (!obj) return;
55
- let { isLoadData, isLoadColumn } = obj;
56
- if (!(isLoadData && isLoadColumn)) return;
57
- if (this.isBatchEditing) return;
58
- this.$emit('tableLoad', true);
59
- },
60
- /**
61
- * 编辑
62
- */
63
- async isBatchEditing(val) {
64
- if (!val || this.isNestTable) return false;
65
- if (this.isTree != 0 || !this.isMatchComponent) return false;
66
- if (!this.checkOperateCurrentTable()) {
67
- this.resetBatchOperationRowStatus();
68
- return false;
69
- }
70
- // 非行内按钮触发
71
- if (!this.isRowEditing) {
72
- await this.toggleColumn();
73
- }
74
- this.hideSelectCloumns();
75
- this.handleClickBatchEditBtnByInline();
76
- },
77
- /**
78
- * 保存
79
- */
80
- isBatchSave(val) {
81
- if (!val || this.isNestTable) return false;
82
- if (this.isTree != 0 || !this.isMatchComponent) return false;
83
- if (!this.checkOperateCurrentTable()) return false;
84
- this.handleClickBatchSaveBtnByInline();
85
- },
86
- /**
87
- * 取消
88
- */
89
- async isBatchCancel(val) {
90
- if (!val || this.isNestTable) return false;
91
- if (this.isTree != 0 || !this.isMatchComponent) return false;
92
- if (!this.checkOperateCurrentTable()) return false;
93
- await this.toggleColumn('showColumn');
94
- this.handleClickBatchCancelBtnByInline();
95
- },
96
- /**
97
- * 校验提交
98
- */
99
- batchEditDoneNumber(obj) {
100
- if (!obj || !Object.keys(obj).length || this.isNestTable) return;
101
- if (this.isTree != 0 || !this.isMatchComponent) return false;
102
- if (!this.checkOperateCurrentTable()) return false;
103
- this.submitBatchInlineForm(obj);
104
- },
105
- async isInlineAdding(val) {
106
- if (!val || this.isNestTable) return false;
107
- if (this.isTree != 0 || !this.isMatchComponent) return false;
108
- if (!this.checkOperateCurrentTable()) {
109
- this.resetBatchOperationRowStatus();
110
- return false;
111
- }
112
- await this.toggleColumn();
113
- this.hideSelectCloumns();
114
- this.handleClickAddRow();
115
- }
116
- },
117
- methods: {
118
- toggleColumn(key) {
119
- let method = key || 'hideColumn';
120
- const xGrid = this.$refs.xGrid;
121
- if (!xGrid) return Promise.resolve();
122
- let operate = xGrid.getColumnByField('operatorColumn');
123
- if (method === 'showColumn' && operate.visible) {
124
- return Promise.resolve();
125
- }
126
- return xGrid[method](operate);
127
- },
128
- /**
129
- * 获取配置的 api 方法
130
- * @param {*} params 调用参数
131
- * @param {String} key 方法名
132
- * @param {Object} config 其他配置
133
- */
134
- async handleGetConfigApi(params, key, config = {}) {
135
- try {
136
- // TODO: 判断 fn 是异步函数还是同步
137
- const editFormApiConfig = this?.editFormApiConfig || {};
138
- const fn = editFormApiConfig[key] || null;
139
- if (typeof fn === 'function') {
140
- let res = await fn(params, config);
141
- return Promise.resolve(res);
142
- } else {
143
- return Promise.reject(new Error(`${key} Is not a function`));
144
- }
145
- } catch (error) {
146
- return Promise.reject(error);
147
- }
148
- },
149
- /**
150
- * 设置row 为编辑样式
151
- */
152
- getBatchOpreateRows(arr) {
153
- let vxeTable = this.$refs.xGrid;
154
- let { tableData } = vxeTable.getTableData();
155
- if (!arr.length) return;
156
- // 重置状态时使用
157
-
158
- arr.forEach((item, i) => {
159
- let rowIndex = i;
160
- if (!this.isEditAllRow) {
161
- let matchIndex = tableData.findIndex(v => v[this.primaryKey] == item[this.primaryKey]);
162
- if (matchIndex > -1) {
163
- rowIndex = matchIndex;
164
- }
165
- }
166
- this.setRowStatus(vxeTable.$el, rowIndex, 66);
167
- this.$set(item, '__isInlineEditing', true);
168
- });
169
- },
170
- /**
171
- * 重置样式
172
- * @param {*} isCancel 保存之后
173
- * @returns
174
- */
175
- resetBatchOperationRowStatus(isResetColumn) {
176
- if (this.isTree != 0) return false;
177
-
178
- const vxeTable = this.$refs.xGrid;
179
- let { tableData } = vxeTable.getTableData();
180
- vxeTable.clearActived();
181
- vxeTable.resetColumn();
182
- tableData.forEach((row, index) => {
183
- this.setRowStatus(vxeTable.$el, index, null);
184
- this.$set(row, '__isInlineEditing', false);
185
- this.$set(row, '__isDisableInlineEdit', false);
186
- });
187
- this.checkedRows = [];
188
- },
189
- async handleClickAddRow() {
190
- if (!this.checkListFormUnionSettingParamsList()) {
191
- this.handleClickCancelBtnByInline();
192
- return false;
193
- }
194
- this.addInlineEditPrimaryKey = Date.now();
195
- let formData = {
196
- [this.handleRowId]: this.addInlineEditPrimaryKey,
197
- __isInsertRow: true
198
- };
199
- let vxeTable = this.$refs.xGrid;
200
- await vxeTable.insert(formData);
201
- await vxeTable.loadData([formData]);
202
- await this.resetInlineBatchEdit();
203
-
204
- this.setAllRowInlineStatus(true);
205
- this.setRowStatus(vxeTable.$el, 0, 66);
206
- },
207
- /**
208
- * 批量编辑
209
- */
210
- async handleClickBatchEditBtnByInline() {
211
- if (!this.checkListFormUnionSettingParamsList()) {
212
- this.handleClickCancelBtnByInline();
213
- return false;
214
- }
215
- let vxeTable = this.$refs.xGrid;
216
- let arr = this.checkedRows;
217
- let { tableData } = vxeTable.getTableData();
218
- // 全部行编辑
219
- if (this.isEditAllRow) {
220
- arr = tableData;
221
- }
222
- await vxeTable.loadData(arr);
223
- await this.resetInlineBatchEdit();
224
-
225
- this.setAllRowInlineStatus(true);
226
- this.getBatchOpreateRows(arr);
227
- },
228
- /**
229
- * 批量保存
230
- */
231
- handleClickBatchSaveBtnByInline() {
232
- if (this.spinning) return false;
233
- this.$emit('resetBatchEditDoneStatus');
234
-
235
- let formDom = document.querySelectorAll('.js-inlineEditForm');
236
- let filterFormDom = [];
237
- [...formDom].map(item => {
238
- let pNode = item.parentNode?.parentNode;
239
- if (pNode) {
240
- if (pNode.classList.contains('vxe-body--column') && !pNode.classList.contains('fixed--hidden')) {
241
- filterFormDom.push(item);
242
- }
243
- }
244
- });
245
- if (!filterFormDom.length) return false;
246
- // // HACK: vxeTable行内编辑时复制的DOM节点,无需触发提交
247
- filterFormDom.forEach(item => {
248
- item.__vue__.handleSubmitForm();
249
- });
250
- },
251
- /**
252
- * 处理需要submit的form个数
253
- */
254
- handleEditFormLength() {
255
- let fieldLength = this.batchFieldList.length;
256
- if (!fieldLength) return;
257
- // 新增
258
- if (this.isInlineAdding) {
259
- return fieldLength;
260
- }
261
- let vxeTable = this.$refs.xGrid;
262
- let rowLen = this.allSelectedLength;
263
- let { tableData } = vxeTable.getTableData();
264
- // 全部行
265
- if (this.isEditAllRow) {
266
- rowLen = tableData.length;
267
- }
268
- if (!rowLen) return;
269
- return fieldLength * rowLen;
270
- },
271
- async handleClickBatchCancelBtnByInline() {
272
- let vxeTable = this.$refs.xGrid;
273
- this.isSaveForm = false;
274
- this.$emit('resetInlineEditAll', false);
275
- await vxeTable.reloadData(this.originFormatList);
276
- this.resetBatchOperationRowStatus(true);
277
- },
278
- /**
279
- * 避免每次点击都查询
280
- * 初始化查一次 行编辑 表单search用
281
- */
282
- // 避免每次点击都查询
283
- async handleFormTheUniqueKey() {
284
- let hasEditRow = this.btnList?.find(item => {
285
- let trigger_type = item.settingObj && item.settingObj[0]?.trigger_type;
286
- if (item.isShow == 1 && trigger_type == 'EDIT_ROW') return true;
287
- return false;
288
- });
289
- if (!hasEditRow) return;
290
- await this.handleFieldTheUniqueKey();
291
- },
292
- /**
293
- * 获取编辑的field
294
- */
295
- handleFieldTheUniqueKey() {
296
- return new Promise((resolve, reject) => {
297
- let { paramsList = [] } = this.listFormUnionSetting || {};
298
- let { fieldList = [] } = this.inlineEditFormConfig || {};
299
- fieldList = JSON.parse(JSON.stringify(fieldList));
300
- this.batchFieldList = [];
301
- let batchFieldList = [];
302
- batchFieldList = fieldList
303
- .map(item => {
304
- let matchItem = paramsList.find(v => item.val_key === v.tableField);
305
- if (matchItem) {
306
- let NOWORDBOOK = item.wordbook && (item?.wordbook?.type || '') != 'WORDBOOK';
307
- let id = item.wordbook?.id;
308
- if (NOWORDBOOK && id && !this.theUniqueKeyListObj[id]) {
309
- this.theUniqueKeyListObj[id] = id;
310
- }
311
- return item;
312
- }
313
- return null;
314
- })
315
- .filter(Boolean);
316
- if (!batchFieldList || !batchFieldList.length) return resolve();
317
- // 缓存行编辑需要的column配置
318
- this.editColumnMap = this.handleColumnMap(batchFieldList, paramsList);
319
- this.batchFieldList = batchFieldList;
320
- this.fieldLength = this.handleFieldLength();
321
- let keyList = Object.keys(this.theUniqueKeyListObj || {});
322
- if (!keyList.length) return resolve();
323
- keyList.forEach(async item => {
324
- await this.handleRequestedUniqueKey(item);
325
- });
326
- resolve();
327
- });
328
- },
329
- handleColumnMap(batchFieldList, paramsList) {
330
- let { fieldList = [] } = this.columnConfig;
331
- let editColumnMap = {};
332
- fieldList.forEach(item => {
333
- if (item.isShow != 1 || item.isEdit != 1) return;
334
- let matchItem = paramsList.find(v => v.tableField === item.columnName);
335
- if (!matchItem) return;
336
- let fieldItem = batchFieldList?.find(field => {
337
- return field.val_key === matchItem.tableField;
338
- });
339
- if (!fieldItem) return;
340
- fieldItem = this.formatFieldItem(fieldItem);
341
- let obj = {
342
- columnName: item.columnName,
343
- matchItem,
344
- fieldItem
345
- };
346
- editColumnMap[item.columnName] = obj;
347
- });
348
- return editColumnMap;
349
- },
350
- async handleRequestedUniqueKey(id) {
351
- let handleEditFormRequestedUniqueKey = this.editFormApiConfig?.handleEditFormRequestedUniqueKey;
352
- if (!handleEditFormRequestedUniqueKey || typeof handleEditFormRequestedUniqueKey !== 'function') {
353
- handleEditFormRequestedUniqueKey = this.getPrimaryKeyRequest;
354
- }
355
- return handleEditFormRequestedUniqueKey({ tableId: id }).then(val => {
356
- val && (this.cacheUniqueKey[id] = { value: val, status: true });
357
- });
358
- },
359
- getPrimaryKeyRequest(params) {
360
- return new Promise((resolve, reject) => {
361
- this.axios
362
- .get('tableList/getPrimaryKey', { params })
363
- .then(({ data }) => {
364
- let result;
365
- if (data.result == 'SUCCESS') {
366
- const { map = {} } = data;
367
- result = map.primaryKey || undefined;
368
- } else {
369
- result = undefined;
370
- }
371
- resolve(result);
372
- })
373
- .catch(err => {
374
- reject(err);
375
- });
376
- });
377
- },
378
- /**
379
- * 判断是否渲染EditForm
380
- * @param {*} row
381
- * @param {*} column
382
- * @returns
383
- */
384
- showEditForm(row, column, $rowIndex) {
385
- if (!this.isMatchComponent || this.isNestTable || this.isScanMultiTable) return false;
386
- if (this.isBatchEditing || this.isInlineAdding) {
387
- let matchObj = this.editColumnMap[column.property];
388
- if (!matchObj || !matchObj.matchItem || !matchObj.fieldItem) return false;
389
- // 批量编辑 未选择全部行编辑
390
- if (this.isBatchEditing && !this.isEditAllRow) {
391
- let matchIndex = this.checkedRows.findIndex(v => v[this.primaryKey] == row[this.primaryKey]);
392
- if (matchIndex < 0) return false;
393
- }
394
- // 新增
395
- if (this.isInlineAdding) {
396
- if ($rowIndex !== 0) return false;
397
- }
398
- return matchObj.matchItem;
399
- }
400
- return false;
401
- },
402
- /**
403
- * 初始化props
404
- * @param {*} unionItem
405
- * @param {*} row
406
- * @param {*} column
407
- * @param {*} $rowIndex
408
- * @returns
409
- */
410
- initBatchDynamicProps(unionItem, row, column, $rowIndex) {
411
- let id = row[this.primaryKey];
412
- let dynamicPropsCache = this.batchDynamicPropsCache[id];
413
- if (dynamicPropsCache && dynamicPropsCache[unionItem.tableField]) {
414
- return dynamicPropsCache[unionItem.tableField];
415
- }
416
- let matchObj = this.editColumnMap[column.property];
417
- let { fieldItem = {} } = matchObj || {};
418
- let defaultCombinationForm = {};
419
- if (!this.isInlineAdding) {
420
- let originalRow = this.pageIndexOldtableData.find(item => {
421
- let oldItemVal = utils.handleCurValue(item[this.primaryKey]);
422
- let rowVal = utils.handleCurValue(row[this.primaryKey]);
423
- return oldItemVal == rowVal;
424
- });
425
- defaultCombinationForm = this.setDefaultFormData(column.property, fieldItem, originalRow);
426
- }
427
- let tempFieldItem = JSON.parse(JSON.stringify(fieldItem));
428
- let defaultForm = {
429
- fieldList: [tempFieldItem],
430
- defaultCombinationForm
431
- };
432
- let dynamicProps = {
433
- props: {
434
- formPrimaryKey: id,
435
- defaultForm,
436
- banRequest: true,
437
- propsFormBtn: true,
438
- propsDelSetting: true,
439
- parentConfig: {
440
- is_edit: '1'
441
- },
442
- configuration: this.configuration,
443
- isPure: true,
444
- isOpenShortcut: false,
445
- cacheUniqueKey: this.cacheUniqueKey,
446
- styleSetting: {},
447
- editFormApiConfig: this.editFormApiConfig,
448
- btnList: this.btnList
449
- },
450
- on: {
451
- handleSubmit: this.handleSubmitEditForm,
452
- banSubmit: this.banSubmit
453
- }
454
- };
455
- this.$emit('setBatchDynamicPropsCache', {
456
- primaryKey: row[this.primaryKey],
457
- tableField: unionItem.tableField,
458
- dynamicProps
459
- });
460
- return dynamicProps;
461
- },
462
- /**
463
- * 单个form提交成功数据
464
- * @param {*} obj formData
465
- */
466
- handleSubmitEditForm(obj = {}) {
467
- this.$emit('submitEditFormSuccessBatch', obj);
468
- },
469
- /**
470
- * 单个form提交失败
471
- * @param {*} obj
472
- */
473
- banSubmit(obj) {
474
- this.$emit('submitEditFormErrorBatch', obj);
475
- },
476
- formatFieldItem(fieldItem) {
477
- return Object.assign({}, fieldItem, {
478
- elem_width: '12',
479
- is_show: '1'
480
- });
481
- },
482
- formatField(value) {
483
- if (value && typeof value == 'string' && value.startsWith('###')) {
484
- value = value.slice(3);
485
- value = JSON.parse(value);
486
- value = value.tooltip || value.value;
487
- }
488
- return value;
489
- },
490
- setDefaultFormData(property, fieldItem, originalRow = {}) {
491
- let defaultValue = originalRow[property];
492
-
493
- return {
494
- [fieldItem.name]: this.formatField(defaultValue)
495
- };
496
- },
497
- /**
498
- * 批量提交form
499
- * @param {*} obj
500
- * @returns
501
- */
502
- submitBatchInlineForm(obj) {
503
- if (this.batchError) {
504
- this.resetBatchEditRowStatus();
505
- this.$emit('triggerSpinning', false);
506
- return;
507
- }
508
- let isBatchDoneAll = this.handleIsBatchDoneAll(obj);
509
- if (!isBatchDoneAll) {
510
- this.resetBatchEditRowStatus();
511
- this.$emit('triggerSpinning', false);
512
- return;
513
- }
514
- let { listFormUnionSetting } = this;
515
- let { formId } = listFormUnionSetting;
516
- let params = this.handleSubmitParams(this.batchFormData);
517
- if (!formId || !params) {
518
- this.resetBatchEditRowStatus();
519
- this.$emit('triggerSpinning', false);
520
- return;
521
- }
522
- if (this.isSaveForm) return false;
523
- this.isSaveForm = true;
524
- this.savaForm(formId, params)
525
- .then(async ({ data }) => {
526
- this.$emit('triggerSpinning', false);
527
- if (data.result !== 'SUCCESS') {
528
- this.isSaveForm = false;
529
- this.$message.error(data.resultMsg || '保存失败');
530
- this.resetBatchEditRowStatus();
531
- return false;
532
- }
533
-
534
- await this.resetInlineBatchEdit();
535
- this.handleClickBatchCancelBtnByInline();
536
- this.$emit('pubTableReload');
537
- })
538
- .finally(() => {
539
- this.isSaveForm = false;
540
- this.$emit('triggerSpinning', false);
541
- this.resetBatchEditRowStatus();
542
- });
543
- },
544
- /**
545
- * 处理form
546
- * @param {*} batchFormData
547
- * @returns
548
- */
549
- handleSubmitParams(batchFormData) {
550
- let arr = [];
551
- for (let key in batchFormData) {
552
- // v[this.primaryKey] 可能为数字
553
- // key 为字符串 用全等匹配不到 改为 ==
554
- let matchItem = this.oldtableData.find(v => v[this.primaryKey] == key);
555
- let obj = batchFormData[key];
556
- if (matchItem) {
557
- obj = Object.assign({}, obj, {
558
- [this.primaryKey]: matchItem[this.primaryKey]
559
- });
560
- }
561
- arr.push(obj);
562
- }
563
- return arr;
564
- },
565
- savaForm(formId, params) {
566
- let handleEditFormSavaForm = this.editFormApiConfig?.handleEditFormSavaForm;
567
- if (!handleEditFormSavaForm || typeof handleEditFormSavaForm !== 'function') {
568
- handleEditFormSavaForm = this.savaFormRequest;
569
- }
570
- return handleEditFormSavaForm(params, { formId });
571
- },
572
- savaFormRequest(params, config) {
573
- let url = `/form/editRows/update/${config.formId}`;
574
- return this.axios({
575
- method: 'post',
576
- url,
577
- headers: { 'Content-Type': 'application/json; charset=utf-8' },
578
- data: params
579
- });
580
- },
581
- handleFieldLength() {
582
- let { fieldList = [] } = this.columnConfig;
583
- let fieldLength = 0;
584
- fieldList.forEach(item => {
585
- // table中有column隐藏
586
- if (item.isShow == 1 && item.isEdit == 1) {
587
- let matchItem = this.batchFieldList.find(v => v.val_key === item.columnName);
588
- if (matchItem) {
589
- fieldLength++;
590
- }
591
- }
592
- });
593
- return fieldLength;
594
- },
595
- /**
596
- * 判断每个表单是否校验过
597
- * @param {*} obj
598
- * @returns
599
- */
600
- handleIsBatchDoneAll(obj) {
601
- // let fieldLength = this.batchFieldList?.length;
602
- let fieldLength = this.fieldLength;
603
- if (!fieldLength) return false;
604
- for (let key in obj) {
605
- if (obj[key] < fieldLength) return false;
606
- }
607
- return true;
608
- }
609
- }
610
- };
1
+ // import { mapMutations, mapActions } from "vuex";
2
+ import utils from '@/utils/utils-map';
3
+ export default {
4
+ props: {
5
+ // 曾经的getters
6
+ isBatchEditing: Boolean,
7
+ isEditAllRow: Boolean,
8
+ isBatchSave: Boolean,
9
+ isBatchCancel: Boolean,
10
+ batchDynamicPropsCache: { type: Object, default: () => ({}) },
11
+ batchEditDoneNumber: { type: Object, default: () => ({}) },
12
+ batchError: Boolean,
13
+ batchFormData: { type: Object, default: () => ({}) },
14
+
15
+ // 曾经的mapActions
16
+ resetInlineBatchEdit: Function,
17
+ resetBatchEditRowStatus: Function
18
+ },
19
+ data() {
20
+ return {
21
+ cacheUniqueKey: {},
22
+ theUniqueKeyListObj: {},
23
+ batchFieldList: [],
24
+ editColumnMap: {},
25
+ fieldLength: 0,
26
+ originFormatList: [],
27
+ isSaveForm: false,
28
+ isLoadData: false,
29
+ isLoadColumn: false,
30
+ addInlineEditPrimaryKey: ''
31
+ };
32
+ },
33
+ computed: {
34
+ configuration() {
35
+ return {
36
+ userInfo: this.userInfo || {},
37
+ sysImageSize: this.sysImageSize || {},
38
+ switchConfig: this.switchConfig || {},
39
+ hospitalConfigData: this.iconObj || {}
40
+ };
41
+ },
42
+ tableLoad() {
43
+ return {
44
+ isLoadData: this.isLoadData,
45
+ isLoadColumn: this.isLoadColumn
46
+ };
47
+ },
48
+ isTableEdit() {
49
+ return this.isInlineOperating || this.isInlineAdding;
50
+ }
51
+ },
52
+ watch: {
53
+ tableLoad(obj) {
54
+ if (!obj) return;
55
+ let { isLoadData, isLoadColumn } = obj;
56
+ if (!(isLoadData && isLoadColumn)) return;
57
+ if (this.isBatchEditing) return;
58
+ this.$emit('tableLoad', true);
59
+ },
60
+ /**
61
+ * 编辑
62
+ */
63
+ async isBatchEditing(val) {
64
+ if (!val || this.isNestTable) return false;
65
+ if (this.isTree != 0 || !this.isMatchComponent) return false;
66
+ if (!this.checkOperateCurrentTable()) {
67
+ this.resetBatchOperationRowStatus();
68
+ return false;
69
+ }
70
+ // 非行内按钮触发
71
+ if (!this.isRowEditing) {
72
+ await this.toggleColumn();
73
+ }
74
+ this.hideSelectCloumns();
75
+ this.handleClickBatchEditBtnByInline();
76
+ },
77
+ /**
78
+ * 保存
79
+ */
80
+ isBatchSave(val) {
81
+ if (!val || this.isNestTable) return false;
82
+ if (this.isTree != 0 || !this.isMatchComponent) return false;
83
+ if (!this.checkOperateCurrentTable()) return false;
84
+ this.handleClickBatchSaveBtnByInline();
85
+ },
86
+ /**
87
+ * 取消
88
+ */
89
+ async isBatchCancel(val) {
90
+ if (!val || this.isNestTable) return false;
91
+ if (this.isTree != 0 || !this.isMatchComponent) return false;
92
+ if (!this.checkOperateCurrentTable()) return false;
93
+ await this.toggleColumn('showColumn');
94
+ this.handleClickBatchCancelBtnByInline();
95
+ },
96
+ /**
97
+ * 校验提交
98
+ */
99
+ batchEditDoneNumber(obj) {
100
+ if (!obj || !Object.keys(obj).length || this.isNestTable) return;
101
+ if (this.isTree != 0 || !this.isMatchComponent) return false;
102
+ if (!this.checkOperateCurrentTable()) return false;
103
+ this.submitBatchInlineForm(obj);
104
+ },
105
+ async isInlineAdding(val) {
106
+ if (!val || this.isNestTable) return false;
107
+ if (this.isTree != 0 || !this.isMatchComponent) return false;
108
+ if (!this.checkOperateCurrentTable()) {
109
+ this.resetBatchOperationRowStatus();
110
+ return false;
111
+ }
112
+ await this.toggleColumn();
113
+ this.hideSelectCloumns();
114
+ this.handleClickAddRow();
115
+ }
116
+ },
117
+ methods: {
118
+ toggleColumn(key) {
119
+ let method = key || 'hideColumn';
120
+ const xGrid = this.$refs.xGrid;
121
+ if (!xGrid) return Promise.resolve();
122
+ let operate = xGrid.getColumnByField('operatorColumn');
123
+ if (method === 'showColumn' && operate.visible) {
124
+ return Promise.resolve();
125
+ }
126
+ return xGrid[method](operate);
127
+ },
128
+ /**
129
+ * 获取配置的 api 方法
130
+ * @param {*} params 调用参数
131
+ * @param {String} key 方法名
132
+ * @param {Object} config 其他配置
133
+ */
134
+ async handleGetConfigApi(params, key, config = {}) {
135
+ try {
136
+ // TODO: 判断 fn 是异步函数还是同步
137
+ const editFormApiConfig = this?.editFormApiConfig || {};
138
+ const fn = editFormApiConfig[key] || null;
139
+ if (typeof fn === 'function') {
140
+ let res = await fn(params, config);
141
+ return Promise.resolve(res);
142
+ } else {
143
+ return Promise.reject(new Error(`${key} Is not a function`));
144
+ }
145
+ } catch (error) {
146
+ return Promise.reject(error);
147
+ }
148
+ },
149
+ /**
150
+ * 设置row 为编辑样式
151
+ */
152
+ getBatchOpreateRows(arr) {
153
+ let vxeTable = this.$refs.xGrid;
154
+ let { tableData } = vxeTable.getTableData();
155
+ if (!arr.length) return;
156
+ // 重置状态时使用
157
+
158
+ arr.forEach((item, i) => {
159
+ let rowIndex = i;
160
+ if (!this.isEditAllRow) {
161
+ let matchIndex = tableData.findIndex(v => v[this.primaryKey] == item[this.primaryKey]);
162
+ if (matchIndex > -1) {
163
+ rowIndex = matchIndex;
164
+ }
165
+ }
166
+ this.setRowStatus(vxeTable.$el, rowIndex, 66);
167
+ this.$set(item, '__isInlineEditing', true);
168
+ });
169
+ },
170
+ /**
171
+ * 重置样式
172
+ * @param {*} isCancel 保存之后
173
+ * @returns
174
+ */
175
+ resetBatchOperationRowStatus(isResetColumn) {
176
+ if (this.isTree != 0) return false;
177
+
178
+ const vxeTable = this.$refs.xGrid;
179
+ let { tableData } = vxeTable.getTableData();
180
+ vxeTable.clearActived();
181
+ vxeTable.resetColumn();
182
+ tableData.forEach((row, index) => {
183
+ this.setRowStatus(vxeTable.$el, index, null);
184
+ this.$set(row, '__isInlineEditing', false);
185
+ this.$set(row, '__isDisableInlineEdit', false);
186
+ });
187
+ this.checkedRows = [];
188
+ },
189
+ async handleClickAddRow() {
190
+ if (!this.checkListFormUnionSettingParamsList()) {
191
+ this.handleClickCancelBtnByInline();
192
+ return false;
193
+ }
194
+ this.addInlineEditPrimaryKey = Date.now();
195
+ let formData = {
196
+ [this.handleRowId]: this.addInlineEditPrimaryKey,
197
+ __isInsertRow: true
198
+ };
199
+ let vxeTable = this.$refs.xGrid;
200
+ await vxeTable.insert(formData);
201
+ await vxeTable.loadData([formData]);
202
+ await this.resetInlineBatchEdit();
203
+
204
+ this.setAllRowInlineStatus(true);
205
+ this.setRowStatus(vxeTable.$el, 0, 66);
206
+ },
207
+ /**
208
+ * 批量编辑
209
+ */
210
+ async handleClickBatchEditBtnByInline() {
211
+ if (!this.checkListFormUnionSettingParamsList()) {
212
+ this.handleClickCancelBtnByInline();
213
+ return false;
214
+ }
215
+ let vxeTable = this.$refs.xGrid;
216
+ let arr = this.checkedRows;
217
+ let { tableData } = vxeTable.getTableData();
218
+ // 全部行编辑
219
+ if (this.isEditAllRow) {
220
+ arr = tableData;
221
+ }
222
+ await vxeTable.loadData(arr);
223
+ await this.resetInlineBatchEdit();
224
+
225
+ this.setAllRowInlineStatus(true);
226
+ this.getBatchOpreateRows(arr);
227
+ },
228
+ /**
229
+ * 批量保存
230
+ */
231
+ handleClickBatchSaveBtnByInline() {
232
+ if (this.spinning) return false;
233
+ this.$emit('resetBatchEditDoneStatus');
234
+
235
+ let formDom = document.querySelectorAll('.js-inlineEditForm');
236
+ let filterFormDom = [];
237
+ [...formDom].map(item => {
238
+ let pNode = item.parentNode?.parentNode;
239
+ if (pNode) {
240
+ if (pNode.classList.contains('vxe-body--column') && !pNode.classList.contains('fixed--hidden')) {
241
+ filterFormDom.push(item);
242
+ }
243
+ }
244
+ });
245
+ if (!filterFormDom.length) return false;
246
+ // // HACK: vxeTable行内编辑时复制的DOM节点,无需触发提交
247
+ filterFormDom.forEach(item => {
248
+ item.__vue__.handleSubmitForm();
249
+ });
250
+ },
251
+ /**
252
+ * 处理需要submit的form个数
253
+ */
254
+ handleEditFormLength() {
255
+ let fieldLength = this.batchFieldList.length;
256
+ if (!fieldLength) return;
257
+ // 新增
258
+ if (this.isInlineAdding) {
259
+ return fieldLength;
260
+ }
261
+ let vxeTable = this.$refs.xGrid;
262
+ let rowLen = this.allSelectedLength;
263
+ let { tableData } = vxeTable.getTableData();
264
+ // 全部行
265
+ if (this.isEditAllRow) {
266
+ rowLen = tableData.length;
267
+ }
268
+ if (!rowLen) return;
269
+ return fieldLength * rowLen;
270
+ },
271
+ async handleClickBatchCancelBtnByInline() {
272
+ let vxeTable = this.$refs.xGrid;
273
+ this.isSaveForm = false;
274
+ this.$emit('resetInlineEditAll', false);
275
+ await vxeTable.reloadData(this.originFormatList);
276
+ this.resetBatchOperationRowStatus(true);
277
+ },
278
+ /**
279
+ * 避免每次点击都查询
280
+ * 初始化查一次 行编辑 表单search用
281
+ */
282
+ // 避免每次点击都查询
283
+ async handleFormTheUniqueKey() {
284
+ let hasEditRow = this.btnList?.find(item => {
285
+ let trigger_type = item.settingObj && item.settingObj[0]?.trigger_type;
286
+ if (item.isShow == 1 && trigger_type == 'EDIT_ROW') return true;
287
+ return false;
288
+ });
289
+ if (!hasEditRow) return;
290
+ await this.handleFieldTheUniqueKey();
291
+ },
292
+ /**
293
+ * 获取编辑的field
294
+ */
295
+ handleFieldTheUniqueKey() {
296
+ return new Promise((resolve, reject) => {
297
+ let { paramsList = [] } = this.listFormUnionSetting || {};
298
+ let { fieldList = [] } = this.inlineEditFormConfig || {};
299
+ fieldList = JSON.parse(JSON.stringify(fieldList));
300
+ this.batchFieldList = [];
301
+ let batchFieldList = [];
302
+ batchFieldList = fieldList
303
+ .map(item => {
304
+ let matchItem = paramsList.find(v => item.val_key === v.tableField);
305
+ if (matchItem) {
306
+ let NOWORDBOOK = item.wordbook && (item?.wordbook?.type || '') != 'WORDBOOK';
307
+ let id = item.wordbook?.id;
308
+ if (NOWORDBOOK && id && !this.theUniqueKeyListObj[id]) {
309
+ this.theUniqueKeyListObj[id] = id;
310
+ }
311
+ return item;
312
+ }
313
+ return null;
314
+ })
315
+ .filter(Boolean);
316
+ if (!batchFieldList || !batchFieldList.length) return resolve();
317
+ // 缓存行编辑需要的column配置
318
+ this.editColumnMap = this.handleColumnMap(batchFieldList, paramsList);
319
+ this.batchFieldList = batchFieldList;
320
+ this.fieldLength = this.handleFieldLength();
321
+ let keyList = Object.keys(this.theUniqueKeyListObj || {});
322
+ if (!keyList.length) return resolve();
323
+ keyList.forEach(async item => {
324
+ await this.handleRequestedUniqueKey(item);
325
+ });
326
+ resolve();
327
+ });
328
+ },
329
+ handleColumnMap(batchFieldList, paramsList) {
330
+ let { fieldList = [] } = this.columnConfig;
331
+ let editColumnMap = {};
332
+ fieldList.forEach(item => {
333
+ if (item.isShow != 1 || item.isEdit != 1) return;
334
+ let matchItem = paramsList.find(v => v.tableField === item.columnName);
335
+ if (!matchItem) return;
336
+ let fieldItem = batchFieldList?.find(field => {
337
+ return field.val_key === matchItem.tableField;
338
+ });
339
+ if (!fieldItem) return;
340
+ fieldItem = this.formatFieldItem(fieldItem);
341
+ let obj = {
342
+ columnName: item.columnName,
343
+ matchItem,
344
+ fieldItem
345
+ };
346
+ editColumnMap[item.columnName] = obj;
347
+ });
348
+ return editColumnMap;
349
+ },
350
+ async handleRequestedUniqueKey(id) {
351
+ let handleEditFormRequestedUniqueKey = this.editFormApiConfig?.handleEditFormRequestedUniqueKey;
352
+ if (!handleEditFormRequestedUniqueKey || typeof handleEditFormRequestedUniqueKey !== 'function') {
353
+ handleEditFormRequestedUniqueKey = this.getPrimaryKeyRequest;
354
+ }
355
+ return handleEditFormRequestedUniqueKey({ tableId: id }).then(val => {
356
+ val && (this.cacheUniqueKey[id] = { value: val, status: true });
357
+ });
358
+ },
359
+ getPrimaryKeyRequest(params) {
360
+ return new Promise((resolve, reject) => {
361
+ this.axios
362
+ .get('tableList/getPrimaryKey', { params })
363
+ .then(({ data }) => {
364
+ let result;
365
+ if (data.result == 'SUCCESS') {
366
+ const { map = {} } = data;
367
+ result = map.primaryKey || undefined;
368
+ } else {
369
+ result = undefined;
370
+ }
371
+ resolve(result);
372
+ })
373
+ .catch(err => {
374
+ reject(err);
375
+ });
376
+ });
377
+ },
378
+ /**
379
+ * 判断是否渲染EditForm
380
+ * @param {*} row
381
+ * @param {*} column
382
+ * @returns
383
+ */
384
+ showEditForm(row, column, $rowIndex) {
385
+ if (!this.isMatchComponent || this.isNestTable || this.isScanMultiTable) return false;
386
+ if (this.isBatchEditing || this.isInlineAdding) {
387
+ let matchObj = this.editColumnMap[column.property];
388
+ if (!matchObj || !matchObj.matchItem || !matchObj.fieldItem) return false;
389
+ // 批量编辑 未选择全部行编辑
390
+ if (this.isBatchEditing && !this.isEditAllRow) {
391
+ let matchIndex = this.checkedRows.findIndex(v => v[this.primaryKey] == row[this.primaryKey]);
392
+ if (matchIndex < 0) return false;
393
+ }
394
+ // 新增
395
+ if (this.isInlineAdding) {
396
+ if ($rowIndex !== 0) return false;
397
+ }
398
+ return matchObj.matchItem;
399
+ }
400
+ return false;
401
+ },
402
+ /**
403
+ * 初始化props
404
+ * @param {*} unionItem
405
+ * @param {*} row
406
+ * @param {*} column
407
+ * @param {*} $rowIndex
408
+ * @returns
409
+ */
410
+ initBatchDynamicProps(unionItem, row, column, $rowIndex) {
411
+ let id = row[this.primaryKey];
412
+ let dynamicPropsCache = this.batchDynamicPropsCache[id];
413
+ if (dynamicPropsCache && dynamicPropsCache[unionItem.tableField]) {
414
+ return dynamicPropsCache[unionItem.tableField];
415
+ }
416
+ let matchObj = this.editColumnMap[column.property];
417
+ let { fieldItem = {} } = matchObj || {};
418
+ let defaultCombinationForm = {};
419
+ if (!this.isInlineAdding) {
420
+ let originalRow = this.pageIndexOldtableData.find(item => {
421
+ let oldItemVal = utils.handleCurValue(item[this.primaryKey]);
422
+ let rowVal = utils.handleCurValue(row[this.primaryKey]);
423
+ return oldItemVal == rowVal;
424
+ });
425
+ defaultCombinationForm = this.setDefaultFormData(column.property, fieldItem, originalRow);
426
+ }
427
+ let tempFieldItem = JSON.parse(JSON.stringify(fieldItem));
428
+ let defaultForm = {
429
+ fieldList: [tempFieldItem],
430
+ defaultCombinationForm
431
+ };
432
+ let dynamicProps = {
433
+ props: {
434
+ formPrimaryKey: id,
435
+ defaultForm,
436
+ banRequest: true,
437
+ propsFormBtn: true,
438
+ propsDelSetting: true,
439
+ parentConfig: {
440
+ is_edit: '1'
441
+ },
442
+ configuration: this.configuration,
443
+ isPure: true,
444
+ isOpenShortcut: false,
445
+ cacheUniqueKey: this.cacheUniqueKey,
446
+ styleSetting: {},
447
+ editFormApiConfig: this.editFormApiConfig,
448
+ btnList: this.btnList
449
+ },
450
+ on: {
451
+ handleSubmit: this.handleSubmitEditForm,
452
+ banSubmit: this.banSubmit
453
+ }
454
+ };
455
+ this.$emit('setBatchDynamicPropsCache', {
456
+ primaryKey: row[this.primaryKey],
457
+ tableField: unionItem.tableField,
458
+ dynamicProps
459
+ });
460
+ return dynamicProps;
461
+ },
462
+ /**
463
+ * 单个form提交成功数据
464
+ * @param {*} obj formData
465
+ */
466
+ handleSubmitEditForm(obj = {}) {
467
+ this.$emit('submitEditFormSuccessBatch', obj);
468
+ },
469
+ /**
470
+ * 单个form提交失败
471
+ * @param {*} obj
472
+ */
473
+ banSubmit(obj) {
474
+ this.$emit('submitEditFormErrorBatch', obj);
475
+ },
476
+ formatFieldItem(fieldItem) {
477
+ return Object.assign({}, fieldItem, {
478
+ elem_width: '12',
479
+ is_show: '1'
480
+ });
481
+ },
482
+ formatField(value) {
483
+ if (value && typeof value == 'string' && value.startsWith('###')) {
484
+ value = value.slice(3);
485
+ value = JSON.parse(value);
486
+ value = value.tooltip || value.value;
487
+ }
488
+ return value;
489
+ },
490
+ setDefaultFormData(property, fieldItem, originalRow = {}) {
491
+ let defaultValue = originalRow[property];
492
+
493
+ return {
494
+ [fieldItem.name]: this.formatField(defaultValue)
495
+ };
496
+ },
497
+ /**
498
+ * 批量提交form
499
+ * @param {*} obj
500
+ * @returns
501
+ */
502
+ submitBatchInlineForm(obj) {
503
+ if (this.batchError) {
504
+ this.resetBatchEditRowStatus();
505
+ this.$emit('triggerSpinning', false);
506
+ return;
507
+ }
508
+ let isBatchDoneAll = this.handleIsBatchDoneAll(obj);
509
+ if (!isBatchDoneAll) {
510
+ this.resetBatchEditRowStatus();
511
+ this.$emit('triggerSpinning', false);
512
+ return;
513
+ }
514
+ let { listFormUnionSetting } = this;
515
+ let { formId } = listFormUnionSetting;
516
+ let params = this.handleSubmitParams(this.batchFormData);
517
+ if (!formId || !params) {
518
+ this.resetBatchEditRowStatus();
519
+ this.$emit('triggerSpinning', false);
520
+ return;
521
+ }
522
+ if (this.isSaveForm) return false;
523
+ this.isSaveForm = true;
524
+ this.savaForm(formId, params)
525
+ .then(async ({ data }) => {
526
+ this.$emit('triggerSpinning', false);
527
+ if (data.result !== 'SUCCESS') {
528
+ this.isSaveForm = false;
529
+ this.$message.error(data.resultMsg || '保存失败');
530
+ this.resetBatchEditRowStatus();
531
+ return false;
532
+ }
533
+
534
+ await this.resetInlineBatchEdit();
535
+ this.handleClickBatchCancelBtnByInline();
536
+ this.$emit('pubTableReload');
537
+ })
538
+ .finally(() => {
539
+ this.isSaveForm = false;
540
+ this.$emit('triggerSpinning', false);
541
+ this.resetBatchEditRowStatus();
542
+ });
543
+ },
544
+ /**
545
+ * 处理form
546
+ * @param {*} batchFormData
547
+ * @returns
548
+ */
549
+ handleSubmitParams(batchFormData) {
550
+ let arr = [];
551
+ for (let key in batchFormData) {
552
+ // v[this.primaryKey] 可能为数字
553
+ // key 为字符串 用全等匹配不到 改为 ==
554
+ let matchItem = this.oldtableData.find(v => v[this.primaryKey] == key);
555
+ let obj = batchFormData[key];
556
+ if (matchItem) {
557
+ obj = Object.assign({}, obj, {
558
+ [this.primaryKey]: matchItem[this.primaryKey]
559
+ });
560
+ }
561
+ arr.push(obj);
562
+ }
563
+ return arr;
564
+ },
565
+ savaForm(formId, params) {
566
+ let handleEditFormSavaForm = this.editFormApiConfig?.handleEditFormSavaForm;
567
+ if (!handleEditFormSavaForm || typeof handleEditFormSavaForm !== 'function') {
568
+ handleEditFormSavaForm = this.savaFormRequest;
569
+ }
570
+ return handleEditFormSavaForm(params, { formId });
571
+ },
572
+ savaFormRequest(params, config) {
573
+ let url = `/form/editRows/update/${config.formId}`;
574
+ return this.axios({
575
+ method: 'post',
576
+ url,
577
+ headers: { 'Content-Type': 'application/json; charset=utf-8' },
578
+ data: params
579
+ });
580
+ },
581
+ handleFieldLength() {
582
+ let { fieldList = [] } = this.columnConfig;
583
+ let fieldLength = 0;
584
+ fieldList.forEach(item => {
585
+ // table中有column隐藏
586
+ if (item.isShow == 1 && item.isEdit == 1) {
587
+ let matchItem = this.batchFieldList.find(v => v.val_key === item.columnName);
588
+ if (matchItem) {
589
+ fieldLength++;
590
+ }
591
+ }
592
+ });
593
+ return fieldLength;
594
+ },
595
+ /**
596
+ * 判断每个表单是否校验过
597
+ * @param {*} obj
598
+ * @returns
599
+ */
600
+ handleIsBatchDoneAll(obj) {
601
+ // let fieldLength = this.batchFieldList?.length;
602
+ let fieldLength = this.fieldLength;
603
+ if (!fieldLength) return false;
604
+ for (let key in obj) {
605
+ if (obj[key] < fieldLength) return false;
606
+ }
607
+ return true;
608
+ }
609
+ }
610
+ };