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,778 +1,778 @@
1
- <template>
2
- <div class="drag-layout-container">
3
- <div class="border-box"></div>
4
- <!-- 左边 -->
5
- <div class="text-area">
6
- <div class="info-header">{{ getI18nText("1.1.8.6.3", "备选字段") }}</div>
7
- <draggable
8
- class="min-height text-draggable"
9
- v-model="hideFields"
10
- :options="{
11
- group: 'formitem',
12
- animation: 300
13
- }"
14
- ref="textDraggable"
15
- id="textDraggable"
16
- @add="leftDragAdd"
17
- >
18
- <li v-for="(element, index) in hideFields" :key="index">
19
- <slot name="leftItem" :itemData="element">
20
- <DragFormLeftItem :element="element" />
21
- </slot>
22
- </li>
23
- </draggable>
24
- </div>
25
- <!-- 右边 -->
26
- <div class="form-area">
27
- <div class="info-header">
28
- <a-button class="add-divider" type="dashed" size="small" @click="handlerAddBranchLine"
29
- >新建分行符</a-button
30
- >
31
- <a-button class="add-divider" type="dashed" size="small" @click="handlerAddLine">{{
32
- getI18nText("1.9.50", "新建分线栏")
33
- }}</a-button>
34
- </div>
35
- <draggable
36
- class="min-height draggable-content"
37
- v-model="showFields"
38
- :move="handleDragRemove"
39
- :options="{
40
- group: 'formitem',
41
- animation: 300,
42
- filter: '.undraggable'
43
- }"
44
- >
45
- <a-col
46
- v-for="(element, index) in showFields"
47
- :key="index"
48
- :label="element"
49
- :span="(element.elem_width || 12) * 2"
50
- :class="{
51
- 'combination-col': element.html_type === 'COMBINATION'
52
- }"
53
- ><slot name="rightItem" :itemData="element">
54
- <DragFormRightItem
55
- :element="element"
56
- :index="index"
57
- @handleEdit="handleEdit"
58
- @handleDelete="handleDelete"
59
- />
60
- </slot>
61
- </a-col>
62
- </draggable>
63
- </div>
64
-
65
- <!-- 弹窗 -->
66
- <a-modal
67
- :title="getI18nText('1.9.51', '字段属性')"
68
- :zIndex="2001"
69
- v-model="modalVisible"
70
- @ok="handleOk"
71
- v-if="modalVisible"
72
- >
73
- <div slot="title">{{ getI18nText("1.9.51", "字段属性") }}</div>
74
- <a-form :form="form">
75
- <!-- 名称 -->
76
- <a-form-item
77
- v-if="!is_text"
78
- :label="getI18nText('1.1.3.1.1', '名称')"
79
- :label-col="{ span: 4 }"
80
- :wrapper-col="{ span: 14 }"
81
- >
82
- <!-- rules: [{ required: true, message: $t('1.9.40') }], -->
83
- <a-input
84
- :placeholder="getI18nText('1.1.3.1.1', '名称')"
85
- v-decorator="[
86
- 'selectAlias',
87
- {
88
- initialValue: modalFormData.fieldAlias
89
- }
90
- ]"
91
- />
92
- </a-form-item>
93
- <template v-if="!isPageLayout">
94
- <!-- 默认值 -->
95
- <a-form-item
96
- v-if="!is_text"
97
- :label="getI18nText('1.2.1.12.21', '默认值')"
98
- :label-col="{ span: 4 }"
99
- :wrapper-col="{ span: 14 }"
100
- >
101
- <a-input
102
- :placeholder="getI18nText('1.2.1.12.21', '默认值')"
103
- v-decorator="[
104
- 'default_val',
105
- {
106
- initialValue: modalFormData.default_val
107
- }
108
- ]"
109
- />
110
- </a-form-item>
111
- </template>
112
-
113
- <!-- 宽度 -->
114
- <a-form-item
115
- v-if="!hideModalWidth"
116
- :label="getI18nText('1.2.1.12.25', '宽度')"
117
- :label-col="{ span: 4 }"
118
- :wrapper-col="{ span: 14 }"
119
- >
120
- <a-select
121
- dropdownClassName="dragForm-select-drop"
122
- v-decorator="['selectWidth', { initialValue: modalFormData.elem_width }]"
123
- >
124
- <a-select-option value="12">{{ getI18nText("1.2.5.27", "整行") }}</a-select-option>
125
- <a-select-option value="6">{{ getI18nText("1.2.5.28", "半行") }}</a-select-option>
126
- <a-select-option value="10">5/6</a-select-option>
127
- <a-select-option value="8">2/3</a-select-option>
128
- <a-select-option value="4">1/3</a-select-option>
129
- <a-select-option value="9">3/4</a-select-option>
130
- <a-select-option value="3">1/4</a-select-option>
131
- </a-select>
132
- </a-form-item>
133
-
134
- <!-- 高度 -->
135
- <a-form-item
136
- v-if="isPageLayout && !hideModalWidth"
137
- :label="getI18nText('1.9.513', '高度(行)')"
138
- :label-col="{ span: 4 }"
139
- :wrapper-col="{ span: 14 }"
140
- >
141
- <a-input
142
- :placeholder="getI18nText('1.9.513', '高度(行)')"
143
- v-decorator="[
144
- 'line_height',
145
- {
146
- initialValue: modalFormData.line_height
147
- }
148
- ]"
149
- />
150
- </a-form-item>
151
- <template v-if="!is_text">
152
- <!-- 说明文本 -->
153
- <a-form-item
154
- v-if="!isPageLayout"
155
- :label="getI18nText('1.9.242', '说明文本')"
156
- :label-col="{ span: 4 }"
157
- :wrapper-col="{ span: 14 }"
158
- >
159
- <a-input
160
- :placeholder="getI18nText('1.9.242', '说明文本')"
161
- v-decorator="[
162
- 'placeholder',
163
- {
164
- initialValue: modalFormData.placeholder
165
- }
166
- ]"
167
- />
168
- </a-form-item>
169
-
170
- <a-form-item
171
- v-if="modalFormData.html_type != 'PAGE_LAYOUT'"
172
- :label="'问号提示'"
173
- :label-col="{ span: 4 }"
174
- :wrapper-col="{ span: 14 }"
175
- >
176
- <a-input
177
- :maxLength="200"
178
- :placeholder="'请输入问号提示'"
179
- v-decorator="[
180
- 'remark',
181
- {
182
- initialValue: modalFormData.remark
183
- }
184
- ]"
185
- />
186
- </a-form-item>
187
- </template>
188
-
189
- <template
190
- v-if="
191
- modalFormData.is_fast_reply_field != 1 &&
192
- (modalFormData.html_type == 'TEXTAREA' || modalFormData.html_type == 'INPUT')
193
- "
194
- >
195
- <!-- 快速输入 -->
196
- <a-form-item
197
- :label="getI18nText('1.9.5', '快速输入')"
198
- :label-col="{ span: 4 }"
199
- :wrapper-col="{ span: 14 }"
200
- >
201
- <a-checkbox :checked="modalFormData.is_fast_reply" @change="checkOnChange"></a-checkbox>
202
- </a-form-item>
203
- <!-- 回复分类 -->
204
- <a-form-item
205
- v-if="modalFormData.is_fast_reply"
206
- :label="'短语分类'"
207
- :label-col="{ span: 4 }"
208
- :wrapper-col="{ span: 14 }"
209
- >
210
- <a-select
211
- mode="multiple"
212
- showSearch
213
- v-decorator="[
214
- 'reply_category',
215
- {
216
- rules: [
217
- {
218
- required: modalFormData.is_fast_reply,
219
- message: getI18nText('1.9.40', '请输入')
220
- }
221
- ],
222
- initialValue: modalFormData.reply_category
223
- }
224
- ]"
225
- :filterOption="$utils.filterOption"
226
- :placeholder="getI18nText('1.1.3.1.14', '分类名称')"
227
- @change="changeCategofy"
228
- dropdownClassName="dragForm-select-drop"
229
- >
230
- <!-- 分类名称 -->
231
- <a-select-option v-for="(v, i) in publicReply" :key="v.id + i" :value="v">{{
232
- v
233
- }}</a-select-option>
234
- </a-select>
235
- </a-form-item>
236
- <!-- v-show="modalFormData.is_edit" -->
237
- <!-- 部分隐藏 -->
238
- <a-form-item
239
- v-show="modalFormData.is_edit == 0"
240
- :label="getI18nText('1.1.8.2.10', '部分隐藏')"
241
- :label-col="{ span: 4 }"
242
- :wrapper-col="{ span: 14 }"
243
- >
244
- <a-input-number
245
- :placeholder="getI18nText('1.9.40', '请输入')"
246
- v-decorator="[
247
- 'hideExpression',
248
- {
249
- rules: [{ type: 'number', message: getI18nText('1.9.40', '请输入') }],
250
- initialValue: modalFormData.hideExpression
251
- }
252
- ]"
253
- />
254
- </a-form-item>
255
- </template>
256
-
257
- <!-- 动态文本值 -->
258
- <a-form-item v-if="is_text" :label="'文本内容(支持FreeMarker)'">
259
- <a-textarea
260
- :placeholder="'请输入动态文本内容'"
261
- v-decorator="[
262
- 'default_val',
263
- {
264
- initialValue: modalFormData.default_val
265
- }
266
- ]"
267
- />
268
- </a-form-item>
269
- </a-form>
270
- </a-modal>
271
-
272
- <a-modal :title="lineAddTitle" :zIndex="2001" v-model="visibleLineAdd">
273
- <template slot="footer">
274
- <a-button key="back" @click="handleCancel">
275
- {{ getI18nText("1.1.1.1.4", "取消") }}
276
- </a-button>
277
- <a-button key="submit" type="primary" @click="handleOkLineAdd">
278
- {{ getI18nText("1.1.1.1.5", "确认") }}
279
- </a-button>
280
- </template>
281
- <div>
282
- <label class="new-name">{{ getI18nText("1.1.3.1.1", "名称") }}</label>
283
- <a-input class="view-model-input new-name-input" v-model="itemTitleNameAdd" />
284
- </div>
285
- <div v-show="lineType != 'LINE_BREAKS'">
286
- <input
287
- class="name-new-change"
288
- @change="onChangeAdd($event, 'is_show')"
289
- type="checkbox"
290
- v-model="isAddChecked"
291
- />
292
- {{ getI18nText("1.9.69", "默认展开") }}
293
- <br />
294
- <input
295
- class="name-new-change"
296
- @change="onChangeAdd($event, 'is_not_fold')"
297
- type="checkbox"
298
- v-model="is_not_foldChecked"
299
- />
300
- 不可折叠
301
- <!-- {{ $t("1.9.69") }} -->
302
- </div>
303
- </a-modal>
304
- </div>
305
- </template>
306
-
307
- <script>
308
- import create from "@/core/create";
309
- import { Button, Col, Modal, Input, Form, Select, Checkbox, InputNumber } from "ant-design-vue";
310
- import draggable from "vuedraggable";
311
- import DragFormLeftItem from "./DragFormLeftItem.vue";
312
- import DragFormRightItem from "./DragFormRightItem.vue";
313
- import I18nm from "./I18n-mixins";
314
- export default create({
315
- name: 'drag-layout',
316
- components: {
317
- [Button.name]: Button,
318
- [Select.name]: Select,
319
- [Select.Option.name]: Select.Option,
320
- [Input.name]: Input,
321
- [InputNumber.name]: InputNumber,
322
- [Input.TextArea.name]: Input.TextArea,
323
- [Checkbox.name]: Checkbox,
324
- [Col.name]: Col,
325
- AModal: Modal,
326
- [Form.name]: Form,
327
- [Form.Item.name]: Form.Item,
328
- draggable,
329
- DragFormLeftItem,
330
- DragFormRightItem
331
- },
332
- mixins: [I18nm],
333
- data() {
334
- return {
335
- modalVisible: false,
336
- visibleLineAdd: false,
337
-
338
- modalFormData: {
339
- name: "", // 名称
340
- alias: "",
341
- fieldAlias: "", // 别名
342
- elem_width: "12", // 宽度
343
- reply_category: [], // 快速回复分类
344
- is_fast_reply: false, // 快速输入
345
- html_type: "", // 类型
346
- is_edit: 1, // 是否可编辑
347
- hideExpression: "", // 部分隐藏
348
- remark: "", // 字段说明
349
- default_val: "", // 默认值
350
- placeholder: "", // 字段提示语
351
- publicReply: [], // 分类数据
352
- is_fast_reply_field: 0 // 快速回复开启
353
- },
354
- publicReply: [],
355
-
356
- itemTitleNameAdd: "",
357
- is_show: 0,
358
- is_not_fold: 0,
359
- isAddChecked: false,
360
- is_not_foldChecked: false,
361
-
362
- handleLIne: "add",
363
- lineType: "LINEBAR",
364
-
365
- showFields: [],
366
- hideFields: [],
367
- curIndex: undefined,
368
- editModalType: "edit",
369
-
370
- lineAddTitle: this.getI18nText("1.9.50", "新建分线栏")
371
- };
372
- },
373
- props: {
374
- leftList: {
375
- type: Array,
376
- default: () => []
377
- },
378
- rightList: {
379
- type: Array,
380
- default: () => []
381
- },
382
-
383
- getpublicReplyList: {
384
- type: Function,
385
- default: () => Promise.resolve([])
386
- }
387
- },
388
- computed: {
389
- isPageLayout() {
390
- return (
391
- this.modalFormData.html_type === "PAGE_LAYOUT" ||
392
- this.modalFormData.html_type === "COMBINATION"
393
- );
394
- },
395
- is_text() {
396
- return "TEXT" == this.modalFormData.html_type;
397
- },
398
- hideModalWidth() {
399
- return this.modalFormData.html_type === "COMBINATION";
400
- },
401
- lineTypeList() {
402
- return ["LINEBAR", "LINE_BREAKS"];
403
- }
404
- },
405
- watch: {
406
- showFields: {
407
- deep: true,
408
- handler(val) {
409
- this.updateConfig();
410
- }
411
- },
412
- hideFields: {
413
- deep: true,
414
- handler(val) {
415
- this.updateConfig();
416
- }
417
- }
418
- },
419
- beforeCreate() {
420
- this.form = this.$form.createForm(this);
421
- },
422
- created() {},
423
- mounted() {
424
- this.mountedInit();
425
- this.$nextTick().then(() => {
426
- this.$el.querySelector('.text-area').style.height = this.$el.clientHeight + 'px';
427
- });
428
- },
429
- methods: {
430
- mountedInit() {
431
- const { rightList, leftList } = this;
432
- let checkList = v => Array.isArray(v) && v.length > 0;
433
- if (checkList(rightList) || checkList(leftList)) {
434
- this.handleSetData({ rightList, leftList });
435
- }
436
- },
437
-
438
- // 设置数据
439
- handleSetData(config = {}) {
440
- if (Array.isArray(config.rightList)) {
441
- this.$set(this, "showFields", config.rightList);
442
- }
443
-
444
- if (Array.isArray(config.leftList)) {
445
- this.$set(this, "hideFields", config.leftList);
446
- }
447
- },
448
- handleEdit(data, i, type = "edit") {
449
- this.currentIndex = i;
450
- this.editModalType = type;
451
- if (this.isLineType(data.html_type)) {
452
- this.handleLIne = "edit";
453
- this.visibleLineAdd = true;
454
- this.itemTitleNameAdd = data.fieldAlias || data.name || "分行符";
455
- this.is_show = data.is_show;
456
- this.is_not_fold = data.is_not_fold;
457
- this.isAddChecked = data.is_show == 1;
458
- this.is_not_foldChecked = data.is_not_fold == 1;
459
- return;
460
- }
461
- const keyList = [
462
- "fieldAlias",
463
- "elem_width",
464
- "reply_category",
465
- "html_type",
466
- "is_edit",
467
- "remark",
468
- "default_val",
469
- "line_height",
470
- "is_fast_reply_field",
471
- "placeholder"
472
- ];
473
- keyList.forEach(v => {
474
- if (v === "reply_category") {
475
- if (data[v] && this.$utils.isJSON(data[v])) {
476
- this.modalFormData[v] = JSON.parse(data[v]) || [];
477
- } else {
478
- this.modalFormData[v] = (data[v] && [data[v]]) || [];
479
- }
480
- } else {
481
- this.modalFormData[v] = data[v] || undefined;
482
- }
483
- });
484
- if (!this.publicReply?.length && data["is_fast_reply_field"] != 1) {
485
- this.handleReqQieckReplyData();
486
- }
487
-
488
- // 其他处理
489
- this.modalFormData.is_fast_reply = data.is_fast_reply == 1;
490
- this.modalFormData.hideExpression = 0;
491
-
492
- this.modalVisible = true;
493
- },
494
- // 快速回复
495
- async handleReqQieckReplyData() {
496
- // this.axios
497
- // .get("/fastReply/getList/all")
498
- // .then(({ data }) => {
499
- // if (data.result === "SUCCESS") {
500
- // this.publicReply = data.map?.organizationReply || [];
501
- // } else {
502
- // this.publicReply = [];
503
- // }
504
- // })
505
- // .catch(err => {
506
- // this.publicReply = [];
507
- // console.log(err);
508
- // });
509
- try {
510
- let res = await this.getpublicReplyList();
511
- this.publicReply = Array.isArray(res) ? res : [];
512
- } catch (error) {
513
- console.log(error);
514
- }
515
- },
516
- changeCategofy(value) {
517
- console.log(value);
518
- },
519
-
520
- handleOk(e) {
521
- e.preventDefault();
522
- this.form.validateFields((err, values) => {
523
- if (err) return;
524
- if (this.editModalType == "edit") {
525
- this.showFields[this.currentIndex].fieldAlias = values.selectAlias;
526
- this.showFields[this.currentIndex].elem_width = values.selectWidth;
527
- this.showFields[this.currentIndex].is_fast_reply = this.modalFormData.is_fast_reply
528
- ? 1
529
- : 0;
530
- // 直接赋值,不需要转换的属性
531
- let keys = [
532
- "reply_category",
533
- "remark",
534
- "hideExpression",
535
- "default_val",
536
- "line_height",
537
- "placeholder"
538
- ];
539
- keys.forEach(k => {
540
- this.showFields[this.currentIndex][k] = values[k];
541
- });
542
- } else {
543
- this.showFields[this.currentIndex].reply_category = values.reply_category;
544
- }
545
-
546
- this.modalVisible = false;
547
- });
548
- },
549
- handleDelete(data, i) {
550
- let deleItem = this.showFields.splice(i, 1);
551
- // 没有 val_key 的分线栏是中台创建的可以删除,后台创建的移到备选字段
552
- if (this.isLineType(data.html_type) && !data.val_key) {
553
- return;
554
- }
555
- this.hideFields.push(...deleItem);
556
- },
557
- getParams() {
558
- return {
559
- showFields: this.showFields,
560
- hideFields: this.hideFields
561
- };
562
- },
563
-
564
- addItemShowLine() {
565
- this.visibleLineAdd = true;
566
- this.itemTitleNameAdd = "";
567
- this.is_show = 1;
568
- this.is_not_fold = 0;
569
- this.isAddChecked = true;
570
- this.is_not_foldChecked = false;
571
- if (this.lineType === "LINEBAR") {
572
- this.lineAddTitle = this.getI18nText("1.9.50", "新建分线栏");
573
- } else if (this.lineType === "LINE_BREAKS") {
574
- this.lineAddTitle = "新建分行符";
575
- }
576
- },
577
- handlerAddLine() {
578
- this.handleLIne = "add";
579
- this.lineType = "LINEBAR";
580
- this.addItemShowLine();
581
- },
582
- // 新增分行符
583
- handlerAddBranchLine() {
584
- this.handleLIne = "add";
585
- this.lineType = "LINE_BREAKS";
586
- this.addItemShowLine();
587
- this.is_show = 1;
588
- },
589
- onChangeAdd(e, key) {
590
- if (e.target.checked == true) {
591
- this[key] = 1;
592
- } else {
593
- this[key] = 0;
594
- }
595
- },
596
- handleCancel() {
597
- this.visibleLine = false;
598
- this.visibleLineAdd = false;
599
- },
600
- handleOkLineAdd() {
601
- let isL = this.lineType === "LINEBAR";
602
- let lineDefaultName = isL ? "分线栏" : "分行符";
603
-
604
- if (this.handleLIne === "edit") {
605
- let curItem = this.showFields[this.currentIndex];
606
- this.lineType = curItem.html_type;
607
- curItem.is_show = this.is_show;
608
- if (isL) {
609
- curItem.is_not_fold = this.is_not_fold;
610
- }
611
- // curItem.fieldAlias = this.itemTitleNameAdd;
612
- this.$set(curItem, "fieldAlias", this.itemTitleNameAdd || lineDefaultName);
613
- } else {
614
- // 新建 name
615
- this.showFields.push({
616
- html_type: this.lineType || "LINEBAR",
617
- is_show: this.is_show,
618
- is_not_fold: isL ? this.is_not_fold : undefined,
619
- name: this.itemTitleNameAdd || lineDefaultName
620
- });
621
- }
622
- this.handleCancel();
623
- },
624
- leftDragAdd(e) {
625
- let { newIndex, oldIndex } = e;
626
- if (oldIndex > -1 && oldIndex > -1) {
627
- let curItem = this.hideFields[newIndex];
628
- if (curItem.is_system_fields == 0) {
629
- this.hideFields.splice(newIndex, 1);
630
- this.showFields.splice(oldIndex, 0, curItem);
631
- }
632
- }
633
- },
634
- handleDragRemove(e) {
635
- let { draggedContext = {}, to } = e;
636
- let movedItem = draggedContext.element || {};
637
- let className = to.className || "";
638
-
639
- if (movedItem.is_drag && movedItem.is_drag == 0 && className.includes("text-draggable")) {
640
- return false;
641
- }
642
- },
643
- checkOnChange(e) {
644
- this.modalFormData.is_fast_reply = e.target.checked;
645
- },
646
-
647
- /** line 类型 */
648
- isLineType(t) {
649
- return this.lineTypeList.includes(t);
650
- },
651
-
652
- visibleChange(e) {
653
- // console.log("e", e);
654
- },
655
-
656
- /**
657
- * 更新配置
658
- */
659
- updateConfig() {
660
- clearTimeout(this.updateTime);
661
- this.updateTime = setTimeout(() => {
662
- this.$emit("updateConfig", {
663
- leftList: this.hideFields,
664
- rightList: this.showFields
665
- });
666
- }, 100);
667
- }
668
- }
669
- });
670
- </script>
671
- <style lang="less" scoped>
672
- .drag-layout-container {
673
- width: 100%;
674
- height: 100%;
675
- flex: 1;
676
- overflow: hidden;
677
- overflow-y: auto;
678
- position: relative;
679
- display: flex;
680
- justify-content: flex-start;
681
- border: 1px solid #d2d9e8;
682
- text-align: left;
683
- .min-height {
684
- height: calc(100% - 60px);
685
- overflow: hidden;
686
- overflow-y: auto;
687
- li {
688
- list-style: none;
689
- }
690
- }
691
-
692
- .border-box {
693
- position: absolute;
694
- top: 0;
695
- left: 30%;
696
- border-left: 1px solid #d2d9e8;
697
- height: 100%;
698
- }
699
-
700
- // 左边
701
- .text-area {
702
- width: 30%;
703
- height: 100%;
704
- overflow-y: auto;
705
- padding: 0 !important;
706
-
707
- // 头部
708
- .info-header {
709
- display: flex;
710
- height: 50px;
711
- line-height: 50px;
712
- padding: 0 10px;
713
- margin-bottom: 10px;
714
- color: #2e2e2e;
715
- font-size: 18px;
716
- font-weight: bold;
717
- background: #e6eaef;
718
- }
719
-
720
- // 拖拽容器
721
- .text-draggable {
722
- display: flex;
723
- flex-wrap: wrap;
724
- justify-content: space-between;
725
- align-items: flex-start;
726
- padding: 0 12px 12px;
727
- box-sizing: border-box;
728
- align-content: flex-start;
729
- li {
730
- width: 49%;
731
- text-align: center;
732
- }
733
- }
734
- }
735
-
736
- // 右边
737
- .form-area {
738
- position: relative;
739
- width: 70%;
740
- height: 100%;
741
- overflow-y: auto;
742
- padding: 4px;
743
- box-sizing: border-box;
744
- &::-webkit-scrollbar {
745
- width: 5px;
746
- }
747
- // .add-divider {
748
- // position: absolute;
749
- // right: 8px;
750
- // top: 8px;
751
- // }
752
- .info-header {
753
- height: 50px;
754
- margin-bottom: 10px;
755
- background: unset;
756
-
757
- display: flex;
758
- justify-content: flex-end;
759
- align-items: center;
760
- }
761
- /deep/ .combination-col {
762
- // padding: 0px 8px 8px;
763
- border: 1px solid #cdc5d3;
764
- margin-bottom: 10px;
765
- }
766
-
767
- .draggable-content {
768
- /deep/ .ant-col {
769
- transform: none !important;
770
- }
771
- }
772
- }
773
- }
774
-
775
- .dragForm-select-drop {
776
- z-index: 2001;
777
- }
778
- </style>
1
+ <template>
2
+ <div class="drag-layout-container">
3
+ <div class="border-box"></div>
4
+ <!-- 左边 -->
5
+ <div class="text-area">
6
+ <div class="info-header">{{ getI18nText("1.1.8.6.3", "备选字段") }}</div>
7
+ <draggable
8
+ class="min-height text-draggable"
9
+ v-model="hideFields"
10
+ :options="{
11
+ group: 'formitem',
12
+ animation: 300
13
+ }"
14
+ ref="textDraggable"
15
+ id="textDraggable"
16
+ @add="leftDragAdd"
17
+ >
18
+ <li v-for="(element, index) in hideFields" :key="index">
19
+ <slot name="leftItem" :itemData="element">
20
+ <DragFormLeftItem :element="element" />
21
+ </slot>
22
+ </li>
23
+ </draggable>
24
+ </div>
25
+ <!-- 右边 -->
26
+ <div class="form-area">
27
+ <div class="info-header">
28
+ <a-button class="add-divider" type="dashed" size="small" @click="handlerAddBranchLine"
29
+ >新建分行符</a-button
30
+ >
31
+ <a-button class="add-divider" type="dashed" size="small" @click="handlerAddLine">{{
32
+ getI18nText("1.9.50", "新建分线栏")
33
+ }}</a-button>
34
+ </div>
35
+ <draggable
36
+ class="min-height draggable-content"
37
+ v-model="showFields"
38
+ :move="handleDragRemove"
39
+ :options="{
40
+ group: 'formitem',
41
+ animation: 300,
42
+ filter: '.undraggable'
43
+ }"
44
+ >
45
+ <a-col
46
+ v-for="(element, index) in showFields"
47
+ :key="index"
48
+ :label="element"
49
+ :span="(element.elem_width || 12) * 2"
50
+ :class="{
51
+ 'combination-col': element.html_type === 'COMBINATION'
52
+ }"
53
+ ><slot name="rightItem" :itemData="element">
54
+ <DragFormRightItem
55
+ :element="element"
56
+ :index="index"
57
+ @handleEdit="handleEdit"
58
+ @handleDelete="handleDelete"
59
+ />
60
+ </slot>
61
+ </a-col>
62
+ </draggable>
63
+ </div>
64
+
65
+ <!-- 弹窗 -->
66
+ <a-modal
67
+ :title="getI18nText('1.9.51', '字段属性')"
68
+ :zIndex="2001"
69
+ v-model="modalVisible"
70
+ @ok="handleOk"
71
+ v-if="modalVisible"
72
+ >
73
+ <div slot="title">{{ getI18nText("1.9.51", "字段属性") }}</div>
74
+ <a-form :form="form">
75
+ <!-- 名称 -->
76
+ <a-form-item
77
+ v-if="!is_text"
78
+ :label="getI18nText('1.1.3.1.1', '名称')"
79
+ :label-col="{ span: 4 }"
80
+ :wrapper-col="{ span: 14 }"
81
+ >
82
+ <!-- rules: [{ required: true, message: $t('1.9.40') }], -->
83
+ <a-input
84
+ :placeholder="getI18nText('1.1.3.1.1', '名称')"
85
+ v-decorator="[
86
+ 'selectAlias',
87
+ {
88
+ initialValue: modalFormData.fieldAlias
89
+ }
90
+ ]"
91
+ />
92
+ </a-form-item>
93
+ <template v-if="!isPageLayout">
94
+ <!-- 默认值 -->
95
+ <a-form-item
96
+ v-if="!is_text"
97
+ :label="getI18nText('1.2.1.12.21', '默认值')"
98
+ :label-col="{ span: 4 }"
99
+ :wrapper-col="{ span: 14 }"
100
+ >
101
+ <a-input
102
+ :placeholder="getI18nText('1.2.1.12.21', '默认值')"
103
+ v-decorator="[
104
+ 'default_val',
105
+ {
106
+ initialValue: modalFormData.default_val
107
+ }
108
+ ]"
109
+ />
110
+ </a-form-item>
111
+ </template>
112
+
113
+ <!-- 宽度 -->
114
+ <a-form-item
115
+ v-if="!hideModalWidth"
116
+ :label="getI18nText('1.2.1.12.25', '宽度')"
117
+ :label-col="{ span: 4 }"
118
+ :wrapper-col="{ span: 14 }"
119
+ >
120
+ <a-select
121
+ dropdownClassName="dragForm-select-drop"
122
+ v-decorator="['selectWidth', { initialValue: modalFormData.elem_width }]"
123
+ >
124
+ <a-select-option value="12">{{ getI18nText("1.2.5.27", "整行") }}</a-select-option>
125
+ <a-select-option value="6">{{ getI18nText("1.2.5.28", "半行") }}</a-select-option>
126
+ <a-select-option value="10">5/6</a-select-option>
127
+ <a-select-option value="8">2/3</a-select-option>
128
+ <a-select-option value="4">1/3</a-select-option>
129
+ <a-select-option value="9">3/4</a-select-option>
130
+ <a-select-option value="3">1/4</a-select-option>
131
+ </a-select>
132
+ </a-form-item>
133
+
134
+ <!-- 高度 -->
135
+ <a-form-item
136
+ v-if="isPageLayout && !hideModalWidth"
137
+ :label="getI18nText('1.9.513', '高度(行)')"
138
+ :label-col="{ span: 4 }"
139
+ :wrapper-col="{ span: 14 }"
140
+ >
141
+ <a-input
142
+ :placeholder="getI18nText('1.9.513', '高度(行)')"
143
+ v-decorator="[
144
+ 'line_height',
145
+ {
146
+ initialValue: modalFormData.line_height
147
+ }
148
+ ]"
149
+ />
150
+ </a-form-item>
151
+ <template v-if="!is_text">
152
+ <!-- 说明文本 -->
153
+ <a-form-item
154
+ v-if="!isPageLayout"
155
+ :label="getI18nText('1.9.242', '说明文本')"
156
+ :label-col="{ span: 4 }"
157
+ :wrapper-col="{ span: 14 }"
158
+ >
159
+ <a-input
160
+ :placeholder="getI18nText('1.9.242', '说明文本')"
161
+ v-decorator="[
162
+ 'placeholder',
163
+ {
164
+ initialValue: modalFormData.placeholder
165
+ }
166
+ ]"
167
+ />
168
+ </a-form-item>
169
+
170
+ <a-form-item
171
+ v-if="modalFormData.html_type != 'PAGE_LAYOUT'"
172
+ :label="'问号提示'"
173
+ :label-col="{ span: 4 }"
174
+ :wrapper-col="{ span: 14 }"
175
+ >
176
+ <a-input
177
+ :maxLength="200"
178
+ :placeholder="'请输入问号提示'"
179
+ v-decorator="[
180
+ 'remark',
181
+ {
182
+ initialValue: modalFormData.remark
183
+ }
184
+ ]"
185
+ />
186
+ </a-form-item>
187
+ </template>
188
+
189
+ <template
190
+ v-if="
191
+ modalFormData.is_fast_reply_field != 1 &&
192
+ (modalFormData.html_type == 'TEXTAREA' || modalFormData.html_type == 'INPUT')
193
+ "
194
+ >
195
+ <!-- 快速输入 -->
196
+ <a-form-item
197
+ :label="getI18nText('1.9.5', '快速输入')"
198
+ :label-col="{ span: 4 }"
199
+ :wrapper-col="{ span: 14 }"
200
+ >
201
+ <a-checkbox :checked="modalFormData.is_fast_reply" @change="checkOnChange"></a-checkbox>
202
+ </a-form-item>
203
+ <!-- 回复分类 -->
204
+ <a-form-item
205
+ v-if="modalFormData.is_fast_reply"
206
+ :label="'短语分类'"
207
+ :label-col="{ span: 4 }"
208
+ :wrapper-col="{ span: 14 }"
209
+ >
210
+ <a-select
211
+ mode="multiple"
212
+ showSearch
213
+ v-decorator="[
214
+ 'reply_category',
215
+ {
216
+ rules: [
217
+ {
218
+ required: modalFormData.is_fast_reply,
219
+ message: getI18nText('1.9.40', '请输入')
220
+ }
221
+ ],
222
+ initialValue: modalFormData.reply_category
223
+ }
224
+ ]"
225
+ :filterOption="$utils.filterOption"
226
+ :placeholder="getI18nText('1.1.3.1.14', '分类名称')"
227
+ @change="changeCategofy"
228
+ dropdownClassName="dragForm-select-drop"
229
+ >
230
+ <!-- 分类名称 -->
231
+ <a-select-option v-for="(v, i) in publicReply" :key="v.id + i" :value="v">{{
232
+ v
233
+ }}</a-select-option>
234
+ </a-select>
235
+ </a-form-item>
236
+ <!-- v-show="modalFormData.is_edit" -->
237
+ <!-- 部分隐藏 -->
238
+ <a-form-item
239
+ v-show="modalFormData.is_edit == 0"
240
+ :label="getI18nText('1.1.8.2.10', '部分隐藏')"
241
+ :label-col="{ span: 4 }"
242
+ :wrapper-col="{ span: 14 }"
243
+ >
244
+ <a-input-number
245
+ :placeholder="getI18nText('1.9.40', '请输入')"
246
+ v-decorator="[
247
+ 'hideExpression',
248
+ {
249
+ rules: [{ type: 'number', message: getI18nText('1.9.40', '请输入') }],
250
+ initialValue: modalFormData.hideExpression
251
+ }
252
+ ]"
253
+ />
254
+ </a-form-item>
255
+ </template>
256
+
257
+ <!-- 动态文本值 -->
258
+ <a-form-item v-if="is_text" :label="'文本内容(支持FreeMarker)'">
259
+ <a-textarea
260
+ :placeholder="'请输入动态文本内容'"
261
+ v-decorator="[
262
+ 'default_val',
263
+ {
264
+ initialValue: modalFormData.default_val
265
+ }
266
+ ]"
267
+ />
268
+ </a-form-item>
269
+ </a-form>
270
+ </a-modal>
271
+
272
+ <a-modal :title="lineAddTitle" :zIndex="2001" v-model="visibleLineAdd">
273
+ <template slot="footer">
274
+ <a-button key="back" @click="handleCancel">
275
+ {{ getI18nText("1.1.1.1.4", "取消") }}
276
+ </a-button>
277
+ <a-button key="submit" type="primary" @click="handleOkLineAdd">
278
+ {{ getI18nText("1.1.1.1.5", "确认") }}
279
+ </a-button>
280
+ </template>
281
+ <div>
282
+ <label class="new-name">{{ getI18nText("1.1.3.1.1", "名称") }}</label>
283
+ <a-input class="view-model-input new-name-input" v-model="itemTitleNameAdd" />
284
+ </div>
285
+ <div v-show="lineType != 'LINE_BREAKS'">
286
+ <input
287
+ class="name-new-change"
288
+ @change="onChangeAdd($event, 'is_show')"
289
+ type="checkbox"
290
+ v-model="isAddChecked"
291
+ />
292
+ {{ getI18nText("1.9.69", "默认展开") }}
293
+ <br />
294
+ <input
295
+ class="name-new-change"
296
+ @change="onChangeAdd($event, 'is_not_fold')"
297
+ type="checkbox"
298
+ v-model="is_not_foldChecked"
299
+ />
300
+ 不可折叠
301
+ <!-- {{ $t("1.9.69") }} -->
302
+ </div>
303
+ </a-modal>
304
+ </div>
305
+ </template>
306
+
307
+ <script>
308
+ import create from "@/core/create";
309
+ import { Button, Col, Modal, Input, Form, Select, Checkbox, InputNumber } from "ant-design-vue";
310
+ import draggable from "vuedraggable";
311
+ import DragFormLeftItem from "./DragFormLeftItem.vue";
312
+ import DragFormRightItem from "./DragFormRightItem.vue";
313
+ import I18nm from "./I18n-mixins";
314
+ export default create({
315
+ name: 'drag-layout',
316
+ components: {
317
+ [Button.name]: Button,
318
+ [Select.name]: Select,
319
+ [Select.Option.name]: Select.Option,
320
+ [Input.name]: Input,
321
+ [InputNumber.name]: InputNumber,
322
+ [Input.TextArea.name]: Input.TextArea,
323
+ [Checkbox.name]: Checkbox,
324
+ [Col.name]: Col,
325
+ AModal: Modal,
326
+ [Form.name]: Form,
327
+ [Form.Item.name]: Form.Item,
328
+ draggable,
329
+ DragFormLeftItem,
330
+ DragFormRightItem
331
+ },
332
+ mixins: [I18nm],
333
+ data() {
334
+ return {
335
+ modalVisible: false,
336
+ visibleLineAdd: false,
337
+
338
+ modalFormData: {
339
+ name: "", // 名称
340
+ alias: "",
341
+ fieldAlias: "", // 别名
342
+ elem_width: "12", // 宽度
343
+ reply_category: [], // 快速回复分类
344
+ is_fast_reply: false, // 快速输入
345
+ html_type: "", // 类型
346
+ is_edit: 1, // 是否可编辑
347
+ hideExpression: "", // 部分隐藏
348
+ remark: "", // 字段说明
349
+ default_val: "", // 默认值
350
+ placeholder: "", // 字段提示语
351
+ publicReply: [], // 分类数据
352
+ is_fast_reply_field: 0 // 快速回复开启
353
+ },
354
+ publicReply: [],
355
+
356
+ itemTitleNameAdd: "",
357
+ is_show: 0,
358
+ is_not_fold: 0,
359
+ isAddChecked: false,
360
+ is_not_foldChecked: false,
361
+
362
+ handleLIne: "add",
363
+ lineType: "LINEBAR",
364
+
365
+ showFields: [],
366
+ hideFields: [],
367
+ curIndex: undefined,
368
+ editModalType: "edit",
369
+
370
+ lineAddTitle: this.getI18nText("1.9.50", "新建分线栏")
371
+ };
372
+ },
373
+ props: {
374
+ leftList: {
375
+ type: Array,
376
+ default: () => []
377
+ },
378
+ rightList: {
379
+ type: Array,
380
+ default: () => []
381
+ },
382
+
383
+ getpublicReplyList: {
384
+ type: Function,
385
+ default: () => Promise.resolve([])
386
+ }
387
+ },
388
+ computed: {
389
+ isPageLayout() {
390
+ return (
391
+ this.modalFormData.html_type === "PAGE_LAYOUT" ||
392
+ this.modalFormData.html_type === "COMBINATION"
393
+ );
394
+ },
395
+ is_text() {
396
+ return "TEXT" == this.modalFormData.html_type;
397
+ },
398
+ hideModalWidth() {
399
+ return this.modalFormData.html_type === "COMBINATION";
400
+ },
401
+ lineTypeList() {
402
+ return ["LINEBAR", "LINE_BREAKS"];
403
+ }
404
+ },
405
+ watch: {
406
+ showFields: {
407
+ deep: true,
408
+ handler(val) {
409
+ this.updateConfig();
410
+ }
411
+ },
412
+ hideFields: {
413
+ deep: true,
414
+ handler(val) {
415
+ this.updateConfig();
416
+ }
417
+ }
418
+ },
419
+ beforeCreate() {
420
+ this.form = this.$form.createForm(this);
421
+ },
422
+ created() {},
423
+ mounted() {
424
+ this.mountedInit();
425
+ this.$nextTick().then(() => {
426
+ this.$el.querySelector('.text-area').style.height = this.$el.clientHeight + 'px';
427
+ });
428
+ },
429
+ methods: {
430
+ mountedInit() {
431
+ const { rightList, leftList } = this;
432
+ let checkList = v => Array.isArray(v) && v.length > 0;
433
+ if (checkList(rightList) || checkList(leftList)) {
434
+ this.handleSetData({ rightList, leftList });
435
+ }
436
+ },
437
+
438
+ // 设置数据
439
+ handleSetData(config = {}) {
440
+ if (Array.isArray(config.rightList)) {
441
+ this.$set(this, "showFields", config.rightList);
442
+ }
443
+
444
+ if (Array.isArray(config.leftList)) {
445
+ this.$set(this, "hideFields", config.leftList);
446
+ }
447
+ },
448
+ handleEdit(data, i, type = "edit") {
449
+ this.currentIndex = i;
450
+ this.editModalType = type;
451
+ if (this.isLineType(data.html_type)) {
452
+ this.handleLIne = "edit";
453
+ this.visibleLineAdd = true;
454
+ this.itemTitleNameAdd = data.fieldAlias || data.name || "分行符";
455
+ this.is_show = data.is_show;
456
+ this.is_not_fold = data.is_not_fold;
457
+ this.isAddChecked = data.is_show == 1;
458
+ this.is_not_foldChecked = data.is_not_fold == 1;
459
+ return;
460
+ }
461
+ const keyList = [
462
+ "fieldAlias",
463
+ "elem_width",
464
+ "reply_category",
465
+ "html_type",
466
+ "is_edit",
467
+ "remark",
468
+ "default_val",
469
+ "line_height",
470
+ "is_fast_reply_field",
471
+ "placeholder"
472
+ ];
473
+ keyList.forEach(v => {
474
+ if (v === "reply_category") {
475
+ if (data[v] && this.$utils.isJSON(data[v])) {
476
+ this.modalFormData[v] = JSON.parse(data[v]) || [];
477
+ } else {
478
+ this.modalFormData[v] = (data[v] && [data[v]]) || [];
479
+ }
480
+ } else {
481
+ this.modalFormData[v] = data[v] || undefined;
482
+ }
483
+ });
484
+ if (!this.publicReply?.length && data["is_fast_reply_field"] != 1) {
485
+ this.handleReqQieckReplyData();
486
+ }
487
+
488
+ // 其他处理
489
+ this.modalFormData.is_fast_reply = data.is_fast_reply == 1;
490
+ this.modalFormData.hideExpression = 0;
491
+
492
+ this.modalVisible = true;
493
+ },
494
+ // 快速回复
495
+ async handleReqQieckReplyData() {
496
+ // this.axios
497
+ // .get("/fastReply/getList/all")
498
+ // .then(({ data }) => {
499
+ // if (data.result === "SUCCESS") {
500
+ // this.publicReply = data.map?.organizationReply || [];
501
+ // } else {
502
+ // this.publicReply = [];
503
+ // }
504
+ // })
505
+ // .catch(err => {
506
+ // this.publicReply = [];
507
+ // console.log(err);
508
+ // });
509
+ try {
510
+ let res = await this.getpublicReplyList();
511
+ this.publicReply = Array.isArray(res) ? res : [];
512
+ } catch (error) {
513
+ console.log(error);
514
+ }
515
+ },
516
+ changeCategofy(value) {
517
+ console.log(value);
518
+ },
519
+
520
+ handleOk(e) {
521
+ e.preventDefault();
522
+ this.form.validateFields((err, values) => {
523
+ if (err) return;
524
+ if (this.editModalType == "edit") {
525
+ this.showFields[this.currentIndex].fieldAlias = values.selectAlias;
526
+ this.showFields[this.currentIndex].elem_width = values.selectWidth;
527
+ this.showFields[this.currentIndex].is_fast_reply = this.modalFormData.is_fast_reply
528
+ ? 1
529
+ : 0;
530
+ // 直接赋值,不需要转换的属性
531
+ let keys = [
532
+ "reply_category",
533
+ "remark",
534
+ "hideExpression",
535
+ "default_val",
536
+ "line_height",
537
+ "placeholder"
538
+ ];
539
+ keys.forEach(k => {
540
+ this.showFields[this.currentIndex][k] = values[k];
541
+ });
542
+ } else {
543
+ this.showFields[this.currentIndex].reply_category = values.reply_category;
544
+ }
545
+
546
+ this.modalVisible = false;
547
+ });
548
+ },
549
+ handleDelete(data, i) {
550
+ let deleItem = this.showFields.splice(i, 1);
551
+ // 没有 val_key 的分线栏是中台创建的可以删除,后台创建的移到备选字段
552
+ if (this.isLineType(data.html_type) && !data.val_key) {
553
+ return;
554
+ }
555
+ this.hideFields.push(...deleItem);
556
+ },
557
+ getParams() {
558
+ return {
559
+ showFields: this.showFields,
560
+ hideFields: this.hideFields
561
+ };
562
+ },
563
+
564
+ addItemShowLine() {
565
+ this.visibleLineAdd = true;
566
+ this.itemTitleNameAdd = "";
567
+ this.is_show = 1;
568
+ this.is_not_fold = 0;
569
+ this.isAddChecked = true;
570
+ this.is_not_foldChecked = false;
571
+ if (this.lineType === "LINEBAR") {
572
+ this.lineAddTitle = this.getI18nText("1.9.50", "新建分线栏");
573
+ } else if (this.lineType === "LINE_BREAKS") {
574
+ this.lineAddTitle = "新建分行符";
575
+ }
576
+ },
577
+ handlerAddLine() {
578
+ this.handleLIne = "add";
579
+ this.lineType = "LINEBAR";
580
+ this.addItemShowLine();
581
+ },
582
+ // 新增分行符
583
+ handlerAddBranchLine() {
584
+ this.handleLIne = "add";
585
+ this.lineType = "LINE_BREAKS";
586
+ this.addItemShowLine();
587
+ this.is_show = 1;
588
+ },
589
+ onChangeAdd(e, key) {
590
+ if (e.target.checked == true) {
591
+ this[key] = 1;
592
+ } else {
593
+ this[key] = 0;
594
+ }
595
+ },
596
+ handleCancel() {
597
+ this.visibleLine = false;
598
+ this.visibleLineAdd = false;
599
+ },
600
+ handleOkLineAdd() {
601
+ let isL = this.lineType === "LINEBAR";
602
+ let lineDefaultName = isL ? "分线栏" : "分行符";
603
+
604
+ if (this.handleLIne === "edit") {
605
+ let curItem = this.showFields[this.currentIndex];
606
+ this.lineType = curItem.html_type;
607
+ curItem.is_show = this.is_show;
608
+ if (isL) {
609
+ curItem.is_not_fold = this.is_not_fold;
610
+ }
611
+ // curItem.fieldAlias = this.itemTitleNameAdd;
612
+ this.$set(curItem, "fieldAlias", this.itemTitleNameAdd || lineDefaultName);
613
+ } else {
614
+ // 新建 name
615
+ this.showFields.push({
616
+ html_type: this.lineType || "LINEBAR",
617
+ is_show: this.is_show,
618
+ is_not_fold: isL ? this.is_not_fold : undefined,
619
+ name: this.itemTitleNameAdd || lineDefaultName
620
+ });
621
+ }
622
+ this.handleCancel();
623
+ },
624
+ leftDragAdd(e) {
625
+ let { newIndex, oldIndex } = e;
626
+ if (oldIndex > -1 && oldIndex > -1) {
627
+ let curItem = this.hideFields[newIndex];
628
+ if (curItem.is_system_fields == 0) {
629
+ this.hideFields.splice(newIndex, 1);
630
+ this.showFields.splice(oldIndex, 0, curItem);
631
+ }
632
+ }
633
+ },
634
+ handleDragRemove(e) {
635
+ let { draggedContext = {}, to } = e;
636
+ let movedItem = draggedContext.element || {};
637
+ let className = to.className || "";
638
+
639
+ if (movedItem.is_drag && movedItem.is_drag == 0 && className.includes("text-draggable")) {
640
+ return false;
641
+ }
642
+ },
643
+ checkOnChange(e) {
644
+ this.modalFormData.is_fast_reply = e.target.checked;
645
+ },
646
+
647
+ /** line 类型 */
648
+ isLineType(t) {
649
+ return this.lineTypeList.includes(t);
650
+ },
651
+
652
+ visibleChange(e) {
653
+ // console.log("e", e);
654
+ },
655
+
656
+ /**
657
+ * 更新配置
658
+ */
659
+ updateConfig() {
660
+ clearTimeout(this.updateTime);
661
+ this.updateTime = setTimeout(() => {
662
+ this.$emit("updateConfig", {
663
+ leftList: this.hideFields,
664
+ rightList: this.showFields
665
+ });
666
+ }, 100);
667
+ }
668
+ }
669
+ });
670
+ </script>
671
+ <style lang="less" scoped>
672
+ .drag-layout-container {
673
+ width: 100%;
674
+ height: 100%;
675
+ flex: 1;
676
+ overflow: hidden;
677
+ overflow-y: auto;
678
+ position: relative;
679
+ display: flex;
680
+ justify-content: flex-start;
681
+ border: 1px solid #d2d9e8;
682
+ text-align: left;
683
+ .min-height {
684
+ height: calc(100% - 60px);
685
+ overflow: hidden;
686
+ overflow-y: auto;
687
+ li {
688
+ list-style: none;
689
+ }
690
+ }
691
+
692
+ .border-box {
693
+ position: absolute;
694
+ top: 0;
695
+ left: 30%;
696
+ border-left: 1px solid #d2d9e8;
697
+ height: 100%;
698
+ }
699
+
700
+ // 左边
701
+ .text-area {
702
+ width: 30%;
703
+ height: 100%;
704
+ overflow-y: auto;
705
+ padding: 0 !important;
706
+
707
+ // 头部
708
+ .info-header {
709
+ display: flex;
710
+ height: 50px;
711
+ line-height: 50px;
712
+ padding: 0 10px;
713
+ margin-bottom: 10px;
714
+ color: #2e2e2e;
715
+ font-size: 18px;
716
+ font-weight: bold;
717
+ background: #e6eaef;
718
+ }
719
+
720
+ // 拖拽容器
721
+ .text-draggable {
722
+ display: flex;
723
+ flex-wrap: wrap;
724
+ justify-content: space-between;
725
+ align-items: flex-start;
726
+ padding: 0 12px 12px;
727
+ box-sizing: border-box;
728
+ align-content: flex-start;
729
+ li {
730
+ width: 49%;
731
+ text-align: center;
732
+ }
733
+ }
734
+ }
735
+
736
+ // 右边
737
+ .form-area {
738
+ position: relative;
739
+ width: 70%;
740
+ height: 100%;
741
+ overflow-y: auto;
742
+ padding: 4px;
743
+ box-sizing: border-box;
744
+ &::-webkit-scrollbar {
745
+ width: 5px;
746
+ }
747
+ // .add-divider {
748
+ // position: absolute;
749
+ // right: 8px;
750
+ // top: 8px;
751
+ // }
752
+ .info-header {
753
+ height: 50px;
754
+ margin-bottom: 10px;
755
+ background: unset;
756
+
757
+ display: flex;
758
+ justify-content: flex-end;
759
+ align-items: center;
760
+ }
761
+ /deep/ .combination-col {
762
+ // padding: 0px 8px 8px;
763
+ border: 1px solid #cdc5d3;
764
+ margin-bottom: 10px;
765
+ }
766
+
767
+ .draggable-content {
768
+ /deep/ .ant-col {
769
+ transform: none !important;
770
+ }
771
+ }
772
+ }
773
+ }
774
+
775
+ .dragForm-select-drop {
776
+ z-index: 2001;
777
+ }
778
+ </style>