cnhis-design-vue 2.1.58 → 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 (572) hide show
  1. package/.prettierrc.js +27 -27
  2. package/CHANGELOG.md +2610 -2641
  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 +144 -144
  43. package/es/grid/index.js +4 -4
  44. package/es/index/index.js +1965 -1650
  45. package/es/index/style.css +1 -1
  46. package/es/input/index.js +11 -11
  47. package/es/input-number/index.js +8 -8
  48. package/es/keep-cache/index.js +9 -9
  49. package/es/layout/index.js +8 -8
  50. package/es/list/index.js +8 -8
  51. package/es/locale-provider/index.js +8 -8
  52. package/es/map/index.js +13 -13
  53. package/es/mentions/index.js +8 -8
  54. package/es/menu/index.js +8 -8
  55. package/es/message/index.js +8 -8
  56. package/es/multi-chat/index.js +116 -116
  57. package/es/multi-chat-client/index.js +110 -110
  58. package/es/multi-chat-history/index.js +6 -6
  59. package/es/multi-chat-record/index.js +27 -27
  60. package/es/multi-chat-setting/index.js +43 -43
  61. package/es/multi-chat-sip/index.js +1 -1
  62. package/es/notification/index.js +8 -8
  63. package/es/page-header/index.js +8 -8
  64. package/es/pagination/index.js +8 -8
  65. package/es/popconfirm/index.js +8 -8
  66. package/es/popover/index.js +8 -8
  67. package/es/progress/index.js +8 -8
  68. package/es/radio/index.js +17 -17
  69. package/es/rate/index.js +8 -8
  70. package/es/result/index.js +8 -8
  71. package/es/row/index.js +8 -8
  72. package/es/scale-container/index.js +1 -1
  73. package/es/scale-view/index.js +158 -158
  74. package/es/select/index.js +44 -44
  75. package/es/select-label/index.js +50 -50
  76. package/es/select-person/index.js +20 -20
  77. package/es/shortcut-setter/index.js +10 -10
  78. package/es/skeleton/index.js +8 -8
  79. package/es/slider/index.js +8 -8
  80. package/es/space/index.js +8 -8
  81. package/es/spin/index.js +8 -8
  82. package/es/statistic/index.js +8 -8
  83. package/es/steps/index.js +8 -8
  84. package/es/switch/index.js +8 -8
  85. package/es/table-filter/index.js +253 -238
  86. package/es/table-filter/style.css +1 -1
  87. package/es/tabs/index.js +8 -8
  88. package/es/tag/index.js +9 -9
  89. package/es/time-picker/index.js +8 -8
  90. package/es/timeline/index.js +8 -8
  91. package/es/tooltip/index.js +8 -8
  92. package/es/transfer/index.js +8 -8
  93. package/es/tree/index.js +8 -8
  94. package/es/tree-select/index.js +8 -8
  95. package/es/upload/index.js +8 -8
  96. package/es/utils/clickoutside.js +7 -7
  97. package/es/utils/kty.min-1.0.0.js +5 -5
  98. package/es/utils/time-domain.js +16 -16
  99. package/es/utils/utils-map.js +32 -32
  100. package/es/utils/vexutils.js +27 -27
  101. package/es/verification-code/index.js +2 -2
  102. package/lib/cui.common.js +2045 -1730
  103. package/lib/cui.umd.js +2045 -1730
  104. package/lib/cui.umd.min.js +20 -20
  105. package/package.json +110 -110
  106. package/packages/affix/index.js +12 -12
  107. package/packages/affix/src/Affix.jsx +12 -12
  108. package/packages/age/index.js +27 -27
  109. package/packages/age/src/age/index.vue +139 -139
  110. package/packages/age/src/age-com/index.vue +209 -209
  111. package/packages/alert/index.js +12 -12
  112. package/packages/alert/src/Alert.jsx +11 -11
  113. package/packages/anchor/index.js +18 -18
  114. package/packages/anchor/src/Anchor.jsx +11 -11
  115. package/packages/anchor/src/Link.jsx +11 -11
  116. package/packages/auto-complete/index.js +12 -12
  117. package/packages/auto-complete/src/AutoComplete.jsx +12 -12
  118. package/packages/avatar/index.js +12 -12
  119. package/packages/avatar/src/Avatar.jsx +11 -11
  120. package/packages/back-top/index.js +12 -12
  121. package/packages/back-top/src/BackTop.jsx +11 -11
  122. package/packages/badge/index.js +12 -12
  123. package/packages/badge/src/Badge.jsx +11 -11
  124. package/packages/base/index.js +3 -3
  125. package/packages/big-table/index.js +16 -16
  126. package/packages/big-table/src/BigTable.vue +3150 -3144
  127. package/packages/big-table/src/Fieldset.vue +2067 -2067
  128. package/packages/big-table/src/assets/iconfont/iconfont.css +21 -21
  129. package/packages/big-table/src/assets/style/table-base.less +385 -385
  130. package/packages/big-table/src/assets/style/table-global.less +175 -175
  131. package/packages/big-table/src/components/AutoLayoutButton.vue +279 -279
  132. package/packages/big-table/src/components/NoData.vue +81 -81
  133. package/packages/big-table/src/components/TextOverTooltip.vue +120 -120
  134. package/packages/big-table/src/components/edit-form/EditForm.vue +509 -509
  135. package/packages/big-table/src/components/edit-form/edit-component/config-data/index.js +68 -68
  136. package/packages/big-table/src/components/edit-form/edit-component/edit-date-picker/edit-date-picker.vue +60 -60
  137. package/packages/big-table/src/components/edit-form/edit-component/edit-digital/edit-digital.vue +54 -54
  138. package/packages/big-table/src/components/edit-form/edit-component/edit-input/edit-input.vue +39 -39
  139. package/packages/big-table/src/components/edit-form/edit-component/edit-input-password/edit-input-password.vue +79 -79
  140. package/packages/big-table/src/components/edit-form/edit-component/edit-month-picker/edit-month-picker.vue +37 -37
  141. package/packages/big-table/src/components/edit-form/edit-component/edit-search/edit-search.vue +82 -82
  142. package/packages/big-table/src/components/edit-form/edit-component/edit-search-more/edit-search-more.vue +95 -95
  143. package/packages/big-table/src/components/edit-form/edit-component/edit-select/edit-select.vue +40 -40
  144. package/packages/big-table/src/components/edit-form/edit-component/edit-select-multiple/edit-select-multiple.vue +55 -55
  145. package/packages/big-table/src/components/edit-form/edit-component/edit-switch/edit-switch.vue +43 -43
  146. package/packages/big-table/src/components/edit-form/edit-component/edit-textarea/edit-textarea.vue +41 -41
  147. package/packages/big-table/src/components/edit-form/edit-component/edit-time-picker/edit-time-picker.vue +40 -40
  148. package/packages/big-table/src/components/edit-form/edit-component/mixins/bound-date.js +3 -3
  149. package/packages/big-table/src/components/edit-form/edit-component/mixins/dateType.js +217 -217
  150. package/packages/big-table/src/components/edit-form/edit-component/mixins/item-default.js +639 -639
  151. package/packages/big-table/src/components/edit-form/edit-component/mixins/search.js +1247 -1247
  152. package/packages/big-table/src/components/edit-form/edit-component/register-com.js +26 -26
  153. package/packages/big-table/src/components/edit-form/edit-item/form-event.js +80 -80
  154. package/packages/big-table/src/components/edit-form/edit-item/global-props.js +33 -33
  155. package/packages/big-table/src/components/edit-form/edit-item/index.js +4 -4
  156. package/packages/big-table/src/components/edit-form/edit-item/render-methods.js +28 -28
  157. package/packages/big-table/src/components/edit-form/edit-item/validate-rules.js +463 -463
  158. package/packages/big-table/src/components/edit-form/edit-mixins/form-commom.js +673 -673
  159. package/packages/big-table/src/components/edit-form/edit-mixins/index.js +3 -3
  160. package/packages/big-table/src/components/edit-form/edit-utils/index.js +112 -112
  161. package/packages/big-table/src/components/password-com.vue +58 -58
  162. package/packages/big-table/src/components/player-vod/index.vue +57 -57
  163. package/packages/big-table/src/components/player-vod/player.vue +189 -189
  164. package/packages/big-table/src/components/player-vod/video-list.vue +265 -265
  165. package/packages/big-table/src/components/player-vod/video-modal.vue +126 -126
  166. package/packages/big-table/src/utils/CustomPagination.vue +86 -86
  167. package/packages/big-table/src/utils/batchEditing.js +610 -610
  168. package/packages/big-table/src/utils/bigTableProps.js +103 -103
  169. package/packages/big-table/src/utils/format.js +557 -557
  170. package/packages/big-table/src/utils/nestTable.js +109 -109
  171. package/packages/big-table/src/utils/tableParse.js +234 -234
  172. package/packages/breadcrumb/index.js +21 -21
  173. package/packages/breadcrumb/src/Breadcrumb.jsx +11 -11
  174. package/packages/breadcrumb/src/BreadcrumbItem.jsx +11 -11
  175. package/packages/breadcrumb/src/BreadcrumbSeparator.jsx +11 -11
  176. package/packages/button/index.js +21 -21
  177. package/packages/button/src/Button.jsx +11 -11
  178. package/packages/button/src/ButtonGroup.jsx +11 -11
  179. package/packages/button/src/ButtonPrint/components/IdentityVerification.vue +181 -181
  180. package/packages/button/src/ButtonPrint/index.vue +766 -766
  181. package/packages/button/src/ButtonPrint/mixin/his-print.js +95 -95
  182. package/packages/calendar/index.js +12 -12
  183. package/packages/calendar/src/Calendar.jsx +11 -11
  184. package/packages/captcha/index.js +9 -9
  185. package/packages/captcha/src/Captcha.vue +164 -164
  186. package/packages/captcha/src/Index.vue +47 -47
  187. package/packages/captcha/src/SlideVerify.vue +285 -285
  188. package/packages/card/index.js +21 -21
  189. package/packages/card/src/Card.jsx +12 -12
  190. package/packages/card/src/CardGrid.js +7 -7
  191. package/packages/card/src/CardMeta.js +7 -7
  192. package/packages/carousel/index.js +12 -12
  193. package/packages/carousel/src/Carousel.jsx +12 -12
  194. package/packages/cascader/index.js +12 -12
  195. package/packages/cascader/src/Cascader.jsx +11 -11
  196. package/packages/checkbox/index.js +30 -30
  197. package/packages/checkbox/src/Checkbox.jsx +11 -11
  198. package/packages/checkbox/src/CheckboxImg/index.vue +141 -141
  199. package/packages/checkbox/src/Group.jsx +11 -11
  200. package/packages/col/index.js +13 -13
  201. package/packages/col/src/Col.jsx +11 -11
  202. package/packages/collapse/index.js +18 -18
  203. package/packages/collapse/src/Collapse.jsx +11 -11
  204. package/packages/collapse/src/Panel.jsx +11 -11
  205. package/packages/color-picker/index.js +10 -10
  206. package/packages/color-picker/src/color-picker.vue +191 -191
  207. package/packages/color-picker/src/style.less +109 -109
  208. package/packages/comment/index.js +12 -12
  209. package/packages/comment/src/Comment.jsx +11 -11
  210. package/packages/config-provider/index.js +12 -12
  211. package/packages/config-provider/src/ConfigProvider.jsx +11 -11
  212. package/packages/date-picker/index.js +26 -26
  213. package/packages/date-picker/src/DatePicker.jsx +12 -12
  214. package/packages/date-picker/src/MonthPicker.jsx +11 -11
  215. package/packages/date-picker/src/RangePicker.jsx +11 -11
  216. package/packages/date-picker/src/WeekPicker.jsx +11 -11
  217. package/packages/date-picker/src/utils/index.js +374 -374
  218. package/packages/descriptions/index.js +18 -18
  219. package/packages/descriptions/src/Descriptions.jsx +11 -11
  220. package/packages/descriptions/src/Item.jsx +11 -11
  221. package/packages/divider/index.js +12 -12
  222. package/packages/divider/src/Divider.jsx +11 -11
  223. package/packages/drag-layout/DragFormLeftItem.vue +173 -173
  224. package/packages/drag-layout/DragFormRightItem.vue +284 -284
  225. package/packages/drag-layout/I18n-mixins.js +10 -10
  226. package/packages/drag-layout/drag-layout.vue +778 -778
  227. package/packages/drag-layout/index.js +12 -12
  228. package/packages/drawer/index.js +12 -12
  229. package/packages/drawer/src/Drawer.jsx +11 -11
  230. package/packages/dropdown/index.js +12 -12
  231. package/packages/dropdown/src/Dropdown.jsx +11 -11
  232. package/packages/editor/index.js +9 -9
  233. package/packages/ellipsis/index.js +8 -8
  234. package/packages/ellipsis/src/Ellipsis.vue +65 -65
  235. package/packages/empty/index.js +12 -12
  236. package/packages/empty/src/Empty.jsx +11 -11
  237. package/packages/fabric-chart/index.js +9 -9
  238. package/packages/fabric-chart/src/FabricGrid.vue +67 -66
  239. package/packages/fabric-chart/src/components/DropPopup.vue +90 -90
  240. package/packages/fabric-chart/src/components/MouseRightClick.vue +168 -168
  241. package/packages/fabric-chart/src/components/TimeScaleValue.vue +114 -115
  242. package/packages/fabric-chart/src/const/defaultVaule.js +60 -59
  243. package/packages/fabric-chart/src/fabric-chart/FabricCanvas.vue +43 -9
  244. package/packages/fabric-chart/src/fabric-chart/FabricLines.vue +579 -552
  245. package/packages/fabric-chart/src/fabric-chart/FabricPolylines.vue +1142 -1126
  246. package/packages/fabric-chart/src/fabric-chart/FabricScaleValue.vue +134 -134
  247. package/packages/fabric-chart/src/fabric-chart/FabricTextGroup.vue +574 -566
  248. package/packages/fabric-chart/src/mixins/eventCommon.js +34 -1
  249. package/packages/fabric-chart/src/mixins/fabricCommon.js +95 -95
  250. package/packages/fabric-chart/src/mixins/fabricObject.js +193 -193
  251. package/packages/fabric-chart/src/mixins/type.js +5 -5
  252. package/packages/form/index.js +16 -16
  253. package/packages/form/src/Form.jsx +11 -11
  254. package/packages/form/src/Item.jsx +11 -11
  255. package/packages/form-model/index.js +14 -14
  256. package/packages/form-model/src/FormModel.jsx +11 -11
  257. package/packages/form-model/src/Item.jsx +11 -11
  258. package/packages/form-table/index.js +16 -16
  259. package/packages/form-table/src/FormTable.vue +1110 -1110
  260. package/packages/form-table/src/components/table-component/config-data/index.js +80 -80
  261. package/packages/form-table/src/components/table-component/global-props.js +22 -22
  262. package/packages/form-table/src/components/table-component/index.js +8 -8
  263. package/packages/form-table/src/components/table-component/mixins/bound-date.js +455 -455
  264. package/packages/form-table/src/components/table-component/mixins/dateType.js +217 -217
  265. package/packages/form-table/src/components/table-component/mixins/item-default.js +257 -257
  266. package/packages/form-table/src/components/table-component/mixins/search.js +1242 -1242
  267. package/packages/form-table/src/components/table-component/register-com.js +30 -30
  268. package/packages/form-table/src/components/table-component/table-age/table-age.vue +175 -175
  269. package/packages/form-table/src/components/table-component/table-date-picker/table-date-picker.vue +87 -87
  270. package/packages/form-table/src/components/table-component/table-digital/table-digital.vue +93 -93
  271. package/packages/form-table/src/components/table-component/table-input/table-input.vue +81 -81
  272. package/packages/form-table/src/components/table-component/table-input-password/table-input-password.vue +126 -126
  273. package/packages/form-table/src/components/table-component/table-month-picker/table-month-picker.vue +55 -55
  274. package/packages/form-table/src/components/table-component/table-search/table-search.vue +174 -174
  275. package/packages/form-table/src/components/table-component/table-search-more/table-search-more.vue +191 -191
  276. package/packages/form-table/src/components/table-component/table-select/table-select.vue +64 -64
  277. package/packages/form-table/src/components/table-component/table-select-multiple/table-select-multiple.vue +81 -81
  278. package/packages/form-table/src/components/table-component/table-textarea/table-textarea.vue +76 -76
  279. package/packages/form-table/src/components/table-component/table-time-picker/table-time-picker.vue +55 -55
  280. package/packages/form-table/src/components/table-component/table-tree-select/table-tree-select.vue +135 -135
  281. package/packages/form-table/src/components/table-component/text-over-tooltip/TextOverTooltip.vue +97 -97
  282. package/packages/form-table/src/components/table-item/form-event.js +81 -81
  283. package/packages/form-table/src/components/table-item/global-props.js +27 -27
  284. package/packages/form-table/src/components/table-item/index.js +4 -4
  285. package/packages/form-table/src/components/table-item/render-methods.js +28 -28
  286. package/packages/form-table/src/components/table-item/validate-rules.js +520 -520
  287. package/packages/form-table/src/components/table-mixins/form-commom.js +98 -98
  288. package/packages/form-table/src/components/table-mixins/index.js +3 -3
  289. package/packages/form-table/src/components/table-utils/index.js +112 -112
  290. package/packages/form-table/src/disabledDetail.less +46 -46
  291. package/packages/grid/index.js +10 -10
  292. package/packages/grid/src/grid.js +28 -28
  293. package/packages/icon/index.js +10 -10
  294. package/packages/icon/src/icon.js +13 -13
  295. package/packages/index.js +313 -313
  296. package/packages/input/index.js +30 -30
  297. package/packages/input/src/Group.jsx +11 -11
  298. package/packages/input/src/Input.jsx +11 -11
  299. package/packages/input/src/Password.jsx +11 -11
  300. package/packages/input/src/Search.jsx +11 -11
  301. package/packages/input/src/TextArea.jsx +11 -11
  302. package/packages/input/src/input-quick/components/quick-item.vue +284 -284
  303. package/packages/input/src/input-quick/components/quick-popover.vue +596 -596
  304. package/packages/input/src/input-quick/index.vue +137 -137
  305. package/packages/input-number/index.js +12 -12
  306. package/packages/input-number/src/InputNumber.jsx +11 -11
  307. package/packages/keep-cache/KeepCache.js +236 -236
  308. package/packages/keep-cache/index.css +2 -2
  309. package/packages/keep-cache/index.js +8 -8
  310. package/packages/layout/index.js +27 -27
  311. package/packages/layout/src/Content.jsx +11 -11
  312. package/packages/layout/src/Footer.jsx +11 -11
  313. package/packages/layout/src/Header.jsx +11 -11
  314. package/packages/layout/src/Layout.jsx +11 -11
  315. package/packages/layout/src/Sider.jsx +11 -11
  316. package/packages/list/index.js +21 -21
  317. package/packages/list/src/Item.jsx +11 -11
  318. package/packages/list/src/ItemMeta.jsx +11 -11
  319. package/packages/list/src/List.jsx +11 -11
  320. package/packages/locale-provider/index.js +12 -12
  321. package/packages/locale-provider/src/LocaleProvider.jsx +11 -11
  322. package/packages/map/index.js +9 -9
  323. package/packages/map/src/Map.vue +484 -484
  324. package/packages/map/src/popup-map.vue +53 -53
  325. package/packages/mentions/index.js +18 -18
  326. package/packages/mentions/src/Mentions.jsx +11 -11
  327. package/packages/mentions/src/Option.jsx +11 -11
  328. package/packages/menu/index.js +27 -27
  329. package/packages/menu/src/Divider.jsx +11 -11
  330. package/packages/menu/src/Item.jsx +11 -11
  331. package/packages/menu/src/ItemGroup.jsx +11 -11
  332. package/packages/menu/src/Menu.jsx +11 -11
  333. package/packages/menu/src/SubMenu.jsx +11 -11
  334. package/packages/message/index.js +8 -8
  335. package/packages/modal/index.js +10 -10
  336. package/packages/modal/src/Modal.js +7 -7
  337. package/packages/multi-chat/chat/addConference.vue +200 -200
  338. package/packages/multi-chat/chat/addMembers.vue +411 -411
  339. package/packages/multi-chat/chat/advancedFilter.vue +372 -372
  340. package/packages/multi-chat/chat/calling.vue +246 -246
  341. package/packages/multi-chat/chat/chatFooter.vue +1596 -1596
  342. package/packages/multi-chat/chat/chatHistory.vue +605 -605
  343. package/packages/multi-chat/chat/chatMain.vue +1486 -1486
  344. package/packages/multi-chat/chat/client/index.vue +149 -149
  345. package/packages/multi-chat/chat/delay.vue +177 -177
  346. package/packages/multi-chat/chat/evaluate.vue +343 -343
  347. package/packages/multi-chat/chat/messageRecord.vue +324 -324
  348. package/packages/multi-chat/chat/mixins/NoData.js +20 -20
  349. package/packages/multi-chat/chat/mixins/base.js +97 -97
  350. package/packages/multi-chat/chat/mixins/uniRTCAPI.js +80 -80
  351. package/packages/multi-chat/chat/mixins/viewerOptions.js +67 -67
  352. package/packages/multi-chat/chat/quickReply.vue +439 -439
  353. package/packages/multi-chat/chat/robot/index.vue +312 -312
  354. package/packages/multi-chat/chat/scrollList.vue +1238 -1238
  355. package/packages/multi-chat/chat/videoVoiceList.vue +348 -348
  356. package/packages/multi-chat/chat/voice.vue +431 -431
  357. package/packages/multi-chat/components/avatar.vue +113 -113
  358. package/packages/multi-chat/components/chat-tabs-header.vue +251 -251
  359. package/packages/multi-chat/components/classify-tabs.vue +185 -185
  360. package/packages/multi-chat/components/empty.vue +24 -24
  361. package/packages/multi-chat/components/modal-refuse-reason.vue +112 -112
  362. package/packages/multi-chat/components/modal-sip.vue +160 -160
  363. package/packages/multi-chat/components/modal-user-transfer.vue +98 -98
  364. package/packages/multi-chat/components/msg-describe.vue +138 -138
  365. package/packages/multi-chat/components/msg-picture.vue +68 -68
  366. package/packages/multi-chat/components/msg-prescription.vue +205 -205
  367. package/packages/multi-chat/components/read-record.vue +133 -133
  368. package/packages/multi-chat/components/read-status.vue +34 -34
  369. package/packages/multi-chat/components/user-status.vue +198 -198
  370. package/packages/multi-chat/index.js +7 -7
  371. package/packages/multi-chat/setting/authority/index.vue +156 -156
  372. package/packages/multi-chat/setting/authority/roleSetting.vue +204 -204
  373. package/packages/multi-chat/setting/baseInfo/index.vue +1316 -1316
  374. package/packages/multi-chat/setting/customerService/batchSelect.vue +403 -403
  375. package/packages/multi-chat/setting/customerService/index.vue +273 -273
  376. package/packages/multi-chat/setting/event/edit/condition.vue +128 -128
  377. package/packages/multi-chat/setting/event/edit/index.vue +437 -437
  378. package/packages/multi-chat/setting/event/edit/notice.vue +129 -129
  379. package/packages/multi-chat/setting/event/edit/strategy.vue +98 -98
  380. package/packages/multi-chat/setting/event/index.vue +249 -249
  381. package/packages/multi-chat/setting/index.vue +269 -269
  382. package/packages/multi-chat/setting/page.vue +14 -14
  383. package/packages/multi-chat/setting/sessionList/index.vue +412 -412
  384. package/packages/multi-chat/setting/sessionList/messageRecord.vue +372 -372
  385. package/packages/multi-chat/setting/userConfig/index.vue +124 -124
  386. package/packages/multi-chat/setting/worktime/index.vue +274 -274
  387. package/packages/multi-chat/store/actions.js +452 -452
  388. package/packages/multi-chat/store/getters.js +371 -371
  389. package/packages/multi-chat/store/helper.js +66 -66
  390. package/packages/multi-chat/store/index.js +50 -50
  391. package/packages/multi-chat/store/mutation.js +296 -296
  392. package/packages/multi-chat/store/state.js +117 -117
  393. package/packages/multi-chat/style/emoji.css +315 -315
  394. package/packages/multi-chat/style/message.mixin.less +38 -38
  395. package/packages/multi-chat/utils/chatSock.js +93 -93
  396. package/packages/multi-chat/utils/compressImage.js +115 -115
  397. package/packages/multi-chat/utils/emoji.json +68 -68
  398. package/packages/multi-chat/utils/index.js +259 -259
  399. package/packages/multi-chat/utils/observer-scroll.js +49 -49
  400. package/packages/multi-chat/utils/panelsetting.js +48 -48
  401. package/packages/multi-chat-client/index.js +7 -7
  402. package/packages/multi-chat-history/index.js +7 -7
  403. package/packages/multi-chat-record/index.js +7 -7
  404. package/packages/multi-chat-setting/index.js +7 -7
  405. package/packages/multi-chat-sip/index.js +6 -6
  406. package/packages/notification/index.js +8 -8
  407. package/packages/page-header/index.js +12 -12
  408. package/packages/page-header/src/PageHeader.jsx +11 -11
  409. package/packages/pagination/index.js +12 -12
  410. package/packages/pagination/src/Pagination.jsx +11 -11
  411. package/packages/popconfirm/index.js +12 -12
  412. package/packages/popconfirm/src/Popconfirm.jsx +11 -11
  413. package/packages/popover/index.js +12 -12
  414. package/packages/popover/src/Popover.jsx +11 -11
  415. package/packages/progress/index.js +12 -12
  416. package/packages/progress/src/Progress.jsx +11 -11
  417. package/packages/radio/index.js +33 -33
  418. package/packages/radio/src/Group.jsx +11 -11
  419. package/packages/radio/src/Radio.jsx +11 -11
  420. package/packages/radio/src/RadioButton.jsx +11 -11
  421. package/packages/radio/src/RadioImg/index.vue +124 -124
  422. package/packages/rate/index.js +12 -12
  423. package/packages/rate/src/Rate.jsx +11 -11
  424. package/packages/result/index.js +12 -12
  425. package/packages/result/src/Result.jsx +11 -11
  426. package/packages/row/index.js +12 -12
  427. package/packages/row/src/Row.jsx +11 -11
  428. package/packages/scale-container/index.js +8 -8
  429. package/packages/scale-container/src/ScaleContainer.vue +197 -197
  430. package/packages/scale-view/NoData.vue +81 -81
  431. package/packages/scale-view/answerParse.vue +133 -133
  432. package/packages/scale-view/customList.vue +801 -801
  433. package/packages/scale-view/data.js +80 -80
  434. package/packages/scale-view/evaluateCountdown.vue +155 -155
  435. package/packages/scale-view/evaluatePage.vue +202 -202
  436. package/packages/scale-view/formitem/data.js +3991 -3991
  437. package/packages/scale-view/formitem/index.js +6 -6
  438. package/packages/scale-view/formitem/r-address.vue +238 -238
  439. package/packages/scale-view/formitem/r-choice.vue +726 -726
  440. package/packages/scale-view/formitem/r-input.vue +92 -92
  441. package/packages/scale-view/formitem/r-prompt.vue +52 -52
  442. package/packages/scale-view/formitem/r-time.vue +285 -285
  443. package/packages/scale-view/formitem/r-upload-custom-list.vue +242 -242
  444. package/packages/scale-view/formitem/r-upload.vue +287 -287
  445. package/packages/scale-view/formitem/text-over-tooltip/TextOverTooltip.vue +98 -98
  446. package/packages/scale-view/index.js +17 -17
  447. package/packages/scale-view/mixin/NoData.js +38 -38
  448. package/packages/scale-view/mixin/evaluate.js +146 -146
  449. package/packages/scale-view/mixin/index.js +337 -337
  450. package/packages/scale-view/mixin/judgeTypes.js +267 -267
  451. package/packages/scale-view/scaleView.vue +2010 -2010
  452. package/packages/select/index.js +27 -27
  453. package/packages/select/src/CustomSelect/index.vue +130 -130
  454. package/packages/select/src/OptGroup.jsx +11 -11
  455. package/packages/select/src/Option.jsx +11 -11
  456. package/packages/select/src/Select/Select.vue +231 -231
  457. package/packages/select/src/Select/index.js +12 -12
  458. package/packages/select/src/TableSelect/index.vue +514 -514
  459. package/packages/select-label/index.js +14 -14
  460. package/packages/select-label/label-classify.vue +129 -129
  461. package/packages/select-label/labelFormContent.vue +787 -787
  462. package/packages/select-label/select-label.vue +581 -581
  463. package/packages/select-person/index.js +10 -10
  464. package/packages/select-person/search-tree.vue +373 -373
  465. package/packages/select-person/select-person.vue +1696 -1696
  466. package/packages/shortcut-setter/index.js +12 -12
  467. package/packages/shortcut-setter/src/ShortcutSetter.vue +55 -55
  468. package/packages/shortcut-setter/src/ShortcutSetterItem.vue +84 -84
  469. package/packages/shortcut-setter/src/utils/index.js +63 -63
  470. package/packages/skeleton/index.js +12 -12
  471. package/packages/skeleton/src/Skeleton.jsx +11 -11
  472. package/packages/slider/index.js +12 -12
  473. package/packages/slider/src/Slider.jsx +11 -11
  474. package/packages/space/index.js +12 -12
  475. package/packages/space/src/Space.jsx +11 -11
  476. package/packages/spin/index.js +12 -12
  477. package/packages/spin/src/Spin.jsx +11 -11
  478. package/packages/statistic/index.js +18 -18
  479. package/packages/statistic/src/Countdown.jsx +11 -11
  480. package/packages/statistic/src/Statistic.jsx +11 -11
  481. package/packages/steps/index.js +18 -18
  482. package/packages/steps/src/Step.jsx +11 -11
  483. package/packages/steps/src/Steps.jsx +11 -11
  484. package/packages/switch/index.js +12 -12
  485. package/packages/switch/src/Switch.jsx +11 -11
  486. package/packages/table-filter/index.js +27 -27
  487. package/packages/table-filter/src/base-search-com/BaseSearch.vue +2572 -2572
  488. package/packages/table-filter/src/classification/Classification-com.vue +1756 -1756
  489. package/packages/table-filter/src/classification/search-class-name.vue +266 -266
  490. package/packages/table-filter/src/classification/search-professional-model.vue +680 -680
  491. package/packages/table-filter/src/components/TextOverTooltip.vue +107 -107
  492. package/packages/table-filter/src/components/age-com/index.vue +205 -205
  493. package/packages/table-filter/src/components/button-group/ButtonGroup.vue +162 -162
  494. package/packages/table-filter/src/components/button-icon/button-icon.js +33 -33
  495. package/packages/table-filter/src/components/button-icon/getBtnIcon.js +34 -34
  496. package/packages/table-filter/src/components/c-tree-select/tree-select.vue +336 -336
  497. package/packages/table-filter/src/components/drop-button/drop-button.vue +224 -224
  498. package/packages/table-filter/src/components/drop-button/head-btn-icon.js +33 -33
  499. package/packages/table-filter/src/components/drop-view/drop-view.vue +89 -89
  500. package/packages/table-filter/src/components/multi-select/multi-select.vue +227 -227
  501. package/packages/table-filter/src/components/out-quick-search/out-quick-search.vue +340 -340
  502. package/packages/table-filter/src/components/range-age/index.vue +172 -172
  503. package/packages/table-filter/src/components/search-condition/SearchCondition.vue +1897 -1897
  504. package/packages/table-filter/src/components/search-condition/fieldTypeList.js +169 -169
  505. package/packages/table-filter/src/components/search-filter/SearchFilter.vue +278 -278
  506. package/packages/table-filter/src/components/search-modal/set-classification.vue +310 -310
  507. package/packages/table-filter/src/components/table-modal/TableModal.vue +473 -463
  508. package/packages/table-filter/src/const/dataOptions.js +43 -43
  509. package/packages/table-filter/src/const/index.js +1 -1
  510. package/packages/table-filter/src/index.vue +584 -584
  511. package/packages/table-filter/src/mixins/mixins.js +694 -694
  512. package/packages/table-filter/src/mixins/tableSearchCon.js +128 -128
  513. package/packages/table-filter/src/mixins/wordBookutils.js +102 -102
  514. package/packages/table-filter/src/quick-search/QuickSearch.vue +2125 -2125
  515. package/packages/tabs/index.js +18 -18
  516. package/packages/tabs/src/TabPane.jsx +11 -11
  517. package/packages/tabs/src/Tabs.jsx +11 -11
  518. package/packages/tag/index.js +21 -21
  519. package/packages/tag/src/CheckableTag.jsx +11 -11
  520. package/packages/tag/src/Tag.jsx +11 -11
  521. package/packages/tag/src/TagGroup.vue +621 -621
  522. package/packages/time-picker/index.js +12 -12
  523. package/packages/time-picker/src/TimePicker.jsx +11 -11
  524. package/packages/timeline/index.js +14 -14
  525. package/packages/timeline/src/Item.jsx +11 -11
  526. package/packages/timeline/src/Timeline.jsx +11 -11
  527. package/packages/tooltip/index.js +12 -12
  528. package/packages/tooltip/src/Tooltip.jsx +11 -11
  529. package/packages/transfer/index.js +12 -12
  530. package/packages/transfer/src/Transfer.jsx +11 -11
  531. package/packages/tree/index.js +18 -18
  532. package/packages/tree/src/Tree.jsx +11 -11
  533. package/packages/tree/src/TreeNode.jsx +11 -11
  534. package/packages/tree-select/index.js +18 -18
  535. package/packages/tree-select/src/TreeNode.jsx +11 -11
  536. package/packages/tree-select/src/TreeSelect.jsx +11 -11
  537. package/packages/upload/chunk-upload/chunk-upload-new.vue +1001 -1001
  538. package/packages/upload/chunk-upload/vod-chunk-upload.vue +749 -749
  539. package/packages/upload/chunk-upload/vod-upload-modal.vue +100 -100
  540. package/packages/upload/index.js +12 -12
  541. package/packages/upload/src/Upload.jsx +11 -11
  542. package/packages/verification-code/SlideVerify.vue +306 -306
  543. package/packages/verification-code/index.js +17 -17
  544. package/packages/verification-code/verification-code.vue +147 -147
  545. package/src/component/player-vod/index.vue +57 -57
  546. package/src/component/player-vod/player.vue +188 -188
  547. package/src/component/player-vod/video-list.vue +262 -262
  548. package/src/component/player-vod/video-modal.vue +128 -128
  549. package/src/component/select-options/index.vue +430 -430
  550. package/src/component/select-pages/index.vue +95 -95
  551. package/src/component/svg/index.vue +59 -59
  552. package/src/core/create.js +6 -6
  553. package/src/core/event.js +23 -23
  554. package/src/core/table-methods.js +444 -444
  555. package/src/directive/flexibleResize.js +151 -151
  556. package/src/directive/preventReClick.js +12 -12
  557. package/src/directive/scroll.js +230 -230
  558. package/src/global/variable.js +2 -2
  559. package/src/style/normalize.css +424 -424
  560. package/src/style/style.less +49 -49
  561. package/src/utils/UniRTCv2.js +626 -626
  562. package/src/utils/chatFetch.js +61 -61
  563. package/src/utils/clickoutside.js +75 -75
  564. package/src/utils/crypto.js +25 -25
  565. package/src/utils/index.js +81 -81
  566. package/src/utils/kty-sdk.js +582 -582
  567. package/src/utils/kty.min-1.0.0.js +14378 -14378
  568. package/src/utils/sip-device.js +79 -79
  569. package/src/utils/time-domain.js +193 -193
  570. package/src/utils/trtc.js +1 -1
  571. package/src/utils/utils-map.js +484 -484
  572. 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
+ };