cloud-web-corejs 1.0.54-dev.24 → 1.0.54-dev.241

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 (285) hide show
  1. package/package.json +6 -3
  2. package/src/components/Qrcode/fileParse.vue +0 -1
  3. package/src/components/VabUpload/index.vue +2 -1
  4. package/src/components/VabUpload/mixins.js +1 -1
  5. package/src/components/VabUpload/view.vue +22 -6
  6. package/src/components/advancedSearchDialog/mixins.js +1 -1
  7. package/src/components/baseAttachment/index.vue +22 -13
  8. package/src/components/baseAttachment/mixins.js +1 -1
  9. package/src/components/excelExport/exportFieldDialog.vue +16 -6
  10. package/src/components/excelExport/index.js +2 -1
  11. package/src/components/excelExport/index.vue +8 -6
  12. package/src/components/excelExport/mixins.js +3 -2
  13. package/src/components/fileLibrary/fileObjAuthDialog.vue +1 -1
  14. package/src/components/fileLibrary/fileObjAuthEditDialog.vue +7 -1
  15. package/src/components/fileLibrary/fileObjNotifyEdit.vue +90 -68
  16. package/src/components/fileLibrary/filterDialog.vue +383 -0
  17. package/src/components/fileLibrary/index.vue +23 -24
  18. package/src/components/fileLibrary/mixins/categoryMoveDialogMixins.js +1 -1
  19. package/src/components/fileLibrary/mixins/fileCategoryDialogMixins.js +1 -1
  20. package/src/components/fileLibrary/mixins/fileHistoryDialogMixins.js +2 -2
  21. package/src/components/fileLibrary/mixins/fileObjAuthDialogMixin.js +337 -207
  22. package/src/components/fileLibrary/mixins/fileObjAuthEditDialogMixin.js +33 -26
  23. package/src/components/fileLibrary/mixins/fileObjAuthEditMixin.js +5 -5
  24. package/src/components/fileLibrary/mixins/indexMixins.js +77 -27
  25. package/src/components/fileLibrary/mixins/propertiesDialogMixins.js +63 -3
  26. package/src/components/fileLibrary/mixins/recycleBinDialogMixins.js +1 -1
  27. package/src/components/fileLibrary/propertiesDialog.vue +18 -0
  28. package/src/components/fileLibrary/shareDialog.vue +1 -1
  29. package/src/components/formOplog/mixins.js +77 -1
  30. package/src/components/jsonImport/index.js +1 -1
  31. package/src/components/jsonImport/mixins.js +1 -1
  32. package/src/components/onlineTalk/index.vue +277 -121
  33. package/src/components/onlineTalk/mixins.js +1 -1
  34. package/src/components/statusTag/mixins.js +66 -1
  35. package/src/components/table/CellSlot.vue +1 -0
  36. package/src/components/table/index.js +12 -10
  37. package/src/components/table/tableForm.vue +99 -63
  38. package/src/components/table/tableFormMixin.js +1 -1
  39. package/src/components/table/util/index.js +328 -0
  40. package/src/components/table/vxeFilter/mixin.js +1 -1
  41. package/src/components/vb-tabs/x-tabs.vue +3 -2
  42. package/src/components/wf/content.vue +2 -0
  43. package/src/components/wf/setCandidateDialog.vue +1 -0
  44. package/src/components/wf/wf.js +1774 -1
  45. package/src/components/wf/wfStartDialog.vue +1 -1
  46. package/src/components/wf/wfUtil.js +1 -1
  47. package/src/components/xform/form-designer/designer.js +1 -1
  48. package/src/components/xform/form-designer/form-widget/container-widget/data-table-mixin.js +2 -1
  49. package/src/components/xform/form-designer/form-widget/dialog/exportDialog.vue +13 -0
  50. package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +16 -4
  51. package/src/components/xform/form-designer/form-widget/dialog/formDrawer.vue +5 -1
  52. package/src/components/xform/form-designer/form-widget/dialog/importDialog.vue +37 -6
  53. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin.js +3 -1
  54. package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +26 -7
  55. package/src/components/xform/form-designer/form-widget/field-widget/baseAttachment-widget.vue +34 -5
  56. package/src/components/xform/form-designer/form-widget/field-widget/button-widget.vue +1 -1
  57. package/src/components/xform/form-designer/form-widget/field-widget/checkbox-widget.vue +14 -6
  58. package/src/components/xform/form-designer/form-widget/field-widget/date-range-widget.vue +1 -0
  59. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-item-widget.vue +77 -0
  60. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-menu-widget.vue +106 -0
  61. package/src/components/xform/form-designer/form-widget/field-widget/echart-bar-widget.vue +1 -1
  62. package/src/components/xform/form-designer/form-widget/field-widget/echart-category-widget.vue +1 -1
  63. package/src/components/xform/form-designer/form-widget/field-widget/echart-pie-widget.vue +1 -1
  64. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +1400 -16
  65. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +259 -6
  66. package/src/components/xform/form-designer/form-widget/field-widget/import-button-widget.vue +6 -8
  67. package/src/components/xform/form-designer/form-widget/field-widget/import2-button-widget.vue +81 -0
  68. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-bar-mixin.js +49 -8
  69. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-category-mixin.js +61 -88
  70. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-pie-mixin.js +13 -0
  71. package/src/components/xform/form-designer/form-widget/field-widget/mixins/vabsearch-mixin.js +176 -0
  72. package/src/components/xform/form-designer/form-widget/field-widget/multiSearch-widget.vue +53 -0
  73. package/src/components/xform/form-designer/form-widget/field-widget/number-widget.vue +1 -1
  74. package/src/components/xform/form-designer/form-widget/field-widget/project-tag-widget.vue +70 -3
  75. package/src/components/xform/form-designer/form-widget/field-widget/radio-widget.vue +21 -5
  76. package/src/components/xform/form-designer/form-widget/field-widget/search_button-widget.vue +1 -1
  77. package/src/components/xform/form-designer/form-widget/field-widget/select-widget.vue +17 -5
  78. package/src/components/xform/form-designer/form-widget/field-widget/singerSearch-widget.vue +53 -0
  79. package/src/components/xform/form-designer/form-widget/field-widget/status-widget.vue +6 -2
  80. package/src/components/xform/form-designer/form-widget/field-widget/table-export-button-widget.vue +6 -1
  81. package/src/components/xform/form-designer/form-widget/field-widget/text-widget.vue +46 -34
  82. package/src/components/xform/form-designer/form-widget/field-widget/time-range-widget.vue +2 -2
  83. package/src/components/xform/form-designer/form-widget/field-widget/vabSearch-widget.vue +2 -170
  84. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +88 -8
  85. package/src/components/xform/form-designer/indexMixin.js +811 -1
  86. package/src/components/xform/form-designer/setting-panel/form-setting.vue +834 -154
  87. package/src/components/xform/form-designer/setting-panel/index.vue +4 -0
  88. package/src/components/xform/form-designer/setting-panel/indexMixin.js +1 -1
  89. package/src/components/xform/form-designer/setting-panel/option-items-setting.vue +8 -3
  90. package/src/components/xform/form-designer/setting-panel/property-editor/a-link-editor.vue +1 -1
  91. package/src/components/xform/form-designer/setting-panel/property-editor/autoValueEnabled-editor.vue +38 -0
  92. package/src/components/xform/form-designer/setting-panel/property-editor/censusClass-editor.vue +6 -0
  93. package/src/components/xform/form-designer/setting-panel/property-editor/commonAttributeEnabled-editor.vue +41 -0
  94. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/columnRenderDialog.vue +126 -0
  95. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +1077 -1042
  96. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/onCheckboxChange-editor.vue +1 -1
  97. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +1043 -496
  98. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-editor.vue +2 -2
  99. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail-pane/detail-pane-editor.vue +3 -3
  100. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-offset-editor.vue +1 -1
  101. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-pull-editor.vue +1 -1
  102. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-push-editor.vue +1 -1
  103. package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +0 -8
  104. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/eventMixin.js +2 -2
  105. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onAfterConfirmFile-editor.vue +32 -0
  106. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onClick-editor.vue +2 -2
  107. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/search-dialog-event-editor.vue +48 -5
  108. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-defaultTime-editor.vue +27 -0
  109. package/src/components/xform/form-designer/setting-panel/property-editor/field-dropdown-menu/dropdown-item-editor.vue +21 -0
  110. package/src/components/xform/form-designer/setting-panel/property-editor/field-dropdown-menu/dropdown-menu-editor.vue +59 -0
  111. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-bar-editor.vue +185 -69
  112. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-category-editor.vue +188 -86
  113. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-pie-editor.vue +84 -39
  114. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import-button-editor.vue +26 -10
  115. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +86 -0
  116. package/src/components/xform/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue +1 -1
  117. package/src/components/xform/form-designer/setting-panel/property-editor/field-status/field-status-editor.vue +47 -28
  118. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/table-export-button-editor.vue +26 -7
  119. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabSearch/vabSearchName-editor.vue +13 -1
  120. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload/field-vabUpload-editor.vue +30 -1
  121. package/src/components/xform/form-designer/setting-panel/property-editor/formScriptEnabled-editor.vue +46 -4
  122. package/src/components/xform/form-designer/setting-panel/property-editor/formula-editor.vue +721 -466
  123. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconClass-editor.vue +1 -1
  124. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconPosition-editor.vue +1 -1
  125. package/src/components/xform/form-designer/setting-panel/property-editor/labelTooltip-editor.vue +1 -1
  126. package/src/components/xform/form-designer/setting-panel/property-editor/limit-editor.vue +1 -1
  127. package/src/components/xform/form-designer/setting-panel/property-editor/multiple-editor.vue +19 -14
  128. package/src/components/xform/form-designer/setting-panel/property-editor/multipleLimit-editor.vue +1 -1
  129. package/src/components/xform/form-designer/setting-panel/property-editor/placeholder-editor.vue +1 -1
  130. package/src/components/xform/form-designer/setting-panel/property-editor/precision-editor.vue +1 -1
  131. package/src/components/xform/form-designer/setting-panel/property-editor/project-tag-editor.vue +318 -0
  132. package/src/components/xform/form-designer/setting-panel/property-editor/required-editor.vue +22 -18
  133. package/src/components/xform/form-designer/setting-panel/property-editor/showRuleFlag-editor.vue +1 -1
  134. package/src/components/xform/form-designer/setting-panel/property-editor/textFlag-editor.vue +301 -19
  135. package/src/components/xform/form-designer/setting-panel/property-editor/wfFlag-editor.vue +384 -53
  136. package/src/components/xform/form-designer/setting-panel/property-editor/widgetShowRuleFlag-editor.vue +265 -0
  137. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +17 -6
  138. package/src/components/xform/form-designer/toolbar-panel/index.vue +12 -11
  139. package/src/components/xform/form-designer/toolbar-panel/indexMixin.js +1 -1
  140. package/src/components/xform/form-designer/widget-panel/index.vue +21 -1
  141. package/src/components/xform/form-designer/widget-panel/indexMixin.js +3 -2
  142. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +755 -362
  143. package/src/components/xform/form-render/container-item/containerItemMixin.js +1 -1
  144. package/src/components/xform/form-render/container-item/data-table-item.vue +45 -15
  145. package/src/components/xform/form-render/container-item/data-table-mixin.js +21 -18
  146. package/src/components/xform/form-render/container-item/data-table-mixin2.js +2169 -0
  147. package/src/components/xform/form-render/container-item/detail-pane-item.vue +17 -3
  148. package/src/components/xform/form-render/container-item/grid-col-item.vue +10 -3
  149. package/src/components/xform/form-render/container-item/grid-item.vue +1 -1
  150. package/src/components/xform/form-render/container-item/list-h5-item.vue +1 -9
  151. package/src/components/xform/form-render/container-item/list-h5-item2.vue +1 -8
  152. package/src/components/xform/form-render/container-item/tab-item.vue +11 -6
  153. package/src/components/xform/form-render/container-item/table-cell-item.vue +38 -32
  154. package/src/components/xform/form-render/container-item/table-item.vue +4 -2
  155. package/src/components/xform/form-render/indexMixin.js +2387 -3
  156. package/src/components/xform/lang/zh-CN.js +14 -3
  157. package/src/components/xform/mixins/defaultHandle.js +1 -1
  158. package/src/components/xform/mixins/scriptHttp.js +174 -1
  159. package/src/components/xform/utils/emitter.js +4 -4
  160. package/src/components/xform/utils/format.js +21 -30
  161. package/src/components/xform/utils/formula-util.js +669 -0
  162. package/src/components/xform/utils/util.js +1 -1
  163. package/src/index.js +1 -1
  164. package/src/layout/components/AppMain.vue +5 -1
  165. package/src/layout/components/Sidebar/default.vue +50 -6
  166. package/src/layout/components/TagsView/index.vue +22 -8
  167. package/src/layout/components/extractedCode/createDialog.vue +92 -0
  168. package/src/layout/components/extractedCode/queryDialog.vue +96 -0
  169. package/src/layout/components/extractedCode/viewDialog.vue +192 -0
  170. package/src/layout/components/watermark/index.vue +83 -0
  171. package/src/layout/defaultLayout.vue +1 -1
  172. package/src/mixins/selectDialog/index.js +1 -1
  173. package/src/mixins/tableTree/index.js +1 -1
  174. package/src/router/modules/customer.js +15 -0
  175. package/src/store/config/index.js +667 -1
  176. package/src/store/modules/permission.js +1 -1
  177. package/src/store/modules/settings.js +1 -1
  178. package/src/store/modules/user.js +1 -1
  179. package/src/utils/index.js +4 -2
  180. package/src/utils/pddLog.js +103 -0
  181. package/src/utils/request.js +28 -357
  182. package/src/utils/vab.js +19 -27
  183. package/src/views/bd/setting/bd_attach_setting/edit.vue +5 -5
  184. package/src/views/bd/setting/bd_attach_setting/list.vue +28 -55
  185. package/src/views/bd/setting/bd_attach_setting/mixins/edit.js +4 -5
  186. package/src/views/bd/setting/bd_attach_setting/mixins/list.js +239 -1
  187. package/src/views/bd/setting/bd_company_env/dialog.vue +161 -0
  188. package/src/views/bd/setting/bd_company_env/edit.vue +151 -0
  189. package/src/views/bd/setting/bd_company_env/list.vue +164 -0
  190. package/src/views/bd/setting/config_manage/list.vue +49 -0
  191. package/src/views/bd/setting/form_import_log/edit.vue +127 -0
  192. package/src/views/bd/setting/form_import_log/list.vue +205 -0
  193. package/src/views/bd/setting/form_script/edit.vue +9 -0
  194. package/src/views/bd/setting/form_script/edit1.vue +36 -3
  195. package/src/views/bd/setting/form_script/form_list.vue +1 -1
  196. package/src/views/bd/setting/form_script/list1.vue +4 -4
  197. package/src/views/bd/setting/form_script/mixins/dialog.js +130 -1
  198. package/src/views/bd/setting/form_script/mixins/edit.js +201 -1
  199. package/src/views/bd/setting/form_script/mixins/edit1.js +193 -1
  200. package/src/views/bd/setting/form_script/mixins/form_list.js +1 -1
  201. package/src/views/bd/setting/form_script/mixins/list.js +236 -1
  202. package/src/views/bd/setting/form_script/mixins/list1.js +422 -14
  203. package/src/views/bd/setting/form_script/mixins/otherAuthDialog.js +194 -0
  204. package/src/views/bd/setting/form_script/otherAuthDialog.vue +83 -0
  205. package/src/views/bd/setting/form_template/batchWfObjConfigDialog.vue +105 -0
  206. package/src/views/bd/setting/form_template/edit.vue +22 -1
  207. package/src/views/bd/setting/form_template/editWfObjConfigDialog.vue +2 -2
  208. package/src/views/bd/setting/form_template/list.vue +5 -5
  209. package/src/views/bd/setting/form_template/mixins/batchWfObjConfigDialog.js +4 -0
  210. package/src/views/bd/setting/form_template/mixins/edit.js +201 -1
  211. package/src/views/bd/setting/form_template/mixins/list.js +688 -22
  212. package/src/views/bd/setting/form_template/mixins/otherAuthDialog.js +193 -0
  213. package/src/views/bd/setting/form_template/mixins/wf_list.js +12 -0
  214. package/src/views/bd/setting/form_template/otherAuthDialog.vue +83 -0
  215. package/src/views/bd/setting/form_template/wfObjConfigDialog.vue +254 -0
  216. package/src/views/bd/setting/form_template/wf_list.vue +127 -0
  217. package/src/views/bd/setting/menu_kind/list.vue +4 -0
  218. package/src/views/bd/setting/menu_kind/mixins/authDialog.js +1 -1
  219. package/src/views/bd/setting/menu_kind/mixins/list.js +201 -1
  220. package/src/views/bd/setting/table_model/edit.vue +862 -426
  221. package/src/views/bd/setting/table_model/list.vue +4 -4
  222. package/src/views/bd/setting/table_model/mixins/dialog.js +1 -1
  223. package/src/views/bd/setting/table_model/mixins/edit.js +1130 -13
  224. package/src/views/bd/setting/table_model/mixins/list.js +439 -14
  225. package/src/views/bd/setting/table_model/mixins/otherAuthDialog.js +201 -0
  226. package/src/views/bd/setting/table_model/otherAuthDialog.vue +83 -0
  227. package/src/views/user/area/dialog.vue +21 -9
  228. package/src/views/user/bill_setting/edit.vue +1 -1
  229. package/src/views/user/bill_setting/list.vue +1 -1
  230. package/src/views/user/common_attribute/itemEdit.vue +2 -2
  231. package/src/views/user/common_attribute/list.vue +1 -1
  232. package/src/views/user/common_script/edit.vue +1 -1
  233. package/src/views/user/common_script/list.vue +1 -1
  234. package/src/views/user/company_info/dialog.vue +164 -154
  235. package/src/views/user/company_info/edit.vue +1 -1
  236. package/src/views/user/extend_datasource/dialog.vue +1 -0
  237. package/src/views/user/extend_datasource/edit.vue +3 -0
  238. package/src/views/user/extend_datasource/list.vue +2 -1
  239. package/src/views/user/fieldTranslation/editDialog.vue +7 -7
  240. package/src/views/user/fieldTranslation/list.vue +32 -32
  241. package/src/views/user/file_type/edit.vue +30 -1
  242. package/src/views/user/file_type/list.vue +28 -0
  243. package/src/views/user/form/vform/designer.vue +775 -749
  244. package/src/views/user/form/vform/out_render.vue +1 -1
  245. package/src/views/user/form/vform/render.vue +3 -3
  246. package/src/views/user/form/view/list.vue +30 -12
  247. package/src/views/user/groups/edit.vue +2 -0
  248. package/src/views/user/groups/list.vue +1 -0
  249. package/src/views/user/home/default.vue +1022 -979
  250. package/src/views/user/home/dev.vue +29 -0
  251. package/src/views/user/home/index.vue +16 -6
  252. package/src/views/user/login/default.vue +36 -5
  253. package/src/views/user/login/indexMixin.js +117 -3
  254. package/src/views/user/notify_message/dialog.vue +1 -1
  255. package/src/views/user/notify_template/edit.vue +188 -187
  256. package/src/views/user/notify_template/edit2.vue +176 -0
  257. package/src/views/user/notify_template/list.vue +4 -1
  258. package/src/views/user/notify_template/list2.vue +190 -0
  259. package/src/views/user/outLink/form_view.vue +39 -12
  260. package/src/views/user/outLink/index.vue +17 -0
  261. package/src/views/user/outLink/view.vue +28 -23
  262. package/src/views/user/position/dialog.vue +1 -1
  263. package/src/views/user/position/list.vue +4 -4
  264. package/src/views/user/project_tag/edit.vue +2 -2
  265. package/src/views/user/project_tag/list.vue +9 -4
  266. package/src/views/user/push_setting/list.vue +2 -2
  267. package/src/views/user/request_setting/edit.vue +253 -0
  268. package/src/views/user/request_setting/list.vue +249 -0
  269. package/src/views/user/role/dialog.vue +1 -1
  270. package/src/views/user/role/list.vue +4 -4
  271. package/src/views/user/sale_org/dialog.vue +1 -1
  272. package/src/views/user/sale_org/list.vue +4 -1
  273. package/src/views/user/user/dialog.vue +2 -2
  274. package/src/views/user/user/edit.vue +39 -19
  275. package/src/views/user/user/form_dialog.vue +158 -0
  276. package/src/views/user/user/form_edit.vue +63 -2
  277. package/src/views/user/user/form_info.vue +210 -0
  278. package/src/views/user/user/form_list.vue +1 -0
  279. package/src/views/user/user/list.vue +4 -20
  280. package/src/views/user/wf/wf_manage/list.vue +1 -1
  281. package/src/views/user/wf/wf_manage/wfContentDialog.vue +1 -1
  282. package/src/views/user/wf/wf_obj_config/importItemDialog.vue +109 -0
  283. package/src/views/user/wf/wf_obj_config/itemEdit.vue +11 -1
  284. package/src/views/user/wf/wf_obj_config/list.vue +101 -10
  285. package/src/views/user/wf/wf_obj_config/wfBizDataSettingDialog.vue +2 -2
@@ -7,7 +7,7 @@
7
7
  {{ dataId ? $t1('查看用户') : $t1('新增用户') }}
8
8
  </div>
9
9
  <div class="fr">
10
- <!-- <temp-storage-button :option="tempStorageOption" v-if="!dataId"></temp-storage-button>-->
10
+ <temp-storage-button :option="tempStorageOption" v-if="!dataId"></temp-storage-button>
11
11
  <base-input-export :option="exportOption" :parent-target="_self" v-if="dataId"/>
12
12
  <el-button type="primary" plain class="button-sty" icon="el-icon-unlock" @click="unlock" v-if="user.locked"
13
13
  v-hasPermi="'user:unlock'">{{ $t1('解锁') }}
@@ -136,14 +136,14 @@
136
136
  <el-input size="small" v-model="user.email" maxlength="200" clearable/>
137
137
  </el-form-item>
138
138
  </td>
139
- <th v-if="flag!=='2'">
140
- GUID
141
- </th>
142
- <td v-if="flag!=='2'">
143
- <el-form-item prop="guid" :rules="[{ required: false, trigger: 'blur' }]">
144
- <el-input size="small" v-model="user.guid" maxlength="200" clearable/>
145
- </el-form-item>
146
- </td>
139
+ <!-- <th v-if="flag!=='2'">
140
+ GUID
141
+ </th>
142
+ <td v-if="flag!=='2'">
143
+ <el-form-item prop="guid" :rules="[{ required: false, trigger: 'blur' }]">
144
+ <el-input size="small" v-model="user.guid" maxlength="200" clearable/>
145
+ </el-form-item>
146
+ </td>-->
147
147
  <th>{{ $t1('地址') }}</th>
148
148
  <td colspan="3">
149
149
  <el-input size="small" v-model="user.address" class="b" maxlength="255" clearable/>
@@ -215,12 +215,19 @@
215
215
  </el-button>
216
216
  </div>
217
217
  <div class="title-form">
218
- <span v-if="flag==='2'">
218
+ <span>
219
219
  <el-form-item label="GUID" :prop="'userCompanyInfoDTOs.'+index1+'.guid'"
220
220
  :rules="[{ required: false, trigger: 'blur' }]">
221
221
  <el-input size="small" v-model="item.guid" maxlength="200" clearable/>
222
222
  </el-form-item>
223
223
  </span>
224
+ <span>
225
+ <el-form-item label="是否默认组织" :prop="'userCompanyInfoDTOs.'+index1+'.defaults'"
226
+ :rules="[{ required: false, trigger: 'blur' }]">
227
+ <el-checkbox v-model="item.defaults"
228
+ @change="changeCompanyDefault(item)"></el-checkbox>
229
+ </el-form-item>
230
+ </span>
224
231
  </div>
225
232
  <div class="m-2">
226
233
  <div class="d-item" style="width: 65%;">
@@ -297,7 +304,7 @@
297
304
 
298
305
  <script>
299
306
  import xeUtils from "xe-utils";
300
- /*import tempStorageButton from "@base/components/tempStorage/index.vue";*/
307
+ import tempStorageButton from "@base/components/tempStorage/index.vue";
301
308
 
302
309
 
303
310
  export default {
@@ -307,8 +314,8 @@ export default {
307
314
  companyDialog: () => import('../../../views/user/company_info/dialog.vue'),
308
315
  saleOrgDialog: () => import('../../../views/user/sale_org/dialog.vue'),
309
316
  positionDialog: () => import('../../../views/user/position/dialog.vue'),
310
- countryDialog: () => import('../../../views/user/country/dialog.vue')/*,
311
- tempStorageButton*/
317
+ countryDialog: () => import('../../../views/user/country/dialog.vue'),
318
+ tempStorageButton
312
319
  },
313
320
  props: ['_dataId', 'userType', 'flag'],
314
321
  data() {
@@ -590,12 +597,13 @@ export default {
590
597
  disabled={disabled}
591
598
  onchange={() => {
592
599
  this.gridSaleOrgDataMap[row.companyCode].forEach((item, index) => {
593
- if (index == rowIndex) {
594
- item.defaults = true;
595
- } else {
600
+ if (index !== rowIndex) {
596
601
  item.defaults = false;
597
602
  }
598
603
  });
604
+ this.$nextTick(()=>{
605
+ row.defaults = true;
606
+ })
599
607
  }}
600
608
  />
601
609
  ];
@@ -698,7 +706,7 @@ export default {
698
706
  if (rows.length > 0) {
699
707
  let outUserCodes = this.outUserCodes;
700
708
  if (this.userType === 1) {
701
- //企业用户
709
+ //组织用户
702
710
  rows = rows.filter(row => !outUserCodes.includes(row.code));
703
711
  } else if (this.userType === 2) {
704
712
  //外部用户
@@ -754,7 +762,7 @@ export default {
754
762
  });
755
763
  var items = [];
756
764
  rows.forEach(row => {
757
- const item = {companyCode: row.companyCode, companyName: row.companyName, guid: null};
765
+ const item = {companyCode: row.companyCode, companyName: row.companyName, guid: null, defaults: false};
758
766
  if (!map[item.companyCode]) {
759
767
  items.push(item);
760
768
  }
@@ -763,6 +771,9 @@ export default {
763
771
  });
764
772
  // $grid.insertAt(items, -1);
765
773
  this.user.userCompanyInfoDTOs.splice(0, 0, ...items);
774
+ if (this.user.userCompanyInfoDTOs.length == 1) {
775
+ this.user.userCompanyInfoDTOs[0].defaults = true
776
+ }
766
777
  // this.user.userCompanyInfoDTOs = this.user.userCompanyInfoDTOs.concat(items);
767
778
  }
768
779
  callback && callback();
@@ -973,7 +984,7 @@ export default {
973
984
  initRoleDialogParam() {
974
985
  //初始化角色弹框的查询参数
975
986
  if (this.userType == 1) {
976
- //企业用户
987
+ //组织用户
977
988
  this.roleDialogParam = {
978
989
  queryAll: true,
979
990
  neCodes: [...this.outUserCodes]
@@ -1015,6 +1026,15 @@ export default {
1015
1026
  this.user.countryName = row.countryName;
1016
1027
  this.user.countryCode = row.countryCode;
1017
1028
  }
1029
+ },
1030
+ changeCompanyDefault(item) {
1031
+ let companyCode = item.companyCode
1032
+ if (item.defaults) {
1033
+ this.user.userCompanyInfoDTOs.forEach(row => {
1034
+ row.defaults = row.companyCode == companyCode;
1035
+ })
1036
+ }
1037
+
1018
1038
  }
1019
1039
  }
1020
1040
  };
@@ -0,0 +1,158 @@
1
+ <template>
2
+ <el-dialog
3
+ :title="$t1('用户列表')"
4
+ :append-to-body="true"
5
+ :modal-append-to-body="true"
6
+ :close-on-click-modal="falseValue"
7
+ :visible.sync="showDialog"
8
+ :modal="falseValue"
9
+ custom-class="dialog-style list-dialog dialog-checkbox pd_0"
10
+ width="1200px"
11
+ @close="dialogClose"
12
+ v-el-drag-dialog
13
+ v-el-dialog-center
14
+ >
15
+ <div class="cont" style="height:65vh">
16
+ <vxe-grid
17
+ class="is-pointer"
18
+ ref="table-m1"
19
+ v-bind="vxeOption"
20
+ @resizable-change="$vxeTableUtil.onColumnWitchChange"
21
+ @custom="$vxeTableUtil.customHandle"
22
+ @checkbox-change="addDataTable"
23
+ @checkbox-all="checkAll"
24
+ @cell-dblclick="checkWithSubmit"
25
+ >
26
+ <template #form>
27
+ <div class="clearfix screen-btns">
28
+ <div class="fr">
29
+ <vxe-button icon="el-icon-brush" class="button-sty" @click="resetEvent" type="text" status="primary"
30
+ plain>{{ $t1('重置') }}
31
+ </vxe-button>
32
+ <vxe-button status="warning" icon="el-icon-search" class="button-sty" @click="searchEvent">
33
+ {{ $t1('搜索') }}
34
+ </vxe-button>
35
+ </div>
36
+ </div>
37
+ <vxe-form class="screen-box" title-width="92px" title-align="right" :data="formData" @submit="searchEvent"
38
+ @reset="resetEvent">
39
+ <vxe-form-item :title="$t1('登录名')+':'" field="loginAccount">
40
+ <template v-slot>
41
+ <el-input v-model="formData.loginAccount" size="small" clearable/>
42
+ </template>
43
+ </vxe-form-item>
44
+ <vxe-form-item :title="$t1('姓名')+':'" field="nickName">
45
+ <template v-slot>
46
+ <el-input v-model="formData.nickName" size="small" clearable/>
47
+ </template>
48
+ </vxe-form-item>
49
+ <vxe-button type="submit" @click="searchEvent" v-show="false"></vxe-button>
50
+ </vxe-form>
51
+ </template>
52
+ </vxe-grid>
53
+ </div>
54
+ <label id="labBtn" class="transverse">
55
+ <div class="icon">
56
+ <i class="el-icon-more"></i>
57
+ <i class="el-icon-more"></i>
58
+ </div>
59
+ </label>
60
+ <div class="multipleChoice">
61
+ <el-tooltip :enterable="false" effect="dark" :content="$t1('全部删除')" placement="top"><a
62
+ class="allDel icon-quanbushanchu" @click="clearChecked()"></a></el-tooltip>
63
+ <div class="list">
64
+ <div class="item" v-for="(checkRow, index) in checkRows" :key="index">
65
+ <p>{{ getCheckLabel(checkRow,'nickName') }}</p>
66
+ <a class="el-icon-close" @click="clearTable1Select(index)"></a>
67
+ </div>
68
+ </div>
69
+ </div>
70
+ <span slot="footer" class="dialog-footer">
71
+ <span class="fl tips" v-if="!selectMulti">{{ $t1('注:双击确认选择(单选)') }}</span>
72
+ <el-button type="primary" plain class="button-sty" @click="dialogClose">
73
+ <i class="el-icon-close el-icon"></i>
74
+ {{ $t1('取 消') }}
75
+ </el-button>
76
+ <el-button type="primary" @click="dialogPrimary" class="button-sty">
77
+ <i class="el-icon-check el-icon"></i>
78
+ {{ $t1('确 定') }}
79
+ </el-button>
80
+ </span>
81
+ </el-dialog>
82
+ </template>
83
+
84
+ <script>
85
+ import {selectDialogMixins} from '@base/mixins/selectDialog/index.js';
86
+
87
+ export default {
88
+ name: 'userDialog',
89
+ props: ['visiable', 'multi', 'rows', 'param'],
90
+ mixins: [selectDialogMixins],
91
+ created() {
92
+ this.initSetting();
93
+ if (this.param) {
94
+ if (this.param.userType !== null) {
95
+ this.userType = this.param.userType;
96
+ }
97
+ }
98
+ },
99
+ mounted() {
100
+ this.initTableM1();
101
+ },
102
+ data() {
103
+ var that = this;
104
+ return {
105
+ showDialog: true,
106
+ falseValue: false,
107
+ userType: 0,
108
+ formData: {
109
+ saleOrgId: '',
110
+ saleOrgName: ''
111
+ },
112
+ selectMulti: true,
113
+ vxeOption: {}
114
+ };
115
+ },
116
+ methods: {
117
+ initTableM1() {
118
+ var that = this;
119
+ let tableOption = {
120
+ vue: that,
121
+ tableRef: 'table-m1',
122
+ tableName: 'user_user_form_dialog-m1',
123
+ path: USER_PREFIX + '/user/listCurrentPage',
124
+ param: () => {
125
+ // this.formData.userType = this.userType;
126
+ return {
127
+ enabled: true,
128
+ ...this.formData,
129
+ ...this.param
130
+ }
131
+ },
132
+ config: {
133
+ checkboxConfig: {
134
+ checkStrictly: true,
135
+ showHeader: this.selectMulti,
136
+ trigger: 'row'
137
+ }
138
+ },
139
+ columns: [
140
+ {type: 'checkbox', width: 50, resizable: false, fixed: 'left'},
141
+ {title: this.$t1('登录名'), field: 'loginAccount', width: 250, fixed: 'left'},
142
+ {field: 'nickName', title: this.$t1('姓名'), width: 150},
143
+ {field: 'groupName', title: this.$t1('用户组'), width: 250},
144
+ {
145
+ width: 47,
146
+ fixed: 'right',
147
+ title: '',
148
+ sortable: false
149
+ }
150
+ ]
151
+ };
152
+ this.$vxeTableUtil.initVxeTable(tableOption).then(opts => {
153
+ that.vxeOption = opts;
154
+ });
155
+ }
156
+ }
157
+ };
158
+ </script>
@@ -137,6 +137,7 @@
137
137
  <script>
138
138
  import xeUtils from "xe-utils";
139
139
  import groudDialog from "@base/views/user/groups/dialog.vue";
140
+ import {getBdEnv} from "@base/api/user";
140
141
 
141
142
  export default {
142
143
  name: 'UserEdit',
@@ -229,8 +230,9 @@ export default {
229
230
  userInfo: {},
230
231
  userGroups: [],
231
232
  showGroupDialog: false,
232
- vxeOption:{},
233
- menuKindAuthDTOs:[]
233
+ vxeOption: {},
234
+ menuKindAuthDTOs: [],
235
+ isDev: true
234
236
  };
235
237
  },
236
238
  computed: {
@@ -247,6 +249,7 @@ export default {
247
249
  this.getUserGroups()
248
250
  this.getData();
249
251
  this.getConpanyInfo()
252
+ await this.initBdEnv();
250
253
  this.initTableM1();
251
254
  },
252
255
  methods: {
@@ -254,6 +257,7 @@ export default {
254
257
  if (this.dataId && !isNaN(this.dataId)) {
255
258
  this.isEdit = true;
256
259
  this.$commonHttp({
260
+ aes: true,
257
261
  url: USER_PREFIX + `/user/get`,
258
262
  method: `post`,
259
263
  data: {
@@ -297,6 +301,7 @@ export default {
297
301
  this.$baseConfirm(this.$t1('您确定要保存吗?')).then(() => {
298
302
  var url = USER_PREFIX + (this.isEdit ? '/user/update' : '/user/save');
299
303
  this.$http({
304
+ aes: true,
300
305
  url: url,
301
306
  method: `post`,
302
307
  data: this.user,
@@ -327,6 +332,7 @@ export default {
327
332
  getSaleOrgData() {
328
333
  if (this.dataId) {
329
334
  this.$http({
335
+ aes: true,
330
336
  url: USER_PREFIX + '/user/getUserSaleOrg',
331
337
  method: `post`,
332
338
  data: {id: this.dataId},
@@ -347,6 +353,7 @@ export default {
347
353
  getUserRoleData() {
348
354
  if (this.dataId) {
349
355
  this.$http({
356
+ aes: true,
350
357
  url: USER_PREFIX + '/user/getUserRole',
351
358
  method: `post`,
352
359
  data: {id: this.dataId},
@@ -370,6 +377,7 @@ export default {
370
377
  getCompanyInfoData(callback) {
371
378
  if (this.dataId) {
372
379
  this.$http({
380
+ aes: true,
373
381
  url: USER_PREFIX + '/user/getUserCompanyInfo',
374
382
  method: `post`,
375
383
  data: {id: this.dataId},
@@ -419,6 +427,7 @@ export default {
419
427
  },
420
428
  getConpanyInfo() {
421
429
  this.$http({
430
+ aes: true,
422
431
  url: USER_PREFIX + '/company_info/getCurrent',
423
432
  method: `post`,
424
433
  isLoading: true,
@@ -445,6 +454,7 @@ export default {
445
454
  this.$baseConfirm(this.$t1('您确定要解锁吗?')).then(() => {
446
455
  var url = USER_PREFIX + '/user/unlockLoginAccount';
447
456
  this.$http({
457
+ aes: true,
448
458
  url: url,
449
459
  method: `post`,
450
460
  data: {
@@ -473,6 +483,7 @@ export default {
473
483
  },
474
484
  getUserInfo() {
475
485
  return this.$http({
486
+ aes: true,
476
487
  url: USER_PREFIX + '/user/currentUser',
477
488
  method: 'post',
478
489
  success: res => {
@@ -486,6 +497,7 @@ export default {
486
497
  },
487
498
  getUserGroups() {
488
499
  return this.$http({
500
+ aes: true,
489
501
  url: USER_PREFIX + '/groups/listPage',
490
502
  method: 'post',
491
503
  data: {},
@@ -507,6 +519,48 @@ export default {
507
519
  width: 350,
508
520
  fixed: 'left'
509
521
  },
522
+ {
523
+ title: this.$t1('编辑'),
524
+ field: 'editAuth',
525
+ width: 150,
526
+ slots: {
527
+ default: ({row}) => {
528
+ if (row.editAuth) {
529
+ return [<div class="txt-status">{this.$t1('是')}</div>];
530
+ } else {
531
+ return [<div class="txt-status s-3">{this.$t1('否')}</div>];
532
+ }
533
+ }
534
+ }
535
+ },
536
+ {
537
+ title: this.$t1('导出发布'),
538
+ field: 'exportAuth',
539
+ width: 150,
540
+ slots: {
541
+ default: ({row}) => {
542
+ if (row.exportAuth) {
543
+ return [<div class="txt-status">{this.$t1('是')}</div>];
544
+ } else {
545
+ return [<div class="txt-status s-3">{this.$t1('否')}</div>];
546
+ }
547
+ }
548
+ }
549
+ },
550
+ ...(this.isDev ? [{
551
+ title: this.$t1('可选导出发布类型'),
552
+ field: 'selectTypeAuth',
553
+ width: 200,
554
+ slots: {
555
+ default: ({row}) => {
556
+ if (row.selectTypeAuth) {
557
+ return [<div class="txt-status">{this.$t1('是')}</div>];
558
+ } else {
559
+ return [<div class="txt-status s-3">{this.$t1('否')}</div>];
560
+ }
561
+ }
562
+ }
563
+ }] : []),
510
564
  {
511
565
  width: 47,
512
566
  fixed: 'right',
@@ -534,6 +588,13 @@ export default {
534
588
  });
535
589
  }
536
590
  },
591
+ initBdEnv() {
592
+ return getBdEnv({
593
+ success: res => {
594
+ this.isDev = res.objx == "dev"
595
+ }
596
+ });
597
+ },
537
598
  }
538
599
  };
539
600
  </script>
@@ -0,0 +1,210 @@
1
+ <template>
2
+ <el-dialog
3
+ :title="$t1('个人设置')"
4
+ :append-to-body="true"
5
+ :modal-append-to-body="falseValue"
6
+ :close-on-click-modal="falseValue"
7
+ :visible.sync="showDialog"
8
+ :modal="falseValue"
9
+ custom-class="dialog-style list-dialog demo-sty_2"
10
+ width="500px"
11
+ @close="dialogClose"
12
+ v-el-drag-dialog
13
+ v-el-dialog-center
14
+ >
15
+ <div id="containt" style="height: 300px">
16
+ <div class="detail-wrap">
17
+ <el-form ref="editForm" :model="user">
18
+ <div class="d-header clearfix">
19
+ <div class="fl">
20
+ <i class="el-icon-info"/>
21
+ {{ dataId ? $t1('查看用户') : $t1('新增用户') }}
22
+ </div>
23
+ <div class="fr">
24
+ <el-button type="primary" plain class="button-sty" @click="reloadContent" icon="el-icon-refresh-right">
25
+ {{ $t1('重置') }}
26
+ </el-button>
27
+ <el-button type="primary" class="button-sty" icon="el-icon-check" @click="saveData">{{ $t1('保存') }}
28
+ </el-button>
29
+ </div>
30
+ </div>
31
+ <div class="d-cont" style="height: auto">
32
+ <div class="d-item" style="padding-right: 0">
33
+ <div class="title first"><b>{{ $t1('基本信息') }}</b></div>
34
+ <table class="table-detail">
35
+ <tbody>
36
+ <tr>
37
+ <th>
38
+ <em class="f-red">*</em>
39
+ {{ $t1('登录名') }}
40
+ </th>
41
+ <td colspan="3">
42
+ {{ user.loginAccount }}
43
+ </td>
44
+ </tr>
45
+ <tr>
46
+ <th>
47
+ <em class="f-red">*</em>
48
+ {{ $t1('姓名') }}
49
+ </th>
50
+ <td colspan="3">
51
+ <el-form-item prop="nickName" :rules="[{ required: true, trigger: 'blur' }]">
52
+ <el-input size="small" v-model="user.nickName" maxlength="200" lay-verify="required" required=""
53
+ clearable/>
54
+ </el-form-item>
55
+ </td>
56
+ </tr>
57
+ <tr>
58
+ <th>{{ $t1('密码') }}</th>
59
+ <td colspan="3">
60
+ <el-form-item prop="password" :rules="passRules">
61
+ <el-input
62
+ size="small"
63
+ type="password"
64
+ v-model="user.password"
65
+ show-password
66
+ maxlength="255"
67
+ autocomplete="off"
68
+ auto-complete="new-password"
69
+ clearable
70
+ />
71
+ </el-form-item>
72
+ </td>
73
+ </tr>
74
+ <tr>
75
+ <th>{{ $t1('确认密码') }}</th>
76
+ <td colspan="3">
77
+ <el-form-item prop="rePassword" :rules="pass2Rules">
78
+ <el-input
79
+ size="small"
80
+ type="password"
81
+ v-model="user.rePassword"
82
+ show-password
83
+ maxlength="255"
84
+ autocomplete="off"
85
+ auto-complete="new-password"
86
+ lay-verify="confirmPass"
87
+ clearable
88
+ />
89
+ </el-form-item>
90
+ </td>
91
+ </tr>
92
+ </tbody>
93
+ </table>
94
+ </div>
95
+ </div>
96
+ </el-form>
97
+ </div>
98
+ </div>
99
+ </el-dialog>
100
+ </template>
101
+
102
+ <script>
103
+ export default {
104
+ name: 'userInfo',
105
+ components: {},
106
+ props: ['_dataId'],
107
+ created() {
108
+ if (this._dataId && !isNaN(this._dataId)) this.dataId = this._dataId;
109
+ },
110
+ mounted() {
111
+ this.getData();
112
+ },
113
+ data() {
114
+ var validatePass = (rule, value, callback) => {
115
+ const isPassRequired = !this.dataId;
116
+ if (isPassRequired && (value == '' || value == undefined)) {
117
+ callback(new Error(this.$t1('密码不能为空')));
118
+ } else {
119
+ callback();
120
+ }
121
+ this.$refs.editForm.validateField('rePassword');
122
+ };
123
+ var validatePass2 = (rule, value, callback) => {
124
+ const isPassRequired = !this.dataId;
125
+ const rePassword = value != undefined ? value : '';
126
+ const password = this.user.password != undefined ? this.user.password : '';
127
+
128
+ if (isPassRequired && rePassword == '') {
129
+ callback(new Error(this.$t1('确认密码不能为空')));
130
+ } else if (rePassword != password) {
131
+ callback(new Error(this.$t1('两次输入密码不一致!')));
132
+ } else {
133
+ callback();
134
+ }
135
+ };
136
+ return {
137
+ showDialog: true,
138
+ falseValue: false,
139
+ dataId: '',
140
+ hBtn: true,
141
+ user: {},
142
+ vxeOption: {},
143
+ companyInfoOption: {},
144
+ userRoleOption: {},
145
+ showContent: true,
146
+ passRules: [{validator: validatePass, trigger: 'blur', required: false}],
147
+ pass2Rules: [{validator: validatePass2, trigger: 'blur', required: false}]
148
+ };
149
+ },
150
+ methods: {
151
+ getData() {
152
+ let t = this._dataId;
153
+ if (this.dataId && !isNaN(this.dataId)) {
154
+ this.isEdit = true;
155
+ this.$commonHttp({
156
+ url: USER_PREFIX + `/user/get`,
157
+ method: `post`,
158
+ data: {
159
+ id: this.dataId
160
+ },
161
+ isLoading: true,
162
+ modalStrictly: true,
163
+ success: res => {
164
+ var user = res.objx || {};
165
+ this.user = res.objx || {};
166
+ this.user.password = '';
167
+ }
168
+ });
169
+ } else {
170
+ this.isEdit = false;
171
+ this.user = {
172
+ enabled: true
173
+ };
174
+ }
175
+ },
176
+ saveData() {
177
+ this.$refs.editForm.$baseValidate(valid => {
178
+ if (valid) {
179
+ this.$baseConfirm(this.$t1('您确定要保存吗?')).then(() => {
180
+ var url = USER_PREFIX + '/user/updateUserInfo';
181
+ this.$http({
182
+ url: url,
183
+ method: `post`,
184
+ data: this.user,
185
+ isLoading: true,
186
+ success: res => {
187
+ this.$message({
188
+ message: res.content,
189
+ type: 'success',
190
+ duration: 500,
191
+ onClose: t => {
192
+ this.reloadContent();
193
+ }
194
+ });
195
+ }
196
+ });
197
+ });
198
+ }
199
+ });
200
+ },
201
+ dialogClose() {
202
+ this.$emit('update:visiable', false);
203
+ },
204
+ reloadContent() {
205
+ this.user = {};
206
+ this.getData();
207
+ }
208
+ }
209
+ };
210
+ </script>
@@ -222,6 +222,7 @@ export default {
222
222
  getUserGroups() {
223
223
  return new Promise((resolve, reject) => {
224
224
  this.$http({
225
+ aes: true,
225
226
  url: USER_PREFIX + '/groups/listPage',
226
227
  method: 'post',
227
228
  data: {},