cloud-web-corejs 1.0.54-dev.34 → 1.0.54-dev.340

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 (337) hide show
  1. package/package.json +8 -3
  2. package/src/components/Qrcode/fileParse.vue +0 -1
  3. package/src/components/VabUpload/mixins.js +1 -1
  4. package/src/components/VabUpload/propertiesDialog.vue +1 -1
  5. package/src/components/VabUpload/view.vue +135 -120
  6. package/src/components/advancedSearchDialog/mixins.js +1 -1
  7. package/src/components/baseAttachment/index.vue +49 -40
  8. package/src/components/baseAttachment/mixins.js +1 -1
  9. package/src/components/baseInputExport/mixins.js +386 -1
  10. package/src/components/errorMsg/mixins.js +94 -5
  11. package/src/components/excelExport/button.vue +57 -4
  12. package/src/components/excelExport/exportFieldDialog.vue +16 -6
  13. package/src/components/excelExport/index.js +7 -5
  14. package/src/components/excelExport/index.vue +64 -8
  15. package/src/components/excelExport/mixins.js +3 -2
  16. package/src/components/excelImport/mixins.js +750 -1
  17. package/src/components/fileLibrary/fileObjAuthEditDialog.vue +6 -0
  18. package/src/components/fileLibrary/filterDialog.vue +383 -0
  19. package/src/components/fileLibrary/index.vue +23 -24
  20. package/src/components/fileLibrary/mixins/categoryMoveDialogMixins.js +1 -1
  21. package/src/components/fileLibrary/mixins/fileCategoryDialogMixins.js +1 -1
  22. package/src/components/fileLibrary/mixins/fileHistoryDialogMixins.js +2 -2
  23. package/src/components/fileLibrary/mixins/fileObjAuthDialogMixin.js +335 -212
  24. package/src/components/fileLibrary/mixins/fileObjAuthEditDialogMixin.js +31 -27
  25. package/src/components/fileLibrary/mixins/fileObjAuthEditMixin.js +4 -4
  26. package/src/components/fileLibrary/mixins/indexMixins.js +69 -26
  27. package/src/components/fileLibrary/mixins/propertiesDialogMixins.js +63 -3
  28. package/src/components/fileLibrary/mixins/recycleBinDialogMixins.js +1 -1
  29. package/src/components/fileLibrary/propertiesDialog.vue +18 -0
  30. package/src/components/fileLibrary/shareDialog.vue +1 -1
  31. package/src/components/formOplog/mixins.js +1 -1
  32. package/src/components/jsonImport/index.js +1 -1
  33. package/src/components/jsonImport/mixins.js +333 -1
  34. package/src/components/langImport/mixins.js +500 -16
  35. package/src/components/statusTag/mixins.js +1 -1
  36. package/src/components/table/CellSlot.vue +1 -0
  37. package/src/components/table/index.js +12 -10
  38. package/src/components/table/tableForm.vue +99 -63
  39. package/src/components/table/tableFormMixin.js +1 -1
  40. package/src/components/table/util/index.js +328 -0
  41. package/src/components/table/vxeFilter/mixin.js +6 -6
  42. package/src/components/tempStorage/index.vue +9 -6
  43. package/src/components/tempStorage/tempStorageDialog.vue +1 -1
  44. package/src/components/vb-tabs/x-tabs.vue +3 -2
  45. package/src/components/wf/addOpinionButton.vue +57 -0
  46. package/src/components/wf/content.vue +138 -28
  47. package/src/components/wf/mixins/addOpinionButton.js +3 -0
  48. package/src/components/wf/mixins/setCandidateButton.js +6 -0
  49. package/src/components/wf/mixins/setCandidateDialog.js +2 -1
  50. package/src/components/wf/mixins/setCandidateDialog2.js +6 -0
  51. package/src/components/wf/mixins/wfTaskUserRangeDialog.js +3 -0
  52. package/src/components/wf/setCandidateButton.vue +40 -0
  53. package/src/components/wf/setCandidateDialog.vue +10 -0
  54. package/src/components/wf/setCandidateDialog2.vue +95 -0
  55. package/src/components/wf/wf.js +1 -1
  56. package/src/components/wf/wfStartDialog.vue +70 -42
  57. package/src/components/wf/wfTaskUserRangeDialog.vue +65 -0
  58. package/src/components/wf/wfUtil.js +1 -1
  59. package/src/components/xform/form-designer/designer.js +1649 -3
  60. package/src/components/xform/form-designer/form-widget/container-widget/containerMixin.js +3 -3
  61. package/src/components/xform/form-designer/form-widget/container-widget/data-table-mixin.js +289 -8
  62. package/src/components/xform/form-designer/form-widget/container-widget/data-table-widget.vue +4 -1
  63. package/src/components/xform/form-designer/form-widget/container-widget/detail-widget.vue +3 -3
  64. package/src/components/xform/form-designer/form-widget/dialog/exportDialog.vue +13 -0
  65. package/src/components/xform/form-designer/form-widget/dialog/fileReferenceDialog.vue +301 -0
  66. package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +16 -4
  67. package/src/components/xform/form-designer/form-widget/dialog/formDrawer.vue +5 -1
  68. package/src/components/xform/form-designer/form-widget/dialog/importDialog.vue +37 -6
  69. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin.js +1331 -1
  70. package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +26 -7
  71. package/src/components/xform/form-designer/form-widget/field-widget/a-link-widget.vue +1 -1
  72. package/src/components/xform/form-designer/form-widget/field-widget/a-text-widget.vue +1 -1
  73. package/src/components/xform/form-designer/form-widget/field-widget/baseAttachment-widget.vue +34 -5
  74. package/src/components/xform/form-designer/form-widget/field-widget/button-widget.vue +1 -1
  75. package/src/components/xform/form-designer/form-widget/field-widget/checkbox-widget.vue +14 -6
  76. package/src/components/xform/form-designer/form-widget/field-widget/copy_button-widget.vue +89 -0
  77. package/src/components/xform/form-designer/form-widget/field-widget/date-range-widget.vue +1 -0
  78. package/src/components/xform/form-designer/form-widget/field-widget/date-widget.vue +21 -2
  79. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-item-widget.vue +77 -0
  80. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-menu-widget.vue +106 -0
  81. package/src/components/xform/form-designer/form-widget/field-widget/echart-bar-widget.vue +1 -1
  82. package/src/components/xform/form-designer/form-widget/field-widget/echart-category-widget.vue +1 -1
  83. package/src/components/xform/form-designer/form-widget/field-widget/echart-pie-widget.vue +1 -1
  84. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +1615 -16
  85. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +652 -379
  86. package/src/components/xform/form-designer/form-widget/field-widget/import-button-widget.vue +10 -8
  87. package/src/components/xform/form-designer/form-widget/field-widget/import2-button-widget.vue +81 -0
  88. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-bar-mixin.js +49 -8
  89. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-category-mixin.js +61 -88
  90. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-pie-mixin.js +13 -0
  91. package/src/components/xform/form-designer/form-widget/field-widget/mixins/vabsearch-mixin.js +176 -0
  92. package/src/components/xform/form-designer/form-widget/field-widget/multiSearch-widget.vue +53 -0
  93. package/src/components/xform/form-designer/form-widget/field-widget/number-widget.vue +107 -81
  94. package/src/components/xform/form-designer/form-widget/field-widget/oplog-widget.vue +185 -0
  95. package/src/components/xform/form-designer/form-widget/field-widget/print-button-widget.vue +1 -1
  96. package/src/components/xform/form-designer/form-widget/field-widget/print-detail-button-widget.vue +108 -0
  97. package/src/components/xform/form-designer/form-widget/field-widget/project-tag-widget.vue +70 -3
  98. package/src/components/xform/form-designer/form-widget/field-widget/radio-widget.vue +21 -5
  99. package/src/components/xform/form-designer/form-widget/field-widget/search_button-widget.vue +2 -2
  100. package/src/components/xform/form-designer/form-widget/field-widget/select-export-button-widget.vue +86 -0
  101. package/src/components/xform/form-designer/form-widget/field-widget/select-widget.vue +17 -5
  102. package/src/components/xform/form-designer/form-widget/field-widget/singerSearch-widget.vue +53 -0
  103. package/src/components/xform/form-designer/form-widget/field-widget/singleUpload-widget.vue +145 -0
  104. package/src/components/xform/form-designer/form-widget/field-widget/static-content-wrapper.vue +2 -1
  105. package/src/components/xform/form-designer/form-widget/field-widget/status-widget.vue +31 -17
  106. package/src/components/xform/form-designer/form-widget/field-widget/table-export-button-widget.vue +6 -1
  107. package/src/components/xform/form-designer/form-widget/field-widget/tempStorage-widget.vue +127 -0
  108. package/src/components/xform/form-designer/form-widget/field-widget/text-widget.vue +46 -34
  109. package/src/components/xform/form-designer/form-widget/field-widget/time-range-widget.vue +2 -2
  110. package/src/components/xform/form-designer/form-widget/field-widget/vabSearch-widget.vue +2 -170
  111. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +259 -58
  112. package/src/components/xform/form-designer/indexMixin.js +825 -2
  113. package/src/components/xform/form-designer/setting-panel/form-setting.vue +927 -159
  114. package/src/components/xform/form-designer/setting-panel/index.vue +4 -0
  115. package/src/components/xform/form-designer/setting-panel/indexMixin.js +1 -1
  116. package/src/components/xform/form-designer/setting-panel/option-items-setting.vue +376 -302
  117. package/src/components/xform/form-designer/setting-panel/property-editor/a-link-editor.vue +4 -4
  118. package/src/components/xform/form-designer/setting-panel/property-editor/a-text-editor.vue +3 -3
  119. package/src/components/xform/form-designer/setting-panel/property-editor/autoValueEnabled-editor.vue +38 -0
  120. package/src/components/xform/form-designer/setting-panel/property-editor/censusClass-editor.vue +6 -0
  121. package/src/components/xform/form-designer/setting-panel/property-editor/colorClass-editor.vue +28 -0
  122. package/src/components/xform/form-designer/setting-panel/property-editor/commonAttributeEnabled-editor.vue +41 -0
  123. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/columnRenderDialog.vue +126 -0
  124. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +1087 -1042
  125. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/onCheckboxChange-editor.vue +1 -1
  126. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +1160 -511
  127. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-editor.vue +2 -2
  128. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail-pane/detail-pane-editor.vue +3 -3
  129. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-offset-editor.vue +1 -1
  130. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-pull-editor.vue +1 -1
  131. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-push-editor.vue +1 -1
  132. package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +0 -8
  133. package/src/components/xform/form-designer/setting-panel/property-editor/copyButton-editor.vue +36 -0
  134. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/eventMixin.js +2 -2
  135. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onAfterConfirmFile-editor.vue +32 -0
  136. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onClick-editor.vue +2 -2
  137. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/clickBindEvent-editor.vue +35 -20
  138. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/search-dialog-event-editor.vue +64 -5
  139. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-defaultTime-editor.vue +27 -0
  140. package/src/components/xform/form-designer/setting-panel/property-editor/field-dropdown-menu/dropdown-item-editor.vue +21 -0
  141. package/src/components/xform/form-designer/setting-panel/property-editor/field-dropdown-menu/dropdown-menu-editor.vue +59 -0
  142. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-bar-editor.vue +185 -69
  143. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-category-editor.vue +188 -86
  144. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-pie-editor.vue +84 -39
  145. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import-button-editor.vue +32 -9
  146. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +86 -0
  147. package/src/components/xform/form-designer/setting-panel/property-editor/field-print-button/print-button-editor.vue +8 -0
  148. package/src/components/xform/form-designer/setting-panel/property-editor/field-print-button/print-detail-button-editor.vue +91 -0
  149. package/src/components/xform/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue +1 -1
  150. package/src/components/xform/form-designer/setting-panel/property-editor/field-status/field-status-editor.vue +67 -41
  151. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-button-editor.vue +56 -0
  152. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/table-export-button-editor.vue +26 -7
  153. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabSearch/vabSearchName-editor.vue +13 -1
  154. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload/field-vabUpload-editor.vue +30 -1
  155. package/src/components/xform/form-designer/setting-panel/property-editor/formScriptEnabled-editor.vue +52 -5
  156. package/src/components/xform/form-designer/setting-panel/property-editor/formula-editor.vue +721 -466
  157. package/src/components/xform/form-designer/setting-panel/property-editor/labelColor-editor.vue +20 -11
  158. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconClass-editor.vue +1 -1
  159. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconPosition-editor.vue +1 -1
  160. package/src/components/xform/form-designer/setting-panel/property-editor/labelTooltip-editor.vue +1 -1
  161. package/src/components/xform/form-designer/setting-panel/property-editor/limit-editor.vue +1 -1
  162. package/src/components/xform/form-designer/setting-panel/property-editor/multiple-editor.vue +19 -14
  163. package/src/components/xform/form-designer/setting-panel/property-editor/multipleLimit-editor.vue +1 -1
  164. package/src/components/xform/form-designer/setting-panel/property-editor/oplog-editor.vue +31 -0
  165. package/src/components/xform/form-designer/setting-panel/property-editor/precision-editor.vue +1 -1
  166. package/src/components/xform/form-designer/setting-panel/property-editor/project-tag-editor.vue +318 -0
  167. package/src/components/xform/form-designer/setting-panel/property-editor/required-editor.vue +10 -6
  168. package/src/components/xform/form-designer/setting-panel/property-editor/requiredHint-editor.vue +3 -3
  169. package/src/components/xform/form-designer/setting-panel/property-editor/showRuleFlag-editor.vue +1 -1
  170. package/src/components/xform/form-designer/setting-panel/property-editor/tempStorage-editor.vue +23 -0
  171. package/src/components/xform/form-designer/setting-panel/property-editor/textFlag-editor.vue +305 -19
  172. package/src/components/xform/form-designer/setting-panel/property-editor/validation-editor.vue +2 -2
  173. package/src/components/xform/form-designer/setting-panel/property-editor/validationHint-editor.vue +2 -2
  174. package/src/components/xform/form-designer/setting-panel/property-editor/wfFlag-editor.vue +384 -53
  175. package/src/components/xform/form-designer/setting-panel/property-editor/widgetShowRuleFlag-editor.vue +263 -0
  176. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +29 -11
  177. package/src/components/xform/form-designer/toolbar-panel/index.vue +12 -11
  178. package/src/components/xform/form-designer/toolbar-panel/indexMixin.js +1 -1
  179. package/src/components/xform/form-designer/widget-panel/index.vue +21 -1
  180. package/src/components/xform/form-designer/widget-panel/indexMixin.js +3 -2
  181. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +1508 -865
  182. package/src/components/xform/form-render/container-item/containerItemMixin.js +359 -11
  183. package/src/components/xform/form-render/container-item/data-table-item.vue +89 -42
  184. package/src/components/xform/form-render/container-item/data-table-mixin.js +2725 -18
  185. package/src/components/xform/form-render/container-item/detail-pane-item.vue +17 -3
  186. package/src/components/xform/form-render/container-item/grid-col-item.vue +10 -3
  187. package/src/components/xform/form-render/container-item/grid-item.vue +1 -1
  188. package/src/components/xform/form-render/container-item/list-h5-item.vue +1 -9
  189. package/src/components/xform/form-render/container-item/list-h5-item2.vue +1 -8
  190. package/src/components/xform/form-render/container-item/tab-item.vue +11 -6
  191. package/src/components/xform/form-render/container-item/table-cell-item.vue +38 -32
  192. package/src/components/xform/form-render/container-item/table-item.vue +4 -2
  193. package/src/components/xform/form-render/index.vue +4 -1
  194. package/src/components/xform/form-render/indexMixin.js +3129 -4
  195. package/src/components/xform/lang/zh-CN.js +19 -3
  196. package/src/components/xform/mixins/defaultHandle.js +1 -1
  197. package/src/components/xform/mixins/scriptHttp.js +175 -1
  198. package/src/components/xform/utils/emitter.js +4 -4
  199. package/src/components/xform/utils/format.js +21 -30
  200. package/src/components/xform/utils/formula-util.js +669 -0
  201. package/src/components/xform/utils/util.js +1451 -1
  202. package/src/components/xform/utils/validators.js +1 -5
  203. package/src/index.js +2 -2
  204. package/src/layout/components/AppMain.vue +5 -1
  205. package/src/layout/components/Sidebar/default.vue +50 -6
  206. package/src/layout/components/TagsView/index.vue +37 -12
  207. package/src/layout/components/extractedCode/createDialog.vue +92 -0
  208. package/src/layout/components/extractedCode/queryDialog.vue +96 -0
  209. package/src/layout/components/extractedCode/viewDialog.vue +193 -0
  210. package/src/layout/components/watermark/index.vue +83 -0
  211. package/src/layout/defaultLayout.vue +1 -1
  212. package/src/mixins/selectDialog/index.js +1 -1
  213. package/src/mixins/tableTree/index.js +1 -1
  214. package/src/router/modules/customer.js +61 -8
  215. package/src/store/config/index.js +1 -1
  216. package/src/store/modules/permission.js +1 -1
  217. package/src/store/modules/settings.js +1 -1
  218. package/src/store/modules/tagsView.js +1 -14
  219. package/src/store/modules/user.js +1 -1
  220. package/src/utils/index.js +2 -3
  221. package/src/utils/pddLog.js +103 -0
  222. package/src/utils/pdfUtil.js +71 -0
  223. package/src/utils/request.js +359 -1
  224. package/src/utils/vab.js +1113 -27
  225. package/src/views/bd/setting/bd_attach_setting/edit.vue +5 -5
  226. package/src/views/bd/setting/bd_attach_setting/list.vue +28 -55
  227. package/src/views/bd/setting/bd_attach_setting/mixins/edit.js +4 -5
  228. package/src/views/bd/setting/bd_attach_setting/mixins/list.js +239 -1
  229. package/src/views/bd/setting/bd_company_env/dialog.vue +174 -0
  230. package/src/views/bd/setting/bd_company_env/edit.vue +163 -0
  231. package/src/views/bd/setting/bd_company_env/list.vue +175 -0
  232. package/src/views/bd/setting/config_manage/list.vue +51 -0
  233. package/src/views/bd/setting/form_import_log/edit.vue +127 -0
  234. package/src/views/bd/setting/form_import_log/list.vue +206 -0
  235. package/src/views/bd/setting/form_script/edit.vue +9 -0
  236. package/src/views/bd/setting/form_script/edit1.vue +36 -3
  237. package/src/views/bd/setting/form_script/form_list.vue +1 -1
  238. package/src/views/bd/setting/form_script/list1.vue +4 -4
  239. package/src/views/bd/setting/form_script/mixins/dialog.js +130 -1
  240. package/src/views/bd/setting/form_script/mixins/edit.js +201 -1
  241. package/src/views/bd/setting/form_script/mixins/edit1.js +193 -1
  242. package/src/views/bd/setting/form_script/mixins/form_list.js +1 -1
  243. package/src/views/bd/setting/form_script/mixins/list.js +236 -1
  244. package/src/views/bd/setting/form_script/mixins/list1.js +423 -14
  245. package/src/views/bd/setting/form_script/mixins/otherAuthDialog.js +194 -0
  246. package/src/views/bd/setting/form_script/otherAuthDialog.vue +83 -0
  247. package/src/views/bd/setting/form_template/batchWfObjConfigDialog.vue +105 -0
  248. package/src/views/bd/setting/form_template/edit.vue +22 -1
  249. package/src/views/bd/setting/form_template/editWfObjConfigDialog.vue +2 -2
  250. package/src/views/bd/setting/form_template/list.vue +5 -5
  251. package/src/views/bd/setting/form_template/mixins/batchWfObjConfigDialog.js +282 -0
  252. package/src/views/bd/setting/form_template/mixins/edit.js +234 -9
  253. package/src/views/bd/setting/form_template/mixins/list.js +689 -22
  254. package/src/views/bd/setting/form_template/mixins/otherAuthDialog.js +193 -0
  255. package/src/views/bd/setting/form_template/mixins/wf_list.js +12 -0
  256. package/src/views/bd/setting/form_template/otherAuthDialog.vue +83 -0
  257. package/src/views/bd/setting/form_template/wfObjConfigDialog.vue +254 -0
  258. package/src/views/bd/setting/form_template/wf_list.vue +127 -0
  259. package/src/views/bd/setting/menu_kind/list.vue +4 -0
  260. package/src/views/bd/setting/menu_kind/mixins/authDialog.js +294 -1
  261. package/src/views/bd/setting/menu_kind/mixins/list.js +201 -1
  262. package/src/views/bd/setting/push_data/edit.vue +139 -0
  263. package/src/views/bd/setting/push_data/list.vue +283 -0
  264. package/src/views/bd/setting/push_data_h/edit.vue +153 -0
  265. package/src/views/bd/setting/push_data_h/list.vue +293 -0
  266. package/src/views/bd/setting/request_async_setting/edit.vue +320 -0
  267. package/src/views/bd/setting/request_async_setting/list.vue +317 -0
  268. package/src/views/bd/setting/request_setting/edit.vue +300 -0
  269. package/src/views/bd/setting/request_setting/list.vue +268 -0
  270. package/src/views/bd/setting/table_model/edit.vue +875 -426
  271. package/src/views/bd/setting/table_model/list.vue +4 -4
  272. package/src/views/bd/setting/table_model/mixins/dialog.js +1 -1
  273. package/src/views/bd/setting/table_model/mixins/edit.js +1202 -13
  274. package/src/views/bd/setting/table_model/mixins/list.js +440 -14
  275. package/src/views/bd/setting/table_model/mixins/otherAuthDialog.js +201 -0
  276. package/src/views/bd/setting/table_model/otherAuthDialog.vue +83 -0
  277. package/src/views/user/area/dialog.vue +21 -9
  278. package/src/views/user/bill_setting/edit.vue +1 -1
  279. package/src/views/user/bill_setting/list.vue +1 -1
  280. package/src/views/user/common_attribute/itemEdit.vue +2 -2
  281. package/src/views/user/common_attribute/list.vue +1 -1
  282. package/src/views/user/common_script/edit.vue +1 -1
  283. package/src/views/user/common_script/list.vue +1 -1
  284. package/src/views/user/company_info/dialog.vue +164 -154
  285. package/src/views/user/company_info/edit.vue +1 -1
  286. package/src/views/user/extend_datasource/dialog.vue +1 -0
  287. package/src/views/user/extend_datasource/edit.vue +3 -0
  288. package/src/views/user/extend_datasource/list.vue +2 -1
  289. package/src/views/user/fieldTranslation/editDialog.vue +7 -7
  290. package/src/views/user/fieldTranslation/list.vue +32 -32
  291. package/src/views/user/form/vform/designer.vue +775 -749
  292. package/src/views/user/form/vform/out_render.vue +1 -1
  293. package/src/views/user/form/vform/render.vue +8 -4
  294. package/src/views/user/form/view/edit.vue +38 -37
  295. package/src/views/user/form/view/list.vue +68 -15
  296. package/src/views/user/groups/edit.vue +2 -0
  297. package/src/views/user/groups/list.vue +1 -0
  298. package/src/views/user/home/default.vue +1025 -979
  299. package/src/views/user/home/dev.vue +29 -0
  300. package/src/views/user/home/index.vue +16 -6
  301. package/src/views/user/home/taili/index.vue +1034 -0
  302. package/src/views/user/login/default.vue +32 -3
  303. package/src/views/user/login/indexMixin.js +117 -3
  304. package/src/views/user/notify_message/dialog.vue +39 -18
  305. package/src/views/user/notify_template/edit.vue +188 -187
  306. package/src/views/user/notify_template/edit2.vue +176 -0
  307. package/src/views/user/notify_template/list.vue +4 -1
  308. package/src/views/user/notify_template/list2.vue +190 -0
  309. package/src/views/user/outLink/form_view.vue +211 -184
  310. package/src/views/user/outLink/index.vue +17 -0
  311. package/src/views/user/outLink/view.vue +28 -23
  312. package/src/views/user/position/edit.vue +55 -54
  313. package/src/views/user/position/list.vue +4 -4
  314. package/src/views/user/project_tag/dialog.vue +9 -4
  315. package/src/views/user/project_tag/edit.vue +2 -2
  316. package/src/views/user/project_tag/list.vue +9 -4
  317. package/src/views/user/push_setting/list.vue +2 -2
  318. package/src/views/user/request_setting/edit.vue +258 -0
  319. package/src/views/user/request_setting/list.vue +248 -0
  320. package/src/views/user/role/dialog.vue +1 -1
  321. package/src/views/user/role/list.vue +4 -4
  322. package/src/views/user/sale_org/dialog.vue +1 -1
  323. package/src/views/user/sale_org/list.vue +4 -1
  324. package/src/views/user/user/dialog.vue +46 -23
  325. package/src/views/user/user/edit.vue +1059 -1021
  326. package/src/views/user/user/form_dialog.vue +158 -0
  327. package/src/views/user/user/form_edit.vue +63 -2
  328. package/src/views/user/user/form_info.vue +210 -0
  329. package/src/views/user/user/form_list.vue +1 -0
  330. package/src/views/user/user/list.vue +22 -3
  331. package/src/views/user/wf/wf_auto_submit_data/list.vue +2 -0
  332. package/src/views/user/wf/wf_manage/list.vue +30 -1
  333. package/src/views/user/wf/wf_manage/wfContentDialog.vue +1 -1
  334. package/src/views/user/wf/wf_obj_config/importItemDialog.vue +109 -0
  335. package/src/views/user/wf/wf_obj_config/itemEdit.vue +25 -1
  336. package/src/views/user/wf/wf_obj_config/list.vue +114 -9
  337. package/src/views/user/wf/wf_obj_config/wfBizDataSettingDialog.vue +2 -2
@@ -1,979 +1,1025 @@
1
- <template>
2
- <div class="index-home">
3
- <el-row>
4
- <el-col :span="8">
5
- <div class="i-user-info">
6
- <img class="img" v-if="headPhotoUrl" :src="headPhotoUrl"/>
7
- <p class="name">{{ $t1('您好') }},{{ userInfo.nickName }}</p>
8
- <p>{{ companyInfo.companyName }}</p>
9
- </div>
10
- <div class="notice-box">
11
- <div class="txt" @click="openMoreNotifyMessage()">
12
- <i class="iconfont icon-xiaoxitongzhi"></i>
13
- <span v-if="unreadMessageNum>0"
14
- v-html="$t1('您 有{number}条 未读消息,请及时查看。',{number: `<b>${(unreadMessageNum > 99 ? '99+' : unreadMessageNum)}</b>`})">
15
- </span>
16
- <span v-else-if="unreadMessageNum==0">
17
- {{ $t1('您 暂无 未读消息。') }}
18
- </span>
19
- </div>
20
- <el-tooltip class="item" effect="dark" :content="$t1('刷新')" placement="top">
21
- <el-button type="text" @click="getUnreadMessageNum(true)"><i class="el-icon-refresh"></i></el-button>
22
- </el-tooltip>
23
- <el-tooltip class="item" effect="dark" :content="$t1('查看更多')" placement="top">
24
- <el-button type="text" @click="openMoreNotifyMessage()" class="more">
25
- <i class="el-icon-news"></i>
26
- </el-button>
27
- </el-tooltip>
28
- </div>
29
- <el-card class="box-card">
30
- <div slot="header" class="clearfix">
31
- <span style="float:left">
32
- <i class="el-icon-chat-line-round ico"></i>
33
- {{ $t1('公告') }}
34
- </span>
35
- <el-button type="text" @click="openSystemNoticeDialog()"><span class="more">MORE+</span></el-button>
36
- </div>
37
- <div class="home-notice-list">
38
- <div v-for="(systemNotice,index) in systemNotices" :key="index" class="item"
39
- @click="openSystemNoticeDialog(systemNotice)"
40
- :title="systemNotice.title">
41
- {{ systemNotice.title }}
42
- <span class="time">{{ systemNotice.modifyDate.substring(0, 10) }}</span>
43
- </div>
44
- </div>
45
- </el-card>
46
- </el-col>
47
- <el-col :span="homeConfig.toDoSpan || 12" style="padding-left:6px;">
48
- <el-card class="box-card">
49
- <div slot="header" class="clearfix">
50
- <span style="float:left">
51
- <i class="el-icon-chat-line-round ico"></i>
52
- {{ $t1('待办事项') }}
53
- </span>
54
- <el-tooltip class="item" effect="dark" :content="$t1('刷新')" placement="top">
55
- <el-button type="text" @click="getWfInfoList(true)" class="more" style="right:107px">
56
- <i class="el-icon-refresh"></i>
57
- </el-button>
58
- </el-tooltip>
59
- <el-button type="text" @click="$router.push('/basic/wf/wf_manage/list')" class="more">
60
- <i class="el-icon-news"></i>
61
- <span>{{ $t1('查看更多+') }}</span>
62
- </el-button>
63
- </div>
64
- <div class="need-to">
65
- <vxe-grid :data="unDoWfRows" ref="table-wf" v-bind="wfOption"
66
- @resizable-change="$vxeTableUtil.onColumnWitchChange"
67
- @custom="$vxeTableUtil.customHandle"></vxe-grid>
68
- </div>
69
- </el-card>
70
- </el-col>
71
- <el-col :span="4" style="padding-left:6px;" v-show="homeConfig.showFastTrack!==false">
72
- <el-card class="box-card">
73
- <div slot="header" class="clearfix">
74
- <span style="float:left">
75
- <i class="el-icon-star-off ico"></i>
76
- {{ $t1('快捷通道') }}
77
- </span>
78
- <el-button type="text" @click="showCommMenuDialog = true"><span class="more">MORE+</span></el-button>
79
- </div>
80
- <div class="fast-box">
81
- <div class="item" v-for="commMenu in commMenus" :key="commMenu.id">
82
- <a href="javascript:void(0);" @click="rourteTo(commMenu)">
83
- <p><i :class="!!commMenu.menuImg?('iconfont '+commMenu.menuImg):null"></i><span>{{
84
- commMenu.menuName
85
- }}</span></p>
86
- </a>
87
- </div>
88
- </div>
89
- </el-card>
90
- </el-col>
91
-
92
- <!-- <el-col :span="8">
93
- <el-card class="box-card">
94
- <div slot="header" class="clearfix">
95
- <span style="float:left">
96
- <i class="el-icon-message ico"></i>
97
- 消息通知
98
- </span>
99
- <el-button type="text" @click="openNotifyTemplateGroupDialog" class="more" style="right:100px">
100
- <i class="el-icon-receiving"></i>
101
- <span>选择分组</span>
102
- </el-button>
103
- <el-button type="text" @click="openMoreNotifyMessage()" class="more">
104
- <i class="el-icon-news"></i>
105
- <span>查看更多+</span>
106
- </el-button>
107
- </div>
108
- <div class="home-notice-list to-reed" style="height: 400px;">
109
- <div v-for="(notifyMessage,index) in notifyMessages" class="item"
110
- :class="{noread:notifyMessage.readed == 0}"
111
- :title="notifyMessage.content" @click="checkNotifyMessage(notifyMessage,index)">
112
- <div class="clearfix">
113
- <el-tag type="warning">{{
114
- notifyMessage.notifyTypeName
115
- }}
116
- </el-tag>
117
- <span class="time">{{
118
- notifyMessage.createDate
119
- }}</span>
120
- <div class="btns fr">
121
- <el-link type="primary" @click.stop="openNotifyMessageDialog(notifyMessage)"><i class="el-icon-files"></i>
122
- </el-link>
123
- </div>
124
- </div>
125
- <span class="name">{{ notifyMessage.content }}</span>
126
- </div>
127
- </div>
128
- </el-card>
129
- </el-col> -->
130
- </el-row>
131
- <slot></slot>
132
- <systemNoticeInfoDialog v-if="showSystemNoticeInfoDialog" :visiable.sync="showSystemNoticeInfoDialog"
133
- :param="csnRow" :appendToTop="true"></systemNoticeInfoDialog>
134
-
135
- <commMenuDialog v-if="showCommMenuDialog" :visiable.sync="showCommMenuDialog"
136
- @confirm="commMenuCallBack"></commMenuDialog>
137
- <wfContentDialog v-if="showWfDialog" :visible.sync="showWfDialog" @close="wfClose"
138
- :option.sync="wfContentOption"></wfContentDialog>
139
-
140
- <notifyMessageDialog ref="notifyMessageDialog"></notifyMessageDialog>
141
-
142
- <notifyMessageInfoDialog v-if="showNoticeDialog" :visiable.sync="showNoticeDialog"
143
- :dataId.sync="notifyMessageInfoId"
144
- @readHanlde="notifyMessageReadHanlde"></notifyMessageInfoDialog>
145
-
146
-
147
- <el-dialog
148
- :title="$t1('选择分组')"
149
- :append-to-body="true"
150
- :modal-append-to-body="true"
151
- :close-on-click-modal="false"
152
- v-if="showGroupDialog"
153
- :visible.sync="showGroupDialog"
154
- :modal="false"
155
- custom-class="el-dialog dialog-style list-dialog"
156
- width="355px"
157
- :destroy-on-close="true"
158
- >
159
- <div class="cont group-list">
160
- <div class="item" v-for="(notifyTemplate,index) in notifyTemplates" :key="index"
161
- @click="openMoreNotifyMessage(notifyTemplate.notifyType)">
162
- <i class="iconfont icon-fenzu"></i>
163
- <span class="name">{{ notifyTemplate.ntName }}</span>
164
- <!-- <span class="nums">99+</span>-->
165
- </div>
166
- </div>
167
- </el-dialog>
168
-
169
- </div>
170
- </template>
171
-
172
- <script>
173
- import systemNoticeInfoDialog from '../../../views/user/system_notice/infoDialog.vue';
174
- import commMenuDialog from '../../../views/user/commMenu/index.vue';
175
- import notifyMessageDialog from '../../../views/user/notify_message/dialog.vue';
176
- import notifyMessageInfoDialog from '../../../views/user/notify_message/infoDialog';
177
-
178
- import {getToken} from "@base/utils/auth";
179
- import wfContentDialog from "../../../views/user/wf/wf_manage/wfContentDialog";
180
- import corejsConfig from "@/corejsConfig";
181
-
182
- export default {
183
- name: 'home',
184
- components: {
185
- systemNoticeInfoDialog,
186
- commMenuDialog,
187
- notifyMessageDialog,
188
- notifyMessageInfoDialog,
189
- wfContentDialog
190
- },
191
- data() {
192
- return {
193
- showNoticeDialog: false,
194
- showGroupDialog: false,
195
- notifyTemplates: [],
196
- userInfo: {},
197
- companyInfo: {},
198
- systemNotices: [],
199
- showSystemNoticeInfoDialog: false,
200
- csnRow: null,
201
- headPhotoUrl: '',
202
- dialogVisible: true,
203
- unDoWfRows: [],
204
- wfOption: {},
205
- showWfDialog: false,
206
- wfContentOption: {},
207
- showWfContent: true,
208
- wfContent: null,
209
- wfDataId: '',
210
- showCommMenuDialog: false,
211
- commMenus: [],
212
- notifyMessages: [],
213
- notifyMessageInfoIndex: null,
214
- notifyMessageInfoId: null,
215
- unreadMessageNum: 0,
216
- activating: true,
217
- wfTimer: null,
218
- homeConfig:corejsConfig.homeConfig || {}
219
- };
220
- },
221
- activated() {
222
- this.activating = true;
223
- if (this.wfTimer) {
224
- this.timerExcFun(true);
225
- }
226
- },
227
- deactivated() {
228
- this.activating = false;
229
- },
230
- beforeDestroy() {
231
- this.clearTimer();
232
- },
233
- created() {
234
- this.getUserInfo();
235
- this.initSystemNotice();
236
- this.initCommMenu();
237
- this.initNotifyMessage();
238
- this.initWfParam();
239
- this.initWfTimer();
240
- },
241
- methods: {
242
- wfClose() {
243
- this.timerExcFun(true);
244
- },
245
- initWfTimer() {
246
- this.wfTimer = setInterval(() => {
247
- this.timerExcFun(false);
248
- }, 10000);
249
- this.timerExcFun(true);
250
- },
251
- timerExcFun(isLoading) {
252
- if (!this.activating) {
253
- return;
254
- }
255
- this.getWfInfoList(isLoading);
256
- this.getUnreadMessageNum(isLoading);
257
- this.$emit('timerHandle')
258
- },
259
- clearTimer() {
260
- clearInterval(this.wfTimer);
261
- this.wfTimer = null;
262
- },
263
- getUserInfo() {
264
- this.$http({
265
- url: USER_PREFIX + '/user/currentUser',
266
- method: 'post',
267
- success: res => {
268
- let userInfo = res.objx;
269
- this.headPhotoUrl = userInfo.headPhotoUrl ? userInfo.headPhotoUrl : require('@/resources/images' + '/default-header.png');
270
-
271
- this.userInfo = userInfo;
272
- }
273
- });
274
- this.$http({
275
- url: USER_PREFIX + '/company_info/getCurrent',
276
- method: `post`,
277
- success: res => {
278
- this.companyInfo = res.objx || {};
279
- }
280
- });
281
- },
282
- initSystemNotice() {
283
- this.$http({
284
- url: USER_PREFIX + '/system_notice/listPage',
285
- data: {publish: true},
286
- method: 'post',
287
- success: res => {
288
- this.systemNotices = res.objx && res.objx.records ? res.objx.records : [];
289
- }
290
- });
291
- },
292
- openSystemNoticeDialog(row) {
293
- this.csnRow = row || null;
294
- this.showSystemNoticeInfoDialog = true;
295
- },
296
- initUnDoWfInfo() {
297
- this.$http({
298
- url: AGILEBPM_PREFIX + '/wf_manage/listPage',
299
- data: {type: 0},
300
- method: 'post',
301
- success: res => {
302
- this.unDoWfRows = res.objx.records || [];
303
- }
304
- });
305
- },
306
- initWfTableList() {
307
- let that = this;
308
- let paramColumns = this.wfParamDTOs.map(item => {
309
- return {
310
- title: this.$t1(item.paramName),
311
- field: item.paramKey,
312
- width: 150
313
- };
314
- })
315
- var statuses = {running: this.$t1('审核中'), back: this.$t1('已驳回'), end: this.$t1('已完成')};
316
- let tableOption = {
317
- vue: this,
318
- tableRef: 'table-wf',
319
- tableName: 'home-table-wf',
320
- config: {
321
- height: 'auto'
322
- },
323
- columns: [
324
- {type: 'checkbox', width: 48, resizable: false, fixed: 'left'},
325
- {
326
- title: this.$t1('单据类型'),
327
- field: 'objTypeName',
328
- width: 150,
329
- fixed: 'left'
330
- },
331
- {
332
- title: this.$t1('流程主题'),
333
- field: 'name',
334
- width: 150
335
- },
336
- {
337
- title: this.$t1('启动人'),
338
- field: 'starterName',
339
- width: 150
340
- },
341
- {
342
- title: this.$t1('当前任务'),
343
- field: 'taskName',
344
- width: 150
345
- },
346
- {
347
- title: this.$t1('当前任务用户'),
348
- field: 'candidateNames',
349
- width: 150
350
- },
351
- {
352
- title: this.$t1('启动时间'),
353
- field: 'createDate',
354
- width: 150
355
- },
356
- ...paramColumns,
357
- {
358
- width: 47,
359
- fixed: 'right',
360
- title: '',
361
- sortable: false,
362
- slots: {
363
- default: ({row}) => {
364
- return [
365
- <a
366
- href="javascript:void(0);"
367
- class="a-link"
368
- onclick={() => {
369
- this.openWfDialog(row);
370
- }}
371
- >
372
- <el-tooltip enterable={false} effect="dark" content={this.$t1('查看')} placement="top"
373
- popper-class="tooltip-skin">
374
- <i class="el-icon-edit"/>
375
- </el-tooltip>
376
- </a>
377
- ];
378
- }
379
- }
380
- }
381
- ]
382
- };
383
- this.$vxeTableUtil.initVxeTable(tableOption).then(opts => {
384
- this.wfOption = opts;
385
- });
386
- },
387
- openWfDialog(row) {
388
- this.wfContentOption = {
389
- objId: row.objId,
390
- url: row.url,
391
- objTypeCode: row.objTypeCode
392
- };
393
- this.showWfDialog = true;
394
- },
395
- commMenuCallBack(datas) {
396
- this.commMenus = datas || [];
397
- },
398
- initCommMenu() {
399
- this.$http({
400
- url: USER_PREFIX + '/comm_menu/currentList',
401
- data: {longOne: 0},
402
- method: 'POST'
403
- }).then(resultMsg => {
404
- this.commMenus = resultMsg.objx || [];
405
- });
406
- },
407
- initNotifyMessage() {
408
- this.$http({
409
- url: USER_PREFIX + '/notify_message/listPage',
410
- data: {},
411
- method: 'post',
412
- success: res => {
413
- this.notifyMessages = res.objx && res.objx.records ? res.objx.records : [];
414
- }
415
- });
416
- },
417
- openNotifyMessageDialog(row) {
418
- if (row.jumpContent) {
419
- this.$refs.notifyMessageDialog.open(row, () => {
420
- row.readed = 1;
421
- });
422
- }
423
- },
424
- openMoreNotifyMessage(notifyType) {
425
- let data = {notifyType: (notifyType || '')};
426
- let view = {
427
- name: 'notify_message:list',
428
- query: data
429
- };
430
- this.$store.dispatch('tagsView/delCachedView', view).then(() => {
431
- this.$router.replace(view);
432
- });
433
-
434
- if (notifyType) {
435
- this.showGroupDialog = false;
436
- }
437
- },
438
- checkNotifyMessage(row, index) {
439
- this.showNoticeDialog = true;
440
- this.notifyMessageInfoIndex = index;
441
- this.notifyMessageInfoId = row.id;
442
- },
443
- notifyMessageReadHanlde() {
444
- this.notifyMessages[this.notifyMessageInfoIndex].readed = 1;
445
- },
446
- openNotifyTemplateGroupDialog() {
447
- this.$http({
448
- url: USER_PREFIX + `/notify_template/listPage`,
449
- method: `post`,
450
- data: {},
451
- isLoading: true,
452
- loadingTarget: document.body,
453
- success: res => {
454
- this.notifyTemplates = res.objx && res.objx.records ? res.objx.records : [];
455
- this.showGroupDialog = true;
456
- }
457
- });
458
- },
459
- rourteTo(route) {
460
- if (route.type == 4) {
461
- this.jumpOutLink(route)
462
- } else if (route.type == 3) {
463
- let menuCode = route.menuCode;
464
- let path = "/user/outLink/index/" + menuCode;
465
- this.$router.push({path: path, query: {url: route.url}});
466
- } else {
467
- this.$router.push(route.url);
468
- }
469
- },
470
- jumpOutLink(route) {
471
- let path = route.url;
472
- if (route.type == 4 && path) {
473
- if (path.indexOf('token={token}') >= 0) {
474
- path = path.replace('token={token}', 'token=' + getToken())
475
- }
476
- window.open(path);
477
- }
478
- },
479
- initWfParam() {
480
- return this.$http({
481
- url: USER_PREFIX + '/wf_param/list',
482
- method: `post`,
483
- data: {},
484
- isLoading: true,
485
- loadingTarget: document.body,
486
- modalStrictly: true,
487
- success: res => {
488
- this.wfParamDTOs = res.objx || [];
489
- this.initWfTableList();
490
- }
491
- });
492
- },
493
- getWfInfoList(isLoading) {
494
- if (!this.activating) {
495
- return;
496
- }
497
- this.$http({
498
- url: USER_PREFIX + '/wf_info/listPage',
499
- data: {type: 0, size: 20},
500
- method: 'post',
501
- isLoading: isLoading,
502
- loadingTarget: document.body,
503
- success: res => {
504
- this.unDoWfRows = res.objx && res.objx.records ? res.objx.records : [];
505
- },
506
- failMsg: false,
507
- errorMsg: false,
508
- fail: (res, response) => {
509
- if (response && response.status == 200) {
510
- this.$errorMsg(res);
511
- }
512
- }
513
- });
514
- },
515
- getUnreadMessageNum(isLoading) {
516
- if (!this.activating) {
517
- return;
518
- }
519
- return this.$http({
520
- url: USER_PREFIX + '/notify_message/countMessage',
521
- method: `post`,
522
- data: {},
523
- isLoading: isLoading,
524
- loadingTarget: document.body,
525
- success: res => {
526
- this.unreadMessageNum = res.objx || 0;
527
- },
528
- failMsg: false,
529
- errorMsg: false,
530
- fail: (res, response) => {
531
- if (response && response.status == 200) {
532
- this.$errorMsg(res);
533
- }
534
- }
535
- });
536
- },
537
- wfhandleCallback(flag) {
538
- if ([1, 2, 3].includes(flag)) {
539
- this.showWfDialog = false;
540
- this.wfClose();
541
- }
542
- }
543
- }
544
- };
545
- </script>
546
- <style lang="scss" scoped>
547
- @import '~@/styles/variables.scss';
548
-
549
- body #app .index-home {
550
- margin: 3px 10px;
551
- height: calc(100vh - 38px);
552
- overflow: auto;
553
-
554
- #containt {
555
- margin: 0;
556
- background: none;
557
- height: auto;
558
- box-shadow: none;
559
- }
560
-
561
- .i-user-info {
562
- background: url(~@/resources/images/home-img.png) #2a6494 no-repeat 116% 45px;
563
- margin-bottom: 6px;
564
- background-size: 181px;
565
- padding: 14px 38px 11px 16px;
566
- border-radius: 4px 4px;
567
- color: #fff;
568
- font-size: 12px;
569
- margin-top: 3px;
570
- height: 95px;
571
- overflow: hidden;
572
-
573
- .name {
574
- opacity: 1;
575
- font-weight: 600;
576
- margin: 9px 0 14px;
577
- font-size: 14px;
578
- }
579
-
580
- .img {
581
- width: 60px;
582
- height: 60px;
583
- float: left;
584
- border-radius: 50%;
585
- border: solid 4px rgba(255, 255, 255, 0.28);
586
- margin-right: 10px;
587
- }
588
- }
589
-
590
- .home-notice-list {
591
- height: 182px;
592
- margin: 0 -12px;
593
-
594
- .item {
595
- padding: 6px 12px;
596
- font-size: 12px;
597
- cursor: pointer;
598
- overflow: hidden;
599
- text-overflow: ellipsis;
600
- white-space: nowrap;
601
-
602
- .time {
603
- color: #b9b9b9;
604
- font-size: 12px;
605
- right: 12px;
606
- }
607
-
608
- &:hover {
609
- color: $baseColor;
610
- background-color: transparentize($baseColor, 0.97);
611
-
612
- .time {
613
- color: $baseColor
614
- }
615
- }
616
-
617
- &.no-read:before {
618
- content: "";
619
- width: 6px;
620
- height: 6px;
621
- background-color: $red;
622
- border-radius: 50%;
623
- vertical-align: middle;
624
- display: inline-block;
625
- margin-bottom: 1px;
626
- }
627
- }
628
-
629
- &.to-reed {
630
- height: 300px;
631
- overflow: auto;
632
- margin: -8px -12px;
633
-
634
-
635
- .item {
636
- white-space: initial;
637
- padding: 8px 22px 2px;
638
- position: relative;
639
-
640
- &:after {
641
- content: "";
642
- position: absolute;
643
- left: 22px;
644
- right: 22px;
645
- border-top: dashed 1px #eee;
646
- height: 1px;
647
- bottom: 0;
648
- }
649
-
650
- &.noread {
651
- &:before {
652
- content: "";
653
- width: 6px;
654
- height: 6px;
655
- background-color: $red;
656
- border-radius: 50%;
657
- margin-right: 5px;
658
- display: inline-block;
659
- position: absolute;
660
- left: 10px;
661
- top: 16px;
662
- }
663
- }
664
-
665
- .el-tag {
666
- zoom: 0.95;
667
- padding: 0 5px;
668
- height: 24px;
669
- line-height: 24px;
670
- }
671
-
672
- // .noread{
673
- // position: absolute;right:0;top:0;
674
- // span{transform: rotate(47deg);
675
- // -ms-transform: rotate(47deg);
676
- // -moz-transform: rotate(47deg);
677
- // -webkit-transform: rotate(47deg);
678
- // -o-transform: rotate(47deg);
679
- // z-index: 3;
680
- // color: #FFF;
681
- // position: absolute;
682
- // right: 1px;
683
- // top: 2px;}
684
- // &:after{
685
- // content: "\e618";
686
- // font-size: 62px;
687
- // font-family: "iconfont";
688
- // color:$red
689
- // }
690
- // }
691
- .time {
692
- position: relative;
693
- right: 0;
694
- margin-left: 12px;
695
- }
696
-
697
- .name {
698
- overflow: hidden;
699
- text-overflow: ellipsis;
700
- white-space: nowrap;
701
- margin-top: 3px;
702
- display: block;
703
- margin-bottom: 4px;
704
- }
705
-
706
- &:hover .name {
707
- color: $baseColor
708
- }
709
-
710
- &:first-child:before {
711
- border-top: none
712
- }
713
-
714
- .btns {
715
- text-align: right;
716
-
717
- .el-link {
718
- font-size: 12px;
719
- display: inline-block;
720
- margin-left: 14px;
721
-
722
- i {
723
- font-size: 12px;
724
- margin-right: 3px;
725
- }
726
- }
727
- }
728
- }
729
-
730
- }
731
- }
732
-
733
- .fast-box {
734
- height: 329px;
735
- overflow: hidden;
736
-
737
- .item {
738
- width: 100%;
739
- text-align: center;
740
- float: left;
741
-
742
- p {
743
- color: #2a6494;
744
- border: solid 1px #e2e2e2;
745
- margin: 3.5px 4px;
746
- width: calc(100% - 4px);
747
- border-radius: 6px;
748
- position: relative;
749
- height: 33px;
750
- line-height: 32px;
751
- text-align: left;
752
- padding-left: 14px;
753
- font-size: 12px;
754
-
755
- i {
756
- font-size: 14px;
757
- vertical-align: middle;
758
- margin-right: 2px;
759
- }
760
-
761
- span {
762
- vertical-align: middle;
763
- }
764
-
765
- &:before {
766
- content: '';
767
- width: 4px;
768
- height: 14px;
769
- display: inline-block;
770
- background: #225279b8;
771
- position: absolute;
772
- left: -1px;
773
- top: 9px;
774
- }
775
-
776
- &:hover {
777
- background-color: $baseColor;
778
- color: #fff;
779
- border-color: $baseColor;
780
-
781
- &:before {
782
- background: #fff;
783
- }
784
- }
785
- }
786
- }
787
- }
788
-
789
- .need-to {
790
- height: 332px;
791
- }
792
-
793
- .table-box {
794
- width: 100%;
795
- font-size: 12px;
796
-
797
- th {
798
- line-height: 32px;
799
- background: #f7f7f7;
800
- font-weight: 400;
801
- color: #808080;
802
- padding: 0 6px;
803
- }
804
-
805
- td {
806
- text-align: center;
807
- line-height: 34px;
808
- color: #424242;
809
- border-bottom: solid 1px #eee;
810
- padding: 0 6px;
811
- }
812
-
813
- tr:last-child td {
814
- border-bottom: none;
815
- }
816
- }
817
- }
818
-
819
- .box-card .more {
820
- background-color: #f7f7f7;
821
- }
822
-
823
- .group-list {
824
- padding: 18px 18px 6px 32px !important;
825
- height: 400px;
826
- overflow: auto;
827
-
828
- .item {
829
- position: relative;
830
- height: 36px;
831
- border: solid 1px #eee;
832
- line-height: 34px;
833
- border-radius: 2px;
834
- padding: 0 42px 0 14px;
835
- margin-bottom: 10px;
836
- cursor: pointer;
837
-
838
- &::before {
839
- content: "";
840
- width: 8px;
841
- height: 8px;
842
- border: solid 1px #eee;
843
- border-radius: 50%;
844
- display: inline-block;
845
- position: absolute;
846
- left: -16px;
847
- top: 13px;
848
- }
849
-
850
- &.checked {
851
- &:before {
852
- content: "";
853
- background-color: $baseColor;
854
- border-color: $baseColor
855
- }
856
-
857
- background-color: transparentize($baseColor, 0.9);
858
- color: $baseColor;
859
- border-color: $baseColor;
860
- }
861
-
862
- i {
863
- font-size: 12px;
864
- vertical-align: middle;
865
- }
866
-
867
- .name {
868
- font-size: 12px;
869
- margin-left: 8px;
870
- vertical-align: middle;
871
- }
872
-
873
- .nums {
874
- width: 22px;
875
- height: 22px;
876
- border-radius: 50%;
877
- display: inline-block;
878
- position: absolute;
879
- right: 5px;
880
- top: 6px;
881
- color: #FFF;
882
- font-size: 12px;
883
- background-color: $red;
884
- line-height: 22px;
885
- text-align: center;
886
- }
887
- }
888
- }
889
-
890
- .notice-box {
891
- background-color: #2a649429;
892
- border-radius: 0 0 4px 4px;
893
- padding: 9px 12px;
894
- margin-bottom: 5px;
895
- margin-top: -6px;
896
- position: relative;
897
- z-index: 2;
898
- font-size: 13px;
899
- color: #212121;
900
- overflow: hidden;
901
-
902
- .txt {
903
- line-height: 28px;
904
- font-size: 12px;
905
- position: relative;
906
- display: inline-block;
907
- cursor: pointer;
908
-
909
- &:before {
910
- content: "";
911
- background-color: $baseColor;
912
- width: 4px;
913
- height: 20px;
914
- border-radius: 2px;
915
- display: inline-block;
916
- vertical-align: middle;
917
- margin-right: 18px;
918
- }
919
-
920
- i {
921
- font-size: 14px;
922
- margin-right: 12px;
923
- vertical-align: middle;
924
- }
925
-
926
- > span {
927
- vertical-align: middle;
928
- height: 22px;
929
- line-height: 22px;
930
- display: inline-block;
931
-
932
- b {
933
- color: #FFF;
934
- margin: 0 4px;
935
- font-size: 16px;
936
- vertical-align: middle;
937
- background: #FF5615;
938
- border-radius: 50%;
939
- display: inline-block;
940
- padding: 4px;
941
- font-weight: 200;
942
- line-height: 1;
943
- }
944
- }
945
-
946
- }
947
-
948
- .el-button {
949
- position: absolute;
950
- right: 46px;
951
- padding: 0;
952
- height: 22px;
953
- line-height: 22px;
954
- min-width: 22px;
955
- text-align: center;
956
- border-radius: 2px;
957
- top: 50%;
958
- margin-top: -11px;
959
-
960
- i {
961
- font-size: 15px;
962
- }
963
-
964
- &:hover {
965
- background-color: $baseColor;
966
- color: #FFF;
967
- }
968
-
969
- &.more {
970
- right: 12px;
971
- background: #f7f7f7;
972
-
973
- &:hover {
974
- color: $baseColor
975
- }
976
- }
977
- }
978
- }
979
- </style>
1
+ <template>
2
+ <div class="index-home">
3
+ <el-row>
4
+ <el-col :span="8">
5
+ <div class="i-user-info">
6
+ <img class="img" v-if="headPhotoUrl" :src="headPhotoUrl"/>
7
+ <p class="name">{{ $t1('您好') }},{{ userInfo.nickName }}</p>
8
+ <p>{{ companyInfo.companyName }}</p>
9
+ </div>
10
+ <div class="notice-box">
11
+ <div class="txt" @click="openMoreNotifyMessage()">
12
+ <i class="iconfont icon-xiaoxitongzhi"></i>
13
+ <span v-if="unreadMessageNum>0"
14
+ v-html="$t1('您 有{number}条 未读消息,请及时查看。',{number: `<b>${(unreadMessageNum > 99 ? '99+' : unreadMessageNum)}</b>`})">
15
+ </span>
16
+ <span v-else-if="unreadMessageNum==0">
17
+ {{ $t1('您 暂无 未读消息。') }}
18
+ </span>
19
+ </div>
20
+ <el-tooltip class="item" effect="dark" :content="$t1('刷新')" placement="top">
21
+ <el-button type="text" @click="getUnreadMessageNum(true)"><i class="el-icon-refresh"></i></el-button>
22
+ </el-tooltip>
23
+ <el-tooltip class="item" effect="dark" :content="$t1('查看更多')" placement="top">
24
+ <el-button type="text" @click="openMoreNotifyMessage()" class="more">
25
+ <i class="el-icon-news"></i>
26
+ </el-button>
27
+ </el-tooltip>
28
+ </div>
29
+ <el-card class="box-card">
30
+ <div slot="header" class="clearfix">
31
+ <span style="float:left">
32
+ <i class="el-icon-chat-line-round ico"></i>
33
+ {{ $t1('公告') }}
34
+ </span>
35
+ <el-button type="text" @click="openSystemNoticeDialog()"><span class="more">MORE+</span></el-button>
36
+ </div>
37
+ <div class="home-notice-list">
38
+ <div v-for="(systemNotice,index) in systemNotices" :key="index" class="item"
39
+ @click="openSystemNoticeDialog(systemNotice)"
40
+ :title="systemNotice.title">
41
+ {{ systemNotice.title }}
42
+ <span class="time">{{ systemNotice.modifyDate.substring(0, 10) }}</span>
43
+ </div>
44
+ </div>
45
+ </el-card>
46
+ </el-col>
47
+ <el-col :span="homeConfig.toDoSpan || 16" style="padding-left:6px;">
48
+ <el-card class="box-card">
49
+ <div slot="header" class="clearfix">
50
+ <span style="float:left">
51
+ <i class="el-icon-chat-line-round ico"></i>
52
+ {{ $t1('待办事项') }}
53
+ </span>
54
+ <el-tooltip class="item" effect="dark" :content="$t1('刷新')" placement="top">
55
+ <el-button type="text" @click="getWfInfoList(true)" class="more" style="right:107px">
56
+ <i class="el-icon-refresh"></i>
57
+ </el-button>
58
+ </el-tooltip>
59
+ <el-button type="text" @click="toWfManageList" class="more">
60
+ <i class="el-icon-news"></i>
61
+ <span>{{ $t1('查看更多+') }}</span>
62
+ </el-button>
63
+ </div>
64
+ <div class="need-to">
65
+ <vxe-grid :data="unDoWfRows" ref="table-wf" v-bind="wfOption"
66
+ @resizable-change="$vxeTableUtil.onColumnWitchChange"
67
+ @custom="$vxeTableUtil.customHandle"></vxe-grid>
68
+ </div>
69
+ </el-card>
70
+ </el-col>
71
+ </el-row>
72
+ <el-row>
73
+ <el-col :span="24" v-show="homeConfig.showFastTrack!==false">
74
+ <el-card class="box-card">
75
+ <div slot="header" class="clearfix">
76
+ <span style="float:left">
77
+ <i class="el-icon-star-off ico"></i>
78
+ {{ $t1('快捷通道') }}
79
+ </span>
80
+ <el-button type="text" @click="showCommMenuDialog = true"><span class="more">MORE+</span></el-button>
81
+ </div>
82
+ <div class="fast-box">
83
+ <div class="item" v-for="commMenu in commMenus" :key="commMenu.id">
84
+ <a href="javascript:void(0);" @click="rourteTo(commMenu)">
85
+ <p><i :class="!!commMenu.menuImg?('iconfont '+commMenu.menuImg):null"></i><span>{{
86
+ commMenu.menuName
87
+ }}</span></p>
88
+ </a>
89
+ </div>
90
+ </div>
91
+ </el-card>
92
+ </el-col>
93
+
94
+ <!-- <el-col :span="8">
95
+ <el-card class="box-card">
96
+ <div slot="header" class="clearfix">
97
+ <span style="float:left">
98
+ <i class="el-icon-message ico"></i>
99
+ 消息通知
100
+ </span>
101
+ <el-button type="text" @click="openNotifyTemplateGroupDialog" class="more" style="right:100px">
102
+ <i class="el-icon-receiving"></i>
103
+ <span>选择分组</span>
104
+ </el-button>
105
+ <el-button type="text" @click="openMoreNotifyMessage()" class="more">
106
+ <i class="el-icon-news"></i>
107
+ <span>查看更多+</span>
108
+ </el-button>
109
+ </div>
110
+ <div class="home-notice-list to-reed" style="height: 400px;">
111
+ <div v-for="(notifyMessage,index) in notifyMessages" class="item"
112
+ :class="{noread:notifyMessage.readed == 0}"
113
+ :title="notifyMessage.content" @click="checkNotifyMessage(notifyMessage,index)">
114
+ <div class="clearfix">
115
+ <el-tag type="warning">{{
116
+ notifyMessage.notifyTypeName
117
+ }}
118
+ </el-tag>
119
+ <span class="time">{{
120
+ notifyMessage.createDate
121
+ }}</span>
122
+ <div class="btns fr">
123
+ <el-link type="primary" @click.stop="openNotifyMessageDialog(notifyMessage)"><i class="el-icon-files"></i>
124
+ </el-link>
125
+ </div>
126
+ </div>
127
+ <span class="name">{{ notifyMessage.content }}</span>
128
+ </div>
129
+ </div>
130
+ </el-card>
131
+ </el-col> -->
132
+ </el-row>
133
+ <slot></slot>
134
+ <systemNoticeInfoDialog v-if="showSystemNoticeInfoDialog" :visiable.sync="showSystemNoticeInfoDialog"
135
+ :param="csnRow" :appendToTop="true"></systemNoticeInfoDialog>
136
+
137
+ <commMenuDialog v-if="showCommMenuDialog" :visiable.sync="showCommMenuDialog"
138
+ @confirm="commMenuCallBack"></commMenuDialog>
139
+ <wfContentDialog v-if="showWfDialog" :visible.sync="showWfDialog" @close="wfClose"
140
+ :option.sync="wfContentOption"></wfContentDialog>
141
+
142
+ <notifyMessageDialog ref="notifyMessageDialog"></notifyMessageDialog>
143
+
144
+ <notifyMessageInfoDialog v-if="showNoticeDialog" :visiable.sync="showNoticeDialog"
145
+ :dataId.sync="notifyMessageInfoId"
146
+ @readHanlde="notifyMessageReadHanlde"></notifyMessageInfoDialog>
147
+
148
+
149
+ <el-dialog
150
+ :title="$t1('选择分组')"
151
+ :append-to-body="true"
152
+ :modal-append-to-body="true"
153
+ :close-on-click-modal="false"
154
+ v-if="showGroupDialog"
155
+ :visible.sync="showGroupDialog"
156
+ :modal="false"
157
+ custom-class="el-dialog dialog-style list-dialog"
158
+ width="355px"
159
+ :destroy-on-close="true"
160
+ >
161
+ <div class="cont group-list">
162
+ <div class="item" v-for="(notifyTemplate,index) in notifyTemplates" :key="index"
163
+ @click="openMoreNotifyMessage(notifyTemplate.notifyType)">
164
+ <i class="iconfont icon-fenzu"></i>
165
+ <span class="name">{{ notifyTemplate.ntName }}</span>
166
+ <!-- <span class="nums">99+</span>-->
167
+ </div>
168
+ </div>
169
+ </el-dialog>
170
+
171
+ </div>
172
+ </template>
173
+
174
+ <script>
175
+ import systemNoticeInfoDialog from '@base/views/user/system_notice/infoDialog.vue';
176
+ import commMenuDialog from '@base/views/user/commMenu/index.vue';
177
+ import notifyMessageDialog from '@base/views/user/notify_message/dialog.vue';
178
+ import notifyMessageInfoDialog from '@base/views/user/notify_message/infoDialog';
179
+
180
+ import {getToken} from "@base/utils/auth";
181
+ import wfContentDialog from "@base/views/user/wf/wf_manage/wfContentDialog";
182
+ import corejsConfig from "@/corejsConfig";
183
+
184
+ export default {
185
+ name: 'home',
186
+ props: {
187
+ wf_manage_url: String
188
+ },
189
+ components: {
190
+ systemNoticeInfoDialog,
191
+ commMenuDialog,
192
+ notifyMessageDialog,
193
+ notifyMessageInfoDialog,
194
+ wfContentDialog
195
+ },
196
+ data() {
197
+ return {
198
+ showNoticeDialog: false,
199
+ showGroupDialog: false,
200
+ notifyTemplates: [],
201
+ userInfo: {},
202
+ companyInfo: {},
203
+ systemNotices: [],
204
+ showSystemNoticeInfoDialog: false,
205
+ csnRow: null,
206
+ headPhotoUrl: '',
207
+ dialogVisible: true,
208
+ unDoWfRows: [],
209
+ wfOption: {},
210
+ showWfDialog: false,
211
+ wfContentOption: {},
212
+ showWfContent: true,
213
+ wfContent: null,
214
+ wfDataId: '',
215
+ showCommMenuDialog: false,
216
+ commMenus: [],
217
+ notifyMessages: [],
218
+ notifyMessageInfoIndex: null,
219
+ notifyMessageInfoId: null,
220
+ unreadMessageNum: 0,
221
+ activating: true,
222
+ wfTimer: null,
223
+ homeConfig: corejsConfig.homeConfig || {}
224
+ };
225
+ },
226
+ activated() {
227
+ this.activating = true;
228
+ if (this.wfTimer) {
229
+ this.timerExcFun(true);
230
+ }
231
+ },
232
+ deactivated() {
233
+ this.activating = false;
234
+ },
235
+ beforeDestroy() {
236
+ this.clearTimer();
237
+ },
238
+ created() {
239
+ this.getUserInfo();
240
+ this.initSystemNotice();
241
+ this.initCommMenu();
242
+ this.initNotifyMessage();
243
+ this.initWfParam();
244
+ this.initWfTimer();
245
+ },
246
+ methods: {
247
+ wfClose() {
248
+ this.timerExcFun(true);
249
+ },
250
+ initWfTimer() {
251
+ this.wfTimer = setInterval(() => {
252
+ this.timerExcFun(false);
253
+ }, 10000);
254
+ this.timerExcFun(true);
255
+ },
256
+ timerExcFun(isLoading) {
257
+ if (!this.activating) {
258
+ return;
259
+ }
260
+ this.getWfInfoList(isLoading);
261
+ this.getUnreadMessageNum(isLoading);
262
+ this.$emit('timerHandle')
263
+ },
264
+ clearTimer() {
265
+ clearInterval(this.wfTimer);
266
+ this.wfTimer = null;
267
+ },
268
+ getUserInfo() {
269
+ this.$http({
270
+ url: USER_PREFIX + '/user/currentUser',
271
+ method: 'post',
272
+ success: res => {
273
+ let userInfo = res.objx;
274
+ this.headPhotoUrl = userInfo.headPhotoUrl ? userInfo.headPhotoUrl : require('@/resources/images' + '/default-header.png');
275
+
276
+ this.userInfo = userInfo;
277
+ }
278
+ });
279
+ this.$http({
280
+ url: USER_PREFIX + '/company_info/getCurrent',
281
+ method: `post`,
282
+ success: res => {
283
+ this.companyInfo = res.objx || {};
284
+ }
285
+ });
286
+ },
287
+ initSystemNotice() {
288
+ this.$http({
289
+ url: USER_PREFIX + '/system_notice/listPage',
290
+ data: {publish: true, searchCount: false},
291
+ method: 'post',
292
+ success: res => {
293
+ this.systemNotices = res.objx && res.objx.records ? res.objx.records : [];
294
+ }
295
+ });
296
+ },
297
+ openSystemNoticeDialog(row) {
298
+ this.csnRow = row || null;
299
+ this.showSystemNoticeInfoDialog = true;
300
+ },
301
+ initUnDoWfInfo() {
302
+ this.$http({
303
+ url: AGILEBPM_PREFIX + '/wf_manage/listPage',
304
+ data: {type: 0, searchCount: false},
305
+ method: 'post',
306
+ success: res => {
307
+ this.unDoWfRows = res.objx.records || [];
308
+ }
309
+ });
310
+ },
311
+ initWfTableList() {
312
+ let that = this;
313
+ let paramColumns = this.wfParamDTOs.map(item => {
314
+ return {
315
+ title: this.$t1(item.paramName),
316
+ field: item.paramKey,
317
+ width: 150
318
+ };
319
+ })
320
+ var statuses = {running: this.$t1('审核中'), back: this.$t1('已驳回'), end: this.$t1('已完成')};
321
+ let tableOption = {
322
+ vue: this,
323
+ tableRef: 'table-wf',
324
+ tableName: 'home-table-wf',
325
+ config: {
326
+ height: 'auto'
327
+ },
328
+ columns: [
329
+ {type: 'checkbox', width: 48, resizable: false, fixed: 'left'},
330
+ {
331
+ title: this.$t1('单据类型'),
332
+ field: 'objTypeName',
333
+ width: 150,
334
+ fixed: 'left'
335
+ },
336
+ {
337
+ title: this.$t1('流程主题'),
338
+ field: 'name',
339
+ width: 150
340
+ },
341
+ {
342
+ title: this.$t1('启动人'),
343
+ field: 'starterName',
344
+ width: 150
345
+ },
346
+ {
347
+ title: this.$t1('当前任务'),
348
+ field: 'taskName',
349
+ width: 150
350
+ },
351
+ {
352
+ title: this.$t1('当前任务用户'),
353
+ field: 'candidateNames',
354
+ width: 150
355
+ },
356
+ {
357
+ title: this.$t1('启动时间'),
358
+ field: 'createDate',
359
+ width: 150
360
+ },
361
+ ...paramColumns,
362
+ {
363
+ width: 47,
364
+ fixed: 'right',
365
+ title: '',
366
+ sortable: false,
367
+ slots: {
368
+ default: ({row}) => {
369
+ return [
370
+ <a
371
+ href="javascript:void(0);"
372
+ class="a-link"
373
+ onclick={() => {
374
+ this.openWfDialog(row);
375
+ }}
376
+ >
377
+ <el-tooltip enterable={false} effect="dark" content={this.$t1('查看')} placement="top"
378
+ popper-class="tooltip-skin">
379
+ <i class="el-icon-edit"/>
380
+ </el-tooltip>
381
+ </a>
382
+ ];
383
+ }
384
+ }
385
+ }
386
+ ]
387
+ };
388
+ this.$vxeTableUtil.initVxeTable(tableOption).then(opts => {
389
+ this.wfOption = opts;
390
+ });
391
+ },
392
+ openWfDialog(row) {
393
+ this.wfContentOption = {
394
+ objId: row.objId,
395
+ url: row.url,
396
+ objTypeCode: row.objTypeCode
397
+ };
398
+ this.showWfDialog = true;
399
+ },
400
+ commMenuCallBack(datas) {
401
+ this.commMenus = datas || [];
402
+ },
403
+ initCommMenu() {
404
+ this.$http({
405
+ url: USER_PREFIX + '/comm_menu/currentList',
406
+ data: {longOne: 0},
407
+ method: 'POST'
408
+ }).then(resultMsg => {
409
+ this.commMenus = resultMsg.objx || [];
410
+ });
411
+ },
412
+ initNotifyMessage() {
413
+ return
414
+ this.$http({
415
+ url: USER_PREFIX + '/notify_message/listPage',
416
+ data: {searchCount: false},
417
+ method: 'post',
418
+ success: res => {
419
+ this.notifyMessages = res.objx && res.objx.records ? res.objx.records : [];
420
+ }
421
+ });
422
+ },
423
+ openNotifyMessageDialog(row) {
424
+ if (row.jumpContent) {
425
+ this.$refs.notifyMessageDialog.open(row, () => {
426
+ row.readed = 1;
427
+ });
428
+ }
429
+ },
430
+ openMoreNotifyMessage(notifyType) {
431
+ let data = {notifyType: (notifyType || '')};
432
+ let view = {
433
+ name: 'notify_message:list',
434
+ query: data
435
+ };
436
+ this.$store.dispatch('tagsView/delCachedView', view).then(() => {
437
+ this.$router.replace(view);
438
+ });
439
+
440
+ if (notifyType) {
441
+ this.showGroupDialog = false;
442
+ }
443
+ },
444
+ checkNotifyMessage(row, index) {
445
+ this.showNoticeDialog = true;
446
+ this.notifyMessageInfoIndex = index;
447
+ this.notifyMessageInfoId = row.id;
448
+ },
449
+ notifyMessageReadHanlde() {
450
+ this.notifyMessages[this.notifyMessageInfoIndex].readed = 1;
451
+ },
452
+ openNotifyTemplateGroupDialog() {
453
+ this.$http({
454
+ url: USER_PREFIX + `/notify_template/listPage`,
455
+ method: `post`,
456
+ data: {searchCount: false},
457
+ isLoading: true,
458
+ // loadingTarget: document.body,
459
+ success: res => {
460
+ this.notifyTemplates = res.objx && res.objx.records ? res.objx.records : [];
461
+ this.showGroupDialog = true;
462
+ }
463
+ });
464
+ },
465
+ rourteTo(route) {
466
+ if (route.type == 4) {
467
+ this.jumpOutLink(route)
468
+ } else if (route.type == 3) {
469
+ let menuCode = route.menuCode;
470
+ let path = "/user/outLink/index/" + menuCode;
471
+ this.$router.push({path: path, query: {url: route.url}});
472
+ } else {
473
+ let path = this.getPath(route)
474
+ if (!path) return
475
+ this.$router.push(path);
476
+ }
477
+ },
478
+ getPath(route3) {
479
+ let item = null;
480
+ let path = null
481
+ if (route3.type == 0) {
482
+ //普通菜单
483
+ if (route3.url) {
484
+ path = route3.route || route3.url;
485
+ let str = "/report/vform/render/";
486
+ if (path.indexOf(str) == 0) {
487
+ } else {
488
+ let pIndex = path.indexOf('?');
489
+ if (pIndex > 0) {
490
+ path = path.substring(0, pIndex);
491
+ }
492
+ }
493
+ }
494
+ } else if (route3.type == 5) {
495
+ //动态表单
496
+ let url = route3.route || route3.url;
497
+ path = url;
498
+ }
499
+ if (path && path.startsWith("@")) {
500
+ path = null
501
+ }
502
+ return path;
503
+ },
504
+ jumpOutLink(route) {
505
+ let path = route.url;
506
+ if (route.type == 4 && path) {
507
+ if (path.indexOf('token={token}') >= 0) {
508
+ path = path.replace('token={token}', 'token=' + getToken())
509
+ }
510
+ window.open(path);
511
+ }
512
+ },
513
+ initWfParam() {
514
+ return this.$http({
515
+ url: USER_PREFIX + '/wf_param/list',
516
+ method: `post`,
517
+ data: {},
518
+ isLoading: true,
519
+ // loadingTarget: document.body,
520
+ modalStrictly: true,
521
+ success: res => {
522
+ this.wfParamDTOs = res.objx || [];
523
+ this.initWfTableList();
524
+ }
525
+ });
526
+ },
527
+ getWfInfoList(isLoading) {
528
+ if (!this.activating) {
529
+ return;
530
+ }
531
+ this.$http({
532
+ url: USER_PREFIX + '/wf_info/listPage',
533
+ data: {type: 0, size: 20, searchCount: false},
534
+ method: 'post',
535
+ isLoading: isLoading,
536
+ modal: isLoading || false,
537
+ // loadingTarget: document.body,
538
+ success: res => {
539
+ this.unDoWfRows = res.objx && res.objx.records ? res.objx.records : [];
540
+ },
541
+ failMsg: false,
542
+ errorMsg: false,
543
+ fail: (res, response) => {
544
+ if (response && response.status == 200) {
545
+ this.$errorMsg(res);
546
+ }
547
+ }
548
+ });
549
+ },
550
+ getUnreadMessageNum(isLoading) {
551
+ if (!this.activating) {
552
+ return;
553
+ }
554
+ return this.$http({
555
+ url: USER_PREFIX + '/notify_message/countMessage',
556
+ method: `post`,
557
+ data: {},
558
+ isLoading: isLoading,
559
+ modal: isLoading || false,
560
+ // loadingTarget: document.body,
561
+ success: res => {
562
+ this.unreadMessageNum = res.objx || 0;
563
+ },
564
+ failMsg: false,
565
+ errorMsg: false,
566
+ fail: (res, response) => {
567
+ if (response && response.status == 200) {
568
+ this.$errorMsg(res);
569
+ }
570
+ }
571
+ });
572
+ },
573
+ wfhandleCallback(flag) {
574
+ if ([1, 2, 3].includes(flag)) {
575
+ this.showWfDialog = false;
576
+ this.wfClose();
577
+ }
578
+ },
579
+ toWfManageList() {
580
+ let url = this.wf_manage_url || '/basic/wf/wf_manage/list'
581
+ this.$router.push(url)
582
+ }
583
+ }
584
+ };
585
+ </script>
586
+ <style lang="scss" scoped>
587
+ @import '~@/styles/variables.scss';
588
+
589
+ body #app .index-home {
590
+ margin: 3px 10px;
591
+ height: calc(100vh - 38px);
592
+ overflow: auto;
593
+
594
+ #containt {
595
+ margin: 0;
596
+ background: none;
597
+ height: auto;
598
+ box-shadow: none;
599
+ }
600
+
601
+ .i-user-info {
602
+ background: url(~@/resources/images/home-img.png) #2a6494 no-repeat 116% 45px;
603
+ margin-bottom: 6px;
604
+ background-size: 181px;
605
+ padding: 14px 38px 11px 16px;
606
+ border-radius: 4px 4px;
607
+ color: #fff;
608
+ font-size: 12px;
609
+ margin-top: 3px;
610
+ height: 95px;
611
+ overflow: hidden;
612
+
613
+ .name {
614
+ opacity: 1;
615
+ font-weight: 600;
616
+ margin: 9px 0 14px;
617
+ font-size: 14px;
618
+ }
619
+
620
+ .img {
621
+ width: 60px;
622
+ height: 60px;
623
+ float: left;
624
+ border-radius: 50%;
625
+ border: solid 4px rgba(255, 255, 255, 0.28);
626
+ margin-right: 10px;
627
+ }
628
+ }
629
+
630
+ .home-notice-list {
631
+ height: 182px;
632
+ margin: 0 -12px;
633
+
634
+ .item {
635
+ padding: 6px 12px;
636
+ font-size: 12px;
637
+ cursor: pointer;
638
+ overflow: hidden;
639
+ text-overflow: ellipsis;
640
+ white-space: nowrap;
641
+
642
+ .time {
643
+ color: #b9b9b9;
644
+ font-size: 12px;
645
+ right: 12px;
646
+ }
647
+
648
+ &:hover {
649
+ color: $baseColor;
650
+ background-color: transparentize($baseColor, 0.97);
651
+
652
+ .time {
653
+ color: $baseColor
654
+ }
655
+ }
656
+
657
+ &.no-read:before {
658
+ content: "";
659
+ width: 6px;
660
+ height: 6px;
661
+ background-color: $red;
662
+ border-radius: 50%;
663
+ vertical-align: middle;
664
+ display: inline-block;
665
+ margin-bottom: 1px;
666
+ }
667
+ }
668
+
669
+ &.to-reed {
670
+ height: 300px;
671
+ overflow: auto;
672
+ margin: -8px -12px;
673
+
674
+
675
+ .item {
676
+ white-space: initial;
677
+ padding: 8px 22px 2px;
678
+ position: relative;
679
+
680
+ &:after {
681
+ content: "";
682
+ position: absolute;
683
+ left: 22px;
684
+ right: 22px;
685
+ border-top: dashed 1px #eee;
686
+ height: 1px;
687
+ bottom: 0;
688
+ }
689
+
690
+ &.noread {
691
+ &:before {
692
+ content: "";
693
+ width: 6px;
694
+ height: 6px;
695
+ background-color: $red;
696
+ border-radius: 50%;
697
+ margin-right: 5px;
698
+ display: inline-block;
699
+ position: absolute;
700
+ left: 10px;
701
+ top: 16px;
702
+ }
703
+ }
704
+
705
+ .el-tag {
706
+ zoom: 0.95;
707
+ padding: 0 5px;
708
+ height: 24px;
709
+ line-height: 24px;
710
+ }
711
+
712
+ // .noread{
713
+ // position: absolute;right:0;top:0;
714
+ // span{transform: rotate(47deg);
715
+ // -ms-transform: rotate(47deg);
716
+ // -moz-transform: rotate(47deg);
717
+ // -webkit-transform: rotate(47deg);
718
+ // -o-transform: rotate(47deg);
719
+ // z-index: 3;
720
+ // color: #FFF;
721
+ // position: absolute;
722
+ // right: 1px;
723
+ // top: 2px;}
724
+ // &:after{
725
+ // content: "\e618";
726
+ // font-size: 62px;
727
+ // font-family: "iconfont";
728
+ // color:$red
729
+ // }
730
+ // }
731
+ .time {
732
+ position: relative;
733
+ right: 0;
734
+ margin-left: 12px;
735
+ }
736
+
737
+ .name {
738
+ overflow: hidden;
739
+ text-overflow: ellipsis;
740
+ white-space: nowrap;
741
+ margin-top: 3px;
742
+ display: block;
743
+ margin-bottom: 4px;
744
+ }
745
+
746
+ &:hover .name {
747
+ color: $baseColor
748
+ }
749
+
750
+ &:first-child:before {
751
+ border-top: none
752
+ }
753
+
754
+ .btns {
755
+ text-align: right;
756
+
757
+ .el-link {
758
+ font-size: 12px;
759
+ display: inline-block;
760
+ margin-left: 14px;
761
+
762
+ i {
763
+ font-size: 12px;
764
+ margin-right: 3px;
765
+ }
766
+ }
767
+ }
768
+ }
769
+
770
+ }
771
+ }
772
+
773
+ .fast-box {
774
+ margin: 6px 4px 4px;
775
+ overflow: hidden;
776
+
777
+ .item {
778
+ width: 118px;
779
+ text-align: center;
780
+ float: left;
781
+ margin-right: 14px;
782
+
783
+ p {
784
+ color: #2a6494;
785
+ border: solid 1px #e2e2e2;
786
+ margin: 3.5px 4px;
787
+ width: calc(100% - 4px);
788
+ border-radius: 6px;
789
+ position: relative;
790
+ height: 54px;
791
+ line-height: 54px;
792
+ text-align: left;
793
+ padding-left: 14px;
794
+ font-size: 12px;
795
+
796
+ i {
797
+ font-size: 14px;
798
+ vertical-align: middle;
799
+ margin-right: 2px;
800
+ }
801
+
802
+ span {
803
+ vertical-align: middle;
804
+ }
805
+
806
+ &:before {
807
+ content: '';
808
+ width: 4px;
809
+ height: 24px;
810
+ display: inline-block;
811
+ background: #225279b8;
812
+ position: absolute;
813
+ left: -1px;
814
+ top: 50%;
815
+ margin-top: -12px;
816
+ }
817
+
818
+ &:hover {
819
+ background-color: $baseColor;
820
+ color: #fff;
821
+ border-color: $baseColor;
822
+
823
+ &:before {
824
+ background: #fff;
825
+ }
826
+ }
827
+ }
828
+ }
829
+ }
830
+
831
+ .need-to {
832
+ height: 332px;
833
+ }
834
+
835
+ .table-box {
836
+ width: 100%;
837
+ font-size: 12px;
838
+
839
+ th {
840
+ line-height: 32px;
841
+ background: #f7f7f7;
842
+ font-weight: 400;
843
+ color: #808080;
844
+ padding: 0 6px;
845
+ }
846
+
847
+ td {
848
+ text-align: center;
849
+ line-height: 34px;
850
+ color: #424242;
851
+ border-bottom: solid 1px #eee;
852
+ padding: 0 6px;
853
+ }
854
+
855
+ tr:last-child td {
856
+ border-bottom: none;
857
+ }
858
+ }
859
+ }
860
+
861
+ .box-card .more {
862
+ background-color: #f7f7f7;
863
+ }
864
+
865
+ .group-list {
866
+ padding: 18px 18px 6px 32px !important;
867
+ height: 400px;
868
+ overflow: auto;
869
+
870
+ .item {
871
+ position: relative;
872
+ height: 36px;
873
+ border: solid 1px #eee;
874
+ line-height: 34px;
875
+ border-radius: 2px;
876
+ padding: 0 42px 0 14px;
877
+ margin-bottom: 10px;
878
+ cursor: pointer;
879
+
880
+ &::before {
881
+ content: "";
882
+ width: 8px;
883
+ height: 8px;
884
+ border: solid 1px #eee;
885
+ border-radius: 50%;
886
+ display: inline-block;
887
+ position: absolute;
888
+ left: -16px;
889
+ top: 13px;
890
+ }
891
+
892
+ &.checked {
893
+ &:before {
894
+ content: "";
895
+ background-color: $baseColor;
896
+ border-color: $baseColor
897
+ }
898
+
899
+ background-color: transparentize($baseColor, 0.9);
900
+ color: $baseColor;
901
+ border-color: $baseColor;
902
+ }
903
+
904
+ i {
905
+ font-size: 12px;
906
+ vertical-align: middle;
907
+ }
908
+
909
+ .name {
910
+ font-size: 12px;
911
+ margin-left: 8px;
912
+ vertical-align: middle;
913
+ }
914
+
915
+ .nums {
916
+ width: 22px;
917
+ height: 22px;
918
+ border-radius: 50%;
919
+ display: inline-block;
920
+ position: absolute;
921
+ right: 5px;
922
+ top: 6px;
923
+ color: #FFF;
924
+ font-size: 12px;
925
+ background-color: $red;
926
+ line-height: 22px;
927
+ text-align: center;
928
+ }
929
+ }
930
+ }
931
+
932
+ .notice-box {
933
+ background-color: #2a649429;
934
+ border-radius: 0 0 4px 4px;
935
+ padding: 9px 12px;
936
+ margin-bottom: 5px;
937
+ margin-top: -6px;
938
+ position: relative;
939
+ z-index: 2;
940
+ font-size: 13px;
941
+ color: #212121;
942
+ overflow: hidden;
943
+
944
+ .txt {
945
+ line-height: 28px;
946
+ font-size: 12px;
947
+ position: relative;
948
+ display: inline-block;
949
+ cursor: pointer;
950
+
951
+ &:before {
952
+ content: "";
953
+ background-color: $baseColor;
954
+ width: 4px;
955
+ height: 20px;
956
+ border-radius: 2px;
957
+ display: inline-block;
958
+ vertical-align: middle;
959
+ margin-right: 18px;
960
+ }
961
+
962
+ i {
963
+ font-size: 14px;
964
+ margin-right: 12px;
965
+ vertical-align: middle;
966
+ }
967
+
968
+ > span {
969
+ vertical-align: middle;
970
+ height: 22px;
971
+ line-height: 22px;
972
+ display: inline-block;
973
+
974
+ b {
975
+ color: #FFF;
976
+ margin: 0 4px;
977
+ font-size: 16px;
978
+ vertical-align: middle;
979
+ background: #FF5615;
980
+ border-radius: 50%;
981
+ display: inline-block;
982
+ padding: 4px;
983
+ font-weight: 200;
984
+ line-height: 1;
985
+ }
986
+ }
987
+
988
+ }
989
+
990
+ .el-button {
991
+ position: absolute;
992
+ right: 46px;
993
+ padding: 0;
994
+ height: 22px;
995
+ line-height: 22px;
996
+ min-width: 22px;
997
+ text-align: center;
998
+ border-radius: 2px;
999
+ top: 50%;
1000
+ margin-top: -11px;
1001
+
1002
+ i {
1003
+ font-size: 15px;
1004
+ }
1005
+
1006
+ &:hover {
1007
+ background-color: $baseColor;
1008
+ color: #FFF;
1009
+ }
1010
+
1011
+ &.more {
1012
+ right: 12px;
1013
+ background: #f7f7f7;
1014
+
1015
+ &:hover {
1016
+ color: $baseColor
1017
+ }
1018
+ }
1019
+ }
1020
+
1021
+ ::v-deep .el-card.is-always-shadow {
1022
+ box-shadow: 0 2px 2px 0 rgb(0 0 0 / 6%);
1023
+ }
1024
+ }
1025
+ </style>