cloud-web-corejs 1.1.0-dev.6 → 1.1.0-dev.61

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 (499) hide show
  1. package/README.md +38 -0
  2. package/bin/core-resources.js +16 -0
  3. package/bin/create-child-app.js +34 -0
  4. package/docs/child-app/README.md +95 -0
  5. package/docs/child-app/activiti-resources.md +63 -0
  6. package/docs/child-app/generate-prompt.md +55 -0
  7. package/docs/child-app/luckysheet-resources.md +80 -0
  8. package/docs/child-app/public-resources-plan.md +288 -0
  9. package/docs/child-app/resources-implementation.md +101 -0
  10. package/docs/child-app/tinymce-resources.md +88 -0
  11. package/docs/child-app/validation.md +34 -0
  12. package/docs/qiankun/346/216/245/345/205/245/345/215/217/350/256/256.md +298 -0
  13. package/docs/qiankun/350/257/246/346/203/205/346/211/277/350/275/275/345/255/220/345/272/224/347/224/250/345/257/271/346/216/245/346/270/205/345/215/225.md +111 -0
  14. package/package.json +29 -4
  15. package/resource-tools/index.js +126 -0
  16. package/src/app-bootstrap.js +531 -0
  17. package/src/app-bootstrap.sync.js +502 -0
  18. package/src/boot-assets.legacy.js +13 -0
  19. package/src/boot-assets.next.js +7 -0
  20. package/src/components/Qrcode/fileParse.vue +11 -0
  21. package/src/components/Tinymce/dynamicLoadScript.js +51 -59
  22. package/src/components/Tinymce/index.vue +382 -336
  23. package/src/components/Tinymce/mce-chrome.scss +150 -0
  24. package/src/components/VabUpload/image-viewer.vue +18 -10
  25. package/src/components/VabUpload/index.js +11 -4
  26. package/src/components/VabUpload/index.vue +1 -1
  27. package/src/components/VabUpload/mixins/fileLibraryDialog.js +2 -0
  28. package/src/components/VabUpload/mixins.js +72 -40
  29. package/src/components/VabUpload/partUploadConfig.js +95 -0
  30. package/src/components/VabUpload/privateProfileDialogMixins.js +2 -0
  31. package/src/components/VabUpload/style.scss +282 -0
  32. package/src/components/VabUpload/view.vue +19 -18
  33. package/src/components/baseArea/index.vue +2 -2
  34. package/src/components/baseInputExport/mixins.js +1 -6
  35. package/src/components/bizTab/BizTabListPage.vue +66 -33
  36. package/src/components/bizTab/README.md +3 -1
  37. package/src/components/bizTab/bizBillDetailMixin.js +2 -0
  38. package/src/components/code-editor/ace-chrome.scss +17 -0
  39. package/src/components/code-editor/index.vue +361 -340
  40. package/src/components/errorMsg/index.vue +142 -13
  41. package/src/components/errorMsg/mixins.js +53 -0
  42. package/src/components/excelExport/conditionExportConfig.js +112 -0
  43. package/src/components/excelExport/exportColumnMemory.js +118 -0
  44. package/src/components/excelExport/exportFieldDialog.vue +50 -38
  45. package/src/components/excelExport/exportType.js +8 -0
  46. package/src/components/excelExport/index.js +30 -13
  47. package/src/components/excelExport/index.vue +7 -1
  48. package/src/components/excelExport/mixins.js +782 -293
  49. package/src/components/excelImport/index.vue +156 -156
  50. package/src/components/excelImport/mixins.js +888 -834
  51. package/src/components/fileLibrary/mixins/indexMixins.js +2 -0
  52. package/src/components/fileLibrary/style.scss +579 -0
  53. package/src/components/formDialog/index.vue +11 -8
  54. package/src/components/hiprint/style.scss +188 -0
  55. package/src/components/hiprint/view/json-view.vue +4 -4
  56. package/src/components/jdPrint/mixins.js +2 -0
  57. package/src/components/jsonImport/index.vue +1 -1
  58. package/src/components/jsonImport/mixins.js +6 -10
  59. package/src/components/langImport/index.vue +1 -1
  60. package/src/components/langImport/mixins.js +6 -10
  61. package/src/components/luckysheet/loadResources.js +64 -0
  62. package/src/components/luckysheet/view.vue +239 -210
  63. package/src/components/mobile/buttonGroup/index.vue +1 -1
  64. package/src/components/mobile/wf/addTaskUserdialog.vue +100 -80
  65. package/src/components/mobile/wf/content.vue +1734 -1662
  66. package/src/components/mobile/wf/deleteTaskUserDialog.vue +73 -54
  67. package/src/components/mobile/wf/selectUserDialog.vue +118 -0
  68. package/src/components/mobile/wf/setCandidateDialog.vue +69 -48
  69. package/src/components/mobile/wf/urgingDialog.vue +75 -52
  70. package/src/components/mobile/wf/wfModifyDialog.vue +4 -0
  71. package/src/components/obsUpload/index.js +4 -1
  72. package/src/components/obsUpload/index.vue +1 -1
  73. package/src/components/obsUpload/mixins.js +45 -15
  74. package/src/components/onlineTalk/index.vue +4 -4
  75. package/src/components/onlineTalk/mixins.js +21 -7
  76. package/src/components/table/index.js +96 -81
  77. package/src/components/table/plugins/cell-area/index.js +10 -3
  78. package/src/components/table/style.scss +1399 -0
  79. package/src/components/table/vxeFilter/mixin.js +28 -18
  80. package/src/components/wf/content.vue +3 -2
  81. package/src/components/wf/content2.vue +1 -1
  82. package/src/components/wf/style.scss +265 -0
  83. package/src/components/wf/wf.js +7 -0
  84. package/src/components/wf/wfActionItems.js +3 -0
  85. package/src/components/wf/wfStartDialog.vue +1 -0
  86. package/src/components/wf/wfTransferEnabled.js +54 -0
  87. package/src/components/wf/wfUtil.js +47 -29
  88. package/src/components/wf/wfVisibility.js +6 -0
  89. package/src/components/xform/docs/2026-07 table/344/270/216excelExport/344/277/256/345/244/215/345/217/212/345/257/274/345/207/272/344/274/230/345/214/226.md" +64 -57
  90. package/src/components/xform/docs/2026-08 xform H5 P0 /345/256/236/347/216/260/350/247/204/346/240/274.md" +1 -1
  91. package/src/components/xform/docs/2026-08 xform /347/247/273/345/212/250/347/253/257/345/270/203/345/261/200/345/257/271/351/275/220 bill_setting /346/226/271/346/241/210.md" +1 -1
  92. package/src/components/xform/docs/2026-09 /345/212/250/346/200/201/345/255/227/346/256/265/350/247/204/345/210/231/344/270/216/346/265/201/347/250/213/346/216/247/345/210/266/346/211/247/350/241/214/351/241/272/345/272/217/350/220/275/345/234/260/346/226/271/346/241/210.md" +409 -0
  93. package/src/components/xform/docs/2026-09 /346/235/241/344/273/266/345/257/274/345/207/272/345/244/247/346/225/260/346/215/256/351/207/217/345/264/251/346/272/203/346/216/222/346/237/245.md" +389 -0
  94. package/src/components/xform/docs/2026-09 /346/265/217/350/247/210/345/231/250/345/264/251/346/272/203/346/262/273/347/220/206P0/344/273/243/347/240/201/350/257/204/345/256/241.md" +255 -0
  95. package/src/components/xform/docs/2026-09 /346/265/217/350/247/210/345/231/250/345/264/251/346/272/203/346/262/273/347/220/206P0/346/265/213/350/257/225/351/252/214/350/257/201/345/256/236/346/226/275/346/226/207/346/241/243.md" +595 -0
  96. package/src/components/xform/docs/2026-09 /347/274/226/350/276/221/350/241/250/350/241/214/345/206/205/344/277/235/345/255/230/346/240/241/351/252/214/350/214/203/345/233/264/344/270/216/345/210/227/345/277/205/345/241/253/350/247/243/346/236/220/344/277/256/345/244/215.md" +233 -0
  97. package/src/components/xform/docs/2026-09 /350/241/250/345/215/225/345/257/274/345/205/245/351/200/232/351/201/223/346/242/263/347/220/206/344/270/216/350/220/275/345/234/260/346/226/271/346/241/210.md" +745 -0
  98. package/src/components/xform/docs//346/265/217/350/247/210/345/231/250/345/264/251/346/272/203/346/262/273/347/220/206/344/270/216/344/277/256/345/244/215/350/220/275/345/234/260/346/226/271/346/241/210.md +324 -0
  99. package/src/components/xform/form-designer/designer.js +2133 -2100
  100. package/src/components/xform/form-designer/form-widget/container-widget/data-table-mixin.js +7 -0
  101. package/src/components/xform/form-designer/form-widget/container-widget/data-table-widget.vue +4 -2
  102. package/src/components/xform/form-designer/form-widget/container-widget/detail-h5-widget.vue +243 -227
  103. package/src/components/xform/form-designer/form-widget/container-widget/h5-card-pane-widget.vue +228 -207
  104. package/src/components/xform/form-designer/form-widget/container-widget/h5-card-widget.vue +165 -136
  105. package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +30 -4
  106. package/src/components/xform/form-designer/form-widget/dialog/importDialog.vue +190 -185
  107. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin.js +2657 -1774
  108. package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +27 -4
  109. package/src/components/xform/form-designer/form-widget/field-widget/a-link-widget.vue +1 -1
  110. package/src/components/xform/form-designer/form-widget/field-widget/a-text-widget.vue +1 -1
  111. package/src/components/xform/form-designer/form-widget/field-widget/area-select-widget.vue +1 -1
  112. package/src/components/xform/form-designer/form-widget/field-widget/autocomplete-widget.vue +1 -1
  113. package/src/components/xform/form-designer/form-widget/field-widget/baseAttachment-widget.vue +1 -1
  114. package/src/components/xform/form-designer/form-widget/field-widget/button-widget.vue +1 -1
  115. package/src/components/xform/form-designer/form-widget/field-widget/cascader-widget.vue +1 -1
  116. package/src/components/xform/form-designer/form-widget/field-widget/census-widget.vue +1 -1
  117. package/src/components/xform/form-designer/form-widget/field-widget/checkbox-widget.vue +1 -1
  118. package/src/components/xform/form-designer/form-widget/field-widget/color-widget.vue +1 -1
  119. package/src/components/xform/form-designer/form-widget/field-widget/copy_button-widget.vue +1 -1
  120. package/src/components/xform/form-designer/form-widget/field-widget/date-range-widget.vue +1 -1
  121. package/src/components/xform/form-designer/form-widget/field-widget/date-widget.vue +1 -1
  122. package/src/components/xform/form-designer/form-widget/field-widget/descriptions-widget.vue +1 -1
  123. package/src/components/xform/form-designer/form-widget/field-widget/divider-widget.vue +1 -1
  124. package/src/components/xform/form-designer/form-widget/field-widget/download-button-widget.vue +1 -1
  125. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-item-widget.vue +1 -1
  126. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-widget.vue +35 -4
  127. package/src/components/xform/form-designer/form-widget/field-widget/echart-bar-widget.vue +1 -1
  128. package/src/components/xform/form-designer/form-widget/field-widget/echart-category-widget.vue +1 -1
  129. package/src/components/xform/form-designer/form-widget/field-widget/echart-pie-widget.vue +1 -1
  130. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +64 -10
  131. package/src/components/xform/form-designer/form-widget/field-widget/file-upload-widget.vue +1 -1
  132. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +14 -4
  133. package/src/components/xform/form-designer/form-widget/field-widget/html-text-widget.vue +1 -1
  134. package/src/components/xform/form-designer/form-widget/field-widget/import-button-widget.vue +19 -6
  135. package/src/components/xform/form-designer/form-widget/field-widget/import2-button-widget.vue +1 -1
  136. package/src/components/xform/form-designer/form-widget/field-widget/index.js +10 -1
  137. package/src/components/xform/form-designer/form-widget/field-widget/input-batch-widget.vue +1 -1
  138. package/src/components/xform/form-designer/form-widget/field-widget/input-widget.vue +29 -3
  139. package/src/components/xform/form-designer/form-widget/field-widget/multiSearch-widget.vue +1 -1
  140. package/src/components/xform/form-designer/form-widget/field-widget/news-list-widget.vue +1 -1
  141. package/src/components/xform/form-designer/form-widget/field-widget/number-widget.vue +1 -1
  142. package/src/components/xform/form-designer/form-widget/field-widget/oplog-widget.vue +1 -1
  143. package/src/components/xform/form-designer/form-widget/field-widget/picture-upload-widget.vue +1 -1
  144. package/src/components/xform/form-designer/form-widget/field-widget/print-button-widget.vue +1 -1
  145. package/src/components/xform/form-designer/form-widget/field-widget/print-detail-button-widget.vue +1 -1
  146. package/src/components/xform/form-designer/form-widget/field-widget/project-tag-widget.vue +1 -1
  147. package/src/components/xform/form-designer/form-widget/field-widget/radio-widget.vue +1 -1
  148. package/src/components/xform/form-designer/form-widget/field-widget/rate-widget.vue +1 -1
  149. package/src/components/xform/form-designer/form-widget/field-widget/rich-editor-widget.vue +1 -1
  150. package/src/components/xform/form-designer/form-widget/field-widget/row-col-select-widget.vue +64 -0
  151. package/src/components/xform/form-designer/form-widget/field-widget/save_submit_wf_button-widget.vue +1 -1
  152. package/src/components/xform/form-designer/form-widget/field-widget/script-input-widget.vue +1 -1
  153. package/src/components/xform/form-designer/form-widget/field-widget/search_button-widget.vue +1 -1
  154. package/src/components/xform/form-designer/form-widget/field-widget/select-export-button-widget.vue +1 -1
  155. package/src/components/xform/form-designer/form-widget/field-widget/select-export-item-button-widget.vue +6 -2
  156. package/src/components/xform/form-designer/form-widget/field-widget/select-widget.vue +1 -1
  157. package/src/components/xform/form-designer/form-widget/field-widget/singerSearch-widget.vue +1 -1
  158. package/src/components/xform/form-designer/form-widget/field-widget/singleUpload-widget.vue +145 -145
  159. package/src/components/xform/form-designer/form-widget/field-widget/slider-widget.vue +1 -1
  160. package/src/components/xform/form-designer/form-widget/field-widget/static-content-wrapper.vue +1 -1
  161. package/src/components/xform/form-designer/form-widget/field-widget/static-text-widget.vue +1 -1
  162. package/src/components/xform/form-designer/form-widget/field-widget/status-widget.vue +1 -1
  163. package/src/components/xform/form-designer/form-widget/field-widget/switch-widget.vue +1 -1
  164. package/src/components/xform/form-designer/form-widget/field-widget/table-export-button-widget.vue +3 -2
  165. package/src/components/xform/form-designer/form-widget/field-widget/tempStorage-widget.vue +1 -1
  166. package/src/components/xform/form-designer/form-widget/field-widget/text-widget.vue +1 -1
  167. package/src/components/xform/form-designer/form-widget/field-widget/textarea-widget.vue +1 -1
  168. package/src/components/xform/form-designer/form-widget/field-widget/time-range-widget.vue +1 -1
  169. package/src/components/xform/form-designer/form-widget/field-widget/time-widget.vue +1 -1
  170. package/src/components/xform/form-designer/form-widget/field-widget/title-head-widget.vue +1 -1
  171. package/src/components/xform/form-designer/form-widget/field-widget/vabSearch-widget.vue +1 -1
  172. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +3 -3
  173. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload2-widget.vue +25 -1
  174. package/src/components/xform/form-designer/form-widget/field-widget/vue-page-widget.vue +1 -1
  175. package/src/components/xform/form-designer/indexMixin.js +27 -0
  176. package/src/components/xform/form-designer/setting-panel/form-dynamicField-setting.vue +687 -602
  177. package/src/components/xform/form-designer/setting-panel/form-setting.vue +269 -36
  178. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +335 -12
  179. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +23 -7
  180. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-temp-edito.vue +13 -1
  181. package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +846 -860
  182. package/src/components/xform/form-designer/setting-panel/property-editor/container-tab/tab-lazyRender-editor.vue +27 -0
  183. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onTabChange-editor.vue +28 -0
  184. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onTabClick-editor.vue +28 -0
  185. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import-button-editor.vue +62 -1
  186. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +142 -2
  187. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/empty-number-input.vue +51 -0
  188. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-item-button-editor.vue +27 -2
  189. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/table-export-button-editor.vue +33 -3
  190. package/src/components/xform/form-designer/setting-panel/property-editor/project-tag-editor.vue +2 -4
  191. package/src/components/xform/form-designer/setting-panel/property-editor/suffixIconClickable-editor.vue +23 -0
  192. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +18 -4
  193. package/src/components/xform/form-designer/toolbar-panel/index.vue +884 -874
  194. package/src/components/xform/form-designer/toolbar-panel/indexMixin.js +13 -0
  195. package/src/components/xform/form-designer/widget-panel/index.vue +11 -7
  196. package/src/components/xform/form-designer/widget-panel/indexMixin.js +15 -2
  197. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +152 -9
  198. package/src/components/xform/form-render/container-item/containerItemMixin.js +93 -8
  199. package/src/components/xform/form-render/container-item/data-table-item.vue +352 -347
  200. package/src/components/xform/form-render/container-item/data-table-mixin.js +7261 -5985
  201. package/src/components/xform/form-render/container-item/detail-h5-item.vue +48 -19
  202. package/src/components/xform/form-render/container-item/detail-item.vue +350 -446
  203. package/src/components/xform/form-render/container-item/dynamicFieldMixin.js +55 -1
  204. package/src/components/xform/form-render/container-item/list-h5-item.vue +261 -178
  205. package/src/components/xform/form-render/container-item/panel-item.vue +1 -1
  206. package/src/components/xform/form-render/container-item/tab-item.vue +177 -129
  207. package/src/components/xform/form-render/fieldControlEngine.js +218 -0
  208. package/src/components/xform/form-render/fieldControlMixin.js +536 -0
  209. package/src/components/xform/form-render/index.vue +164 -153
  210. package/src/components/xform/form-render/indexMixin.js +5443 -5311
  211. package/src/components/xform/form-render/pageDialogScope.js +54 -0
  212. package/src/components/xform/icon-picker/index.vue +1 -1
  213. package/src/components/xform/lang/en-US.js +8 -0
  214. package/src/components/xform/lang/zh-CN.js +9 -0
  215. package/src/components/xform/mixins/businessLock.js +59 -0
  216. package/src/components/xform/mixins/defaultHandle.js +713 -707
  217. package/src/components/xform/mixins/scriptHttp.js +42 -21
  218. package/src/components/xform/mixins/wfStart.js +105 -0
  219. package/src/components/xform/mixins/wfVisibility.js +33 -0
  220. package/src/components/xform/styles/census.scss +288 -0
  221. package/src/components/xform/styles/containers.scss +215 -0
  222. package/src/components/xform/styles/designer.scss +904 -0
  223. package/src/components/xform/styles/detail-temp.scss +71 -0
  224. package/src/components/xform/styles/h5-designer.scss +191 -0
  225. package/src/components/xform/styles/h5-runtime.scss +520 -0
  226. package/src/components/xform/styles/h5.scss +836 -516
  227. package/src/components/xform/styles/skins.scss +398 -0
  228. package/src/components/xform/styles/table-layout.scss +91 -0
  229. package/src/components/xform/styles/titles.scss +255 -0
  230. package/src/components/xform/utils/dynamicSchemaUtil.js +385 -361
  231. package/src/components/xform/utils/fixedQueryUtil.js +29 -4
  232. package/src/components/xform/utils/serviceNameCache.js +69 -0
  233. package/src/components/xform/utils/tableColumnHelper.js +46 -4
  234. package/src/components/xform/utils/util.js +1776 -1708
  235. package/src/core-resources/css/h5.scss +548 -0
  236. package/src/core-resources/css/iconfont.css +1447 -0
  237. package/src/core-resources/font/iconfont.ttf +0 -0
  238. package/src/core-resources/font/iconfont.woff +0 -0
  239. package/src/core-resources/font/iconfont.woff2 +0 -0
  240. package/src/core-resources/images/default-header.png +0 -0
  241. package/src/core-resources/images/ico-default_wenjian.svg +1 -0
  242. package/src/core-resources/images/ico-excel.svg +1 -0
  243. package/src/core-resources/images/ico-ftl.svg +7 -0
  244. package/src/core-resources/images/ico-html.svg +1 -0
  245. package/src/core-resources/images/ico-java.svg +1 -0
  246. package/src/core-resources/images/ico-music.svg +1 -0
  247. package/src/core-resources/images/ico-pdf.svg +1 -0
  248. package/src/core-resources/images/ico-photo.svg +1 -0
  249. package/src/core-resources/images/ico-ppt.svg +1 -0
  250. package/src/core-resources/images/ico-psd.svg +1 -0
  251. package/src/core-resources/images/ico-service.png +0 -0
  252. package/src/core-resources/images/ico-txt.svg +1 -0
  253. package/src/core-resources/images/ico-video.svg +1 -0
  254. package/src/core-resources/images/ico-vue.svg +8 -0
  255. package/src/core-resources/images/ico-wenjianjia.svg +1 -0
  256. package/src/core-resources/images/ico-wrod.svg +1 -0
  257. package/src/core-resources/images/ico-xml.svg +1 -0
  258. package/src/core-resources/images/ico-yasuobao.svg +1 -0
  259. package/src/core-resources/images/icon-error.png +0 -0
  260. package/src/core-resources/images/icon-tips.png +0 -0
  261. package/src/core-resources/images/nodata.png +0 -0
  262. package/src/core-resources/images/nodata2.png +0 -0
  263. package/src/directive/append-to-body/index.js +48 -0
  264. package/src/directive/el-dialog-center/index.js +3 -2
  265. package/src/directive/el-drag-dialog/drag.js +33 -4
  266. package/src/icons/index.js +9 -0
  267. package/src/icons/svg/404.svg +1 -0
  268. package/src/icons/svg/alert.svg +1 -0
  269. package/src/icons/svg/bug.svg +1 -0
  270. package/src/icons/svg/button.svg +1 -0
  271. package/src/icons/svg/card.svg +1 -0
  272. package/src/icons/svg/cascader-field.svg +1 -0
  273. package/src/icons/svg/census.svg +1 -0
  274. package/src/icons/svg/chart.svg +1 -0
  275. package/src/icons/svg/checkbox-field.svg +1 -0
  276. package/src/icons/svg/clipboard.svg +1 -0
  277. package/src/icons/svg/color-field.svg +1 -0
  278. package/src/icons/svg/component.svg +1 -0
  279. package/src/icons/svg/custom-component.svg +1 -0
  280. package/src/icons/svg/dashboard.svg +1 -0
  281. package/src/icons/svg/data-table.svg +1 -0
  282. package/src/icons/svg/date-field.svg +1 -0
  283. package/src/icons/svg/date-range-field.svg +1 -0
  284. package/src/icons/svg/descriptions.svg +1 -0
  285. package/src/icons/svg/divider.svg +1 -0
  286. package/src/icons/svg/document.svg +1 -0
  287. package/src/icons/svg/documentation.svg +1 -0
  288. package/src/icons/svg/drag.svg +1 -0
  289. package/src/icons/svg/echart-category.svg +1 -0
  290. package/src/icons/svg/echart-pie.svg +1 -0
  291. package/src/icons/svg/echart.svg +1 -0
  292. package/src/icons/svg/edit.svg +1 -0
  293. package/src/icons/svg/education.svg +1 -0
  294. package/src/icons/svg/email.svg +1 -0
  295. package/src/icons/svg/example.svg +1 -0
  296. package/src/icons/svg/excel.svg +1 -0
  297. package/src/icons/svg/exit-fullscreen.svg +1 -0
  298. package/src/icons/svg/eye-open.svg +1 -0
  299. package/src/icons/svg/eye.svg +1 -0
  300. package/src/icons/svg/file-upload-field.svg +1 -0
  301. package/src/icons/svg/form.svg +1 -0
  302. package/src/icons/svg/fullscreen.svg +1 -0
  303. package/src/icons/svg/github.svg +1 -0
  304. package/src/icons/svg/grid.svg +1 -0
  305. package/src/icons/svg/guide.svg +1 -0
  306. package/src/icons/svg/html-text.svg +1 -0
  307. package/src/icons/svg/ico-more.svg +1 -0
  308. package/src/icons/svg/ico-wenjianjia.svg +1 -0
  309. package/src/icons/svg/icon.svg +1 -0
  310. package/src/icons/svg/input-batch.svg +1 -0
  311. package/src/icons/svg/international.svg +1 -0
  312. package/src/icons/svg/language.svg +1 -0
  313. package/src/icons/svg/link.svg +1 -0
  314. package/src/icons/svg/list-export.svg +1 -0
  315. package/src/icons/svg/list.svg +1 -0
  316. package/src/icons/svg/lock.svg +1 -0
  317. package/src/icons/svg/message.svg +1 -0
  318. package/src/icons/svg/money.svg +1 -0
  319. package/src/icons/svg/nested.svg +1 -0
  320. package/src/icons/svg/news-list.svg +1 -0
  321. package/src/icons/svg/node-tree.svg +1 -0
  322. package/src/icons/svg/number-field.svg +1 -0
  323. package/src/icons/svg/password.svg +1 -0
  324. package/src/icons/svg/pdf.svg +1 -0
  325. package/src/icons/svg/people.svg +1 -0
  326. package/src/icons/svg/peoples.svg +1 -0
  327. package/src/icons/svg/picture-upload-field.svg +1 -0
  328. package/src/icons/svg/qq.svg +1 -0
  329. package/src/icons/svg/query.svg +1 -0
  330. package/src/icons/svg/radio-field.svg +1 -0
  331. package/src/icons/svg/rate-field.svg +1 -0
  332. package/src/icons/svg/redo.svg +1 -0
  333. package/src/icons/svg/rich-editor-field.svg +1 -0
  334. package/src/icons/svg/search.svg +1 -0
  335. package/src/icons/svg/searchbox.svg +1 -0
  336. package/src/icons/svg/section.svg +1 -0
  337. package/src/icons/svg/select-field.svg +1 -0
  338. package/src/icons/svg/shopping.svg +1 -0
  339. package/src/icons/svg/size.svg +1 -0
  340. package/src/icons/svg/skill.svg +1 -0
  341. package/src/icons/svg/slider-field.svg +1 -0
  342. package/src/icons/svg/slot-component.svg +1 -0
  343. package/src/icons/svg/slot-field.svg +1 -0
  344. package/src/icons/svg/star.svg +1 -0
  345. package/src/icons/svg/static-text.svg +1 -0
  346. package/src/icons/svg/status.svg +1 -0
  347. package/src/icons/svg/sub-form.svg +1 -0
  348. package/src/icons/svg/switch-field.svg +1 -0
  349. package/src/icons/svg/tab.svg +1 -0
  350. package/src/icons/svg/table.svg +1 -0
  351. package/src/icons/svg/text-field.svg +1 -0
  352. package/src/icons/svg/text.svg +1 -0
  353. package/src/icons/svg/textarea-field.svg +1 -0
  354. package/src/icons/svg/theme.svg +1 -0
  355. package/src/icons/svg/time-field.svg +1 -0
  356. package/src/icons/svg/time-range-field.svg +1 -0
  357. package/src/icons/svg/tips-text.svg +1 -0
  358. package/src/icons/svg/title-head.svg +1 -0
  359. package/src/icons/svg/tree-pane.svg +1 -0
  360. package/src/icons/svg/tree-table.svg +1 -0
  361. package/src/icons/svg/tree.svg +1 -0
  362. package/src/icons/svg/undo.svg +1 -0
  363. package/src/icons/svg/uploadbox.svg +1 -0
  364. package/src/icons/svg/user.svg +1 -0
  365. package/src/icons/svg/vf-box.svg +1 -0
  366. package/src/icons/svg/vf-dialog.svg +1 -0
  367. package/src/icons/svg/vf-drawer.svg +1 -0
  368. package/src/icons/svg/vue-sfc.svg +1 -0
  369. package/src/icons/svg/wechat.svg +1 -0
  370. package/src/icons/svg/zip.svg +1 -0
  371. package/src/index.js +2 -510
  372. package/src/index.next.js +5 -0
  373. package/src/index.sync.js +5 -0
  374. package/src/layout/components/Sidebar/default.vue +1656 -1655
  375. package/src/layout/components/TagsView/index.vue +330 -323
  376. package/src/layout/components/TagsView/style.scss +92 -0
  377. package/src/layout/components/watermark/index.vue +1 -1
  378. package/src/layout/defaultLayout.vue +2 -2
  379. package/src/router/index.js +43 -48
  380. package/src/router/modules/customer.js +12 -0
  381. package/src/store/modules/settings.js +1 -1
  382. package/src/store/modules/tagsView.js +241 -217
  383. package/src/store/modules/user.js +16 -12
  384. package/src/styles/btn.scss +315 -0
  385. package/src/styles/dialog.scss +1710 -0
  386. package/src/styles/element-ui.scss +1076 -0
  387. package/src/styles/element-variables.scss +31 -0
  388. package/src/styles/global.scss +115 -0
  389. package/src/styles/index.scss +245 -0
  390. package/src/styles/layout-skins.scss +840 -0
  391. package/src/styles/legacy-base.scss +19 -0
  392. package/src/styles/menu-icons.scss +75 -0
  393. package/src/styles/mixin.scss +80 -0
  394. package/src/styles/nprogress.scss +14 -0
  395. package/src/styles/page-shell.scss +723 -0
  396. package/src/styles/sidebar.scss +296 -0
  397. package/src/styles/split-handle.scss +52 -0
  398. package/src/styles/theme-variables.scss +7 -0
  399. package/src/styles/transition.scss +48 -0
  400. package/src/styles/utilities.scss +253 -0
  401. package/src/styles/variables.scss +72 -0
  402. package/src/utils/baseDictsCache.js +197 -0
  403. package/src/utils/chunkLoadError.js +24 -0
  404. package/src/utils/featureResources.js +57 -0
  405. package/src/utils/importLimit.js +72 -0
  406. package/src/utils/pdfUtil.js +6 -1
  407. package/src/utils/request.js +149 -9
  408. package/src/utils/resolveViewComponent.js +45 -90
  409. package/src/utils/runtimeRecovery.js +105 -0
  410. package/src/utils/swiperLoader.js +20 -0
  411. package/src/utils/vab.js +1334 -1283
  412. package/src/utils/xlsxLoader.js +29 -0
  413. package/src/views/bd/setting/formVersion/compareContMixin.scss +1 -1
  414. package/src/views/bd/setting/form_template/edit.vue +378 -356
  415. package/src/views/bd/setting/form_template/formDesignerDialog.vue +6 -0
  416. package/src/views/bd/setting/form_template/formTemplateType.js +43 -0
  417. package/src/views/bd/setting/form_template/list.vue +304 -303
  418. package/src/views/bd/setting/form_template/mixins/edit.js +344 -280
  419. package/src/views/bd/setting/form_template/mixins/list.js +749 -721
  420. package/src/views/bd/setting/form_template/mixins/list2.js +412 -411
  421. package/src/views/bd/setting/form_template/mixins/wf_list.js +431 -430
  422. package/src/views/mobile/user/area/dialog.vue +1 -1
  423. package/src/views/mobile/user/user/dialog.vue +1 -1
  424. package/src/views/user/bill_setting/mixins/wf.js +8 -0
  425. package/src/views/user/bill_setting/render.vue +1 -1
  426. package/src/views/user/commMenu/index.vue +3 -1
  427. package/src/views/user/commMenu/style.scss +123 -0
  428. package/src/views/user/common_attribute/edit.vue +2 -0
  429. package/src/views/user/common_attribute/itemEdit.vue +2 -0
  430. package/src/views/user/file_view_ins/list.vue +970 -970
  431. package/src/views/user/form/form_template/list.vue +527 -506
  432. package/src/views/user/form/vform/designer.vue +823 -821
  433. package/src/views/user/form/view/list.vue +24 -1
  434. package/src/views/user/home/default.vue +1124 -1117
  435. package/src/views/user/home/default2.vue +12 -8
  436. package/src/views/user/home/index.vue +102 -102
  437. package/src/views/user/home/wjl/content.vue +1581 -1569
  438. package/src/views/user/intf_permission/edit.vue +230 -0
  439. package/src/views/user/intf_permission/list.vue +196 -0
  440. package/src/views/user/menuFallback/index.vue +23 -0
  441. package/src/views/user/notify_message/dialog.vue +139 -139
  442. package/src/views/user/outLink/form_view.vue +202 -202
  443. package/src/views/user/outLink/index.vue +110 -110
  444. package/src/views/user/role/edit.vue +4 -0
  445. package/src/views/user/role/role-box.scss +83 -0
  446. package/src/views/user/role/voc_edit.vue +4 -0
  447. package/src/views/user/user/list.vue +28 -6
  448. package/src/views/user/wf/iframe/index.vue +51 -51
  449. package/src/views/user/wf/iframe/index2.vue +64 -64
  450. package/src/views/user/wf/wf_diy_attribute/edit.vue +1 -1
  451. package/src/views/user/wf/wf_manage/list2.vue +871 -871
  452. package/src/views/user/wf/wf_manage/wfContentDialog.vue +177 -126
  453. package/src/views/user/wf/wf_obj_config/activiti_wf.vue +134 -133
  454. package/src/views/user/wf/wf_obj_config/importItemDialog.vue +1 -1
  455. package/src/views/user/wf/wf_obj_config/list.vue +747 -746
  456. package/src/views/user/wf/wf_obj_config/list_form.vue +374 -373
  457. package/templates/child-app/.env +3 -0
  458. package/templates/child-app/README.md +49 -0
  459. package/templates/child-app/app.config.js +6 -0
  460. package/templates/child-app/babel.config.js +1 -0
  461. package/templates/child-app/core-resources.config.js +15 -0
  462. package/templates/child-app/gitignore +7 -0
  463. package/templates/child-app/package.json +34 -0
  464. package/templates/child-app/public/index.html +12 -0
  465. package/templates/child-app/src/assets/401_images/401.gif +0 -0
  466. package/templates/child-app/src/assets/404_images/404.png +0 -0
  467. package/templates/child-app/src/assets/404_images/404_cloud.png +0 -0
  468. package/templates/child-app/src/assets/logo.png +0 -0
  469. package/templates/child-app/src/corejsConfig.js +2 -0
  470. package/templates/child-app/src/icons/index.js +2 -0
  471. package/templates/child-app/src/icons/svg/child-demo.svg +1 -0
  472. package/templates/child-app/src/layout/index.vue +4 -0
  473. package/templates/child-app/src/main.js +5 -0
  474. package/templates/child-app/src/prefixConfig.js +13 -0
  475. package/templates/child-app/src/resources/css/login.scss +29 -0
  476. package/templates/child-app/src/resources/images/bg-login5.jpg +0 -0
  477. package/templates/child-app/src/resources/images/home-img.png +0 -0
  478. package/templates/child-app/src/router/modules/customer.js +3 -0
  479. package/templates/child-app/src/settings.js +25 -0
  480. package/templates/child-app/src/styles/app.scss +2 -0
  481. package/templates/child-app/src/views/demo/detail.vue +19 -0
  482. package/templates/child-app/src/views/demo/list.vue +38 -0
  483. package/templates/child-app/src/views/user/login/index.vue +18 -0
  484. package/templates/child-app/vue.config.js +107 -0
  485. package/src/components/xform/form-render/container-item/dynamicFieldEngine.js +0 -285
  486. package/src/components/xform/form-render/formDynamicFieldMixin.js +0 -131
  487. package/src/views/demo/bizTab/bill/billConfig.js +0 -41
  488. package/src/views/demo/bizTab/bill/detail.vue +0 -436
  489. package/src/views/demo/bizTab/bill/list.vue +0 -288
  490. package/src/views/demo/bizTab/bill/productDialog.vue +0 -176
  491. package/src/views/demo/bizTab/simple/billApi.js +0 -123
  492. package/src/views/demo/bizTab/simple/detail.vue +0 -407
  493. package/src/views/demo/bizTab/simple/list.vue +0 -217
  494. package/src/views/demo/bizTab/standalone/index.vue +0 -121
  495. package/src/views/demo/bizTab/wf/billConfig.js +0 -44
  496. package/src/views/demo/bizTab/wf/detail.vue +0 -661
  497. package/src/views/demo/bizTab/wf/list.vue +0 -242
  498. package/src/views/user/outLink/cc_form_view.vue +0 -188
  499. /package/src/{resources → core-resources}/js/base/common.js +0 -0
@@ -1,1117 +1,1124 @@
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
14
- v-if="unreadMessageNum > 0"
15
- v-html="
16
- $t1('您 有{number}条 未读消息,请及时查看。', {
17
- number: `<b>${
18
- unreadMessageNum > 99 ? '99+' : unreadMessageNum
19
- }</b>`,
20
- })
21
- "
22
- >
23
- </span>
24
- <span v-else-if="unreadMessageNum == 0">
25
- {{ $t1("您 暂无 未读消息。") }}
26
- </span>
27
- </div>
28
- <el-tooltip
29
- class="item"
30
- effect="dark"
31
- :content="$t1('刷新')"
32
- placement="top"
33
- >
34
- <el-button type="text" @click="getUnreadMessageNum(true)"
35
- ><i class="el-icon-refresh"></i
36
- ></el-button>
37
- </el-tooltip>
38
- <el-tooltip
39
- class="item"
40
- effect="dark"
41
- :content="$t1('查看更多')"
42
- placement="top"
43
- >
44
- <el-button
45
- type="text"
46
- @click="openMoreNotifyMessage()"
47
- class="more"
48
- >
49
- <i class="el-icon-news"></i>
50
- </el-button>
51
- </el-tooltip>
52
- </div>
53
- <el-card class="box-card">
54
- <div slot="header" class="clearfix">
55
- <span style="float: left">
56
- <i class="el-icon-chat-line-round ico"></i>
57
- {{ $t1("公告") }}
58
- </span>
59
- <el-button type="text" @click="openSystemNoticeDialog()"
60
- ><span class="more">MORE+</span></el-button
61
- >
62
- </div>
63
- <div class="home-notice-list">
64
- <div
65
- v-for="(systemNotice, index) in systemNotices"
66
- :key="index"
67
- class="item"
68
- @click="openSystemNoticeDialog(systemNotice)"
69
- :title="systemNotice.title"
70
- >
71
- {{ systemNotice.title }}
72
- <span class="time">{{
73
- systemNotice.modifyDate.substring(0, 10)
74
- }}</span>
75
- </div>
76
- </div>
77
- </el-card>
78
- </el-col>
79
- <el-col :span="homeConfig.toDoSpan || 16" style="padding-left: 6px">
80
- <el-card class="box-card">
81
- <div slot="header" class="clearfix">
82
- <span style="float: left">
83
- <i class="el-icon-chat-line-round ico"></i>
84
- {{ $t1("待办事项") }}
85
- </span>
86
- <el-tooltip
87
- class="item"
88
- effect="dark"
89
- :content="$t1('刷新')"
90
- placement="top"
91
- >
92
- <el-button
93
- type="text"
94
- @click="getWfInfoList(true)"
95
- class="more"
96
- style="right: 107px"
97
- >
98
- <i class="el-icon-refresh"></i>
99
- </el-button>
100
- </el-tooltip>
101
- <el-button type="text" @click="toWorkflowManage()" class="more">
102
- <i class="el-icon-news"></i>
103
- <span>{{ $t1("查看更多+") }}</span>
104
- </el-button>
105
- </div>
106
- <div class="need-to">
107
- <vxe-grid
108
- :data="unDoWfRows"
109
- ref="table-wf"
110
- v-bind="wfOption"
111
- @resizable-change="$vxeTableUtil.onColumnWitchChange"
112
- @custom="$vxeTableUtil.customHandle"
113
- ></vxe-grid>
114
- </div>
115
- </el-card>
116
- </el-col>
117
- </el-row>
118
- <el-row>
119
- <el-col :span="24" v-show="homeConfig.showFastTrack !== false">
120
- <el-card class="box-card">
121
- <div slot="header" class="clearfix">
122
- <span style="float: left">
123
- <i class="el-icon-star-off ico"></i>
124
- {{ $t1("快捷通道") }}
125
- </span>
126
- <el-button type="text" @click="showCommMenuDialog = true"
127
- ><span class="more">MORE+</span></el-button
128
- >
129
- </div>
130
- <div class="fast-box">
131
- <div class="item" v-for="commMenu in commMenus" :key="commMenu.id">
132
- <a href="javascript:void(0);" @click="rourteTo(commMenu)">
133
- <p>
134
- <i
135
- :class="
136
- !!commMenu.menuImg ? 'iconfont ' + commMenu.menuImg : null
137
- "
138
- ></i
139
- ><span>{{ commMenu.menuName }}</span>
140
- </p>
141
- </a>
142
- </div>
143
- </div>
144
- </el-card>
145
- </el-col>
146
-
147
- <!-- <el-col :span="8">
148
- <el-card class="box-card">
149
- <div slot="header" class="clearfix">
150
- <span style="float:left">
151
- <i class="el-icon-message ico"></i>
152
- 消息通知
153
- </span>
154
- <el-button type="text" @click="openNotifyTemplateGroupDialog" class="more" style="right:100px">
155
- <i class="el-icon-receiving"></i>
156
- <span>选择分组</span>
157
- </el-button>
158
- <el-button type="text" @click="openMoreNotifyMessage()" class="more">
159
- <i class="el-icon-news"></i>
160
- <span>查看更多+</span>
161
- </el-button>
162
- </div>
163
- <div class="home-notice-list to-reed" style="height: 400px;">
164
- <div v-for="(notifyMessage,index) in notifyMessages" class="item"
165
- :class="{noread:notifyMessage.readed == 0}"
166
- :title="notifyMessage.content" @click="checkNotifyMessage(notifyMessage,index)">
167
- <div class="clearfix">
168
- <el-tag type="warning">{{
169
- notifyMessage.notifyTypeName
170
- }}
171
- </el-tag>
172
- <span class="time">{{
173
- notifyMessage.createDate
174
- }}</span>
175
- <div class="btns fr">
176
- <el-link type="primary" @click.stop="openNotifyMessageDialog(notifyMessage)"><i class="el-icon-files"></i>
177
- </el-link>
178
- </div>
179
- </div>
180
- <span class="name">{{ notifyMessage.content }}</span>
181
- </div>
182
- </div>
183
- </el-card>
184
- </el-col> -->
185
- </el-row>
186
- <slot></slot>
187
- <systemNoticeInfoDialog
188
- v-if="showSystemNoticeInfoDialog"
189
- :visiable.sync="showSystemNoticeInfoDialog"
190
- :param="csnRow"
191
- :appendToTop="true"
192
- ></systemNoticeInfoDialog>
193
-
194
- <commMenuDialog
195
- v-if="showCommMenuDialog"
196
- :visiable.sync="showCommMenuDialog"
197
- @confirm="commMenuCallBack"
198
- ></commMenuDialog>
199
- <wfContentDialog
200
- v-if="showWfDialog"
201
- :visible.sync="showWfDialog"
202
- @close="wfClose"
203
- :option.sync="wfContentOption"
204
- ></wfContentDialog>
205
-
206
- <notifyMessageDialog ref="notifyMessageDialog"></notifyMessageDialog>
207
-
208
- <notifyMessageInfoDialog
209
- v-if="showNoticeDialog"
210
- :visiable.sync="showNoticeDialog"
211
- :dataId.sync="notifyMessageInfoId"
212
- @readHanlde="notifyMessageReadHanlde"
213
- ></notifyMessageInfoDialog>
214
-
215
- <el-dialog
216
- :title="$t1('选择分组')"
217
- :append-to-body="true"
218
- :modal-append-to-body="true"
219
- :close-on-click-modal="false"
220
- v-if="showGroupDialog"
221
- :visible.sync="showGroupDialog"
222
- :modal="false"
223
- custom-class="el-dialog dialog-style list-dialog"
224
- width="355px"
225
- :destroy-on-close="true"
226
- >
227
- <div class="cont group-list">
228
- <div
229
- class="item"
230
- v-for="(notifyTemplate, index) in notifyTemplates"
231
- :key="index"
232
- @click="openMoreNotifyMessage(notifyTemplate.notifyType)"
233
- >
234
- <i class="iconfont icon-fenzu"></i>
235
- <span class="name">{{ notifyTemplate.ntName }}</span>
236
- <!-- <span class="nums">99+</span>-->
237
- </div>
238
- </div>
239
- </el-dialog>
240
- </div>
241
- </template>
242
-
243
- <script>
244
- import systemNoticeInfoDialog from "@base/views/user/system_notice/infoDialog.vue";
245
- import commMenuDialog from "@base/views/user/commMenu/index.vue";
246
- import notifyMessageDialog from "@base/views/user/notify_message/dialog.vue";
247
- import notifyMessageInfoDialog from "@base/views/user/notify_message/infoDialog";
248
-
249
- import { getToken } from "@base/utils/auth";
250
- import wfContentDialog from "@base/views/user/wf/wf_manage/wfContentDialog";
251
- import corejsConfig from "@/corejsConfig";
252
- import { getLogicParamValue } from "@base/api/user";
253
-
254
- export default {
255
- name: "home",
256
- components: {
257
- systemNoticeInfoDialog,
258
- commMenuDialog,
259
- notifyMessageDialog,
260
- notifyMessageInfoDialog,
261
- wfContentDialog,
262
- },
263
- data() {
264
- return {
265
- showNoticeDialog: false,
266
- showGroupDialog: false,
267
- notifyTemplates: [],
268
- userInfo: {},
269
- companyInfo: {},
270
- systemNotices: [],
271
- showSystemNoticeInfoDialog: false,
272
- csnRow: null,
273
- headPhotoUrl: "",
274
- dialogVisible: true,
275
- unDoWfRows: [],
276
- wfOption: {},
277
- showWfDialog: false,
278
- wfContentOption: {},
279
- showWfContent: true,
280
- wfContent: null,
281
- wfDataId: "",
282
- showCommMenuDialog: false,
283
- commMenus: [],
284
- notifyMessages: [],
285
- notifyMessageInfoIndex: null,
286
- notifyMessageInfoId: null,
287
- unreadMessageNum: 0,
288
- activating: true,
289
- wfTimer: null,
290
- homeConfig: corejsConfig.homeConfig || {},
291
- };
292
- },
293
- activated() {
294
- this.activating = true;
295
- if (this.wfTimer) {
296
- this.timerExcFun(true);
297
- }
298
- },
299
- deactivated() {
300
- this.activating = false;
301
- },
302
- beforeDestroy() {
303
- this.clearTimer();
304
- },
305
- created() {
306
- this.getUserInfo();
307
- this.initSystemNotice();
308
- this.initCommMenu();
309
- this.initNotifyMessage();
310
- this.initWfParam();
311
- this.initWfTimer();
312
- //初始化流程待办路由
313
- this.initWorkflowManageRoute();
314
- },
315
- methods: {
316
- initWorkflowManageRoute() {
317
- //初始化流程待办路由
318
- getLogicParamValue({
319
- data: { paramCode: "workflowManageRoute" },
320
- success: (res) => {
321
- let value = res?.objx;
322
- this.workflowManageRoute = value || "/basic/wf/wf_manage/list";
323
- },
324
- });
325
- },
326
- toWorkflowManage() {
327
- this.$router.push(this.workflowManageRoute);
328
- },
329
- wfClose() {
330
- this.timerExcFun(true);
331
- },
332
- initWfTimer() {
333
- this.wfTimer = setInterval(() => {
334
- this.timerExcFun(false);
335
- }, 10000);
336
- this.timerExcFun(true);
337
- },
338
- timerExcFun(isLoading) {
339
- if (!this.activating) {
340
- return;
341
- }
342
- this.getWfInfoList(isLoading);
343
- this.getUnreadMessageNum(isLoading);
344
- this.$emit("timerHandle");
345
- },
346
- clearTimer() {
347
- clearInterval(this.wfTimer);
348
- this.wfTimer = null;
349
- },
350
- getUserInfo() {
351
- this.$http({
352
- url: USER_PREFIX + "/user/currentUser",
353
- method: "post",
354
- success: (res) => {
355
- let userInfo = res.objx;
356
- this.headPhotoUrl = userInfo.headPhotoUrl
357
- ? userInfo.headPhotoUrl
358
- : (require("@/resources/images/default-header.png").default || require("@/resources/images/default-header.png"));
359
-
360
- this.userInfo = userInfo;
361
- },
362
- });
363
- this.$http({
364
- url: USER_PREFIX + "/company_info/getCurrent",
365
- method: `post`,
366
- success: (res) => {
367
- this.companyInfo = res.objx || {};
368
- },
369
- });
370
- },
371
- initSystemNotice() {
372
- this.$http({
373
- url: USER_PREFIX + "/system_notice/listPage",
374
- data: { publish: true, searchCount: false },
375
- method: "post",
376
- success: (res) => {
377
- this.systemNotices =
378
- res.objx && res.objx.records ? res.objx.records : [];
379
- },
380
- });
381
- },
382
- openSystemNoticeDialog(row) {
383
- this.csnRow = row || null;
384
- this.showSystemNoticeInfoDialog = true;
385
- },
386
- initUnDoWfInfo() {
387
- this.$http({
388
- url: AGILEBPM_PREFIX + "/wf_manage/listPage",
389
- data: { type: 0, searchCount: false },
390
- method: "post",
391
- success: (res) => {
392
- this.unDoWfRows = res.objx.records || [];
393
- },
394
- });
395
- },
396
- initWfTableList() {
397
- let that = this;
398
- let paramColumns = this.wfParamDTOs.map((item) => {
399
- return {
400
- title: this.$t1(item.paramName),
401
- field: item.paramKey,
402
- width: 150,
403
- };
404
- });
405
- var statuses = {
406
- running: this.$t1("审核中"),
407
- back: this.$t1("已驳回"),
408
- end: this.$t1("已完成"),
409
- };
410
- let tableOption = {
411
- vue: this,
412
- tableRef: "table-wf",
413
- tableName: "home-table-wf",
414
- config: {
415
- height: "auto",
416
- },
417
- columns: [
418
- { type: "checkbox", width: 48, resizable: false, fixed: "left" },
419
- {
420
- title: this.$t1("单据类型"),
421
- field: "objTypeName",
422
- width: 150,
423
- fixed: "left",
424
- },
425
- {
426
- title: this.$t1("流程主题"),
427
- field: "name",
428
- width: 150,
429
- },
430
- {
431
- title: this.$t1("启动人"),
432
- field: "starterName",
433
- width: 150,
434
- },
435
- {
436
- title: this.$t1("当前任务"),
437
- field: "taskName",
438
- width: 150,
439
- },
440
- {
441
- title: this.$t1("当前任务用户"),
442
- field: "candidateNames",
443
- width: 150,
444
- },
445
- {
446
- title: this.$t1("启动时间"),
447
- field: "createDate",
448
- width: 150,
449
- },
450
- ...paramColumns,
451
- {
452
- width: 47,
453
- fixed: "right",
454
- title: "",
455
- sortable: false,
456
- slots: {
457
- default: ({ row }) => {
458
- return [
459
- <a
460
- href="javascript:void(0);"
461
- class="a-link"
462
- onclick={() => {
463
- this.openWfDialog(row);
464
- }}
465
- >
466
- <el-tooltip
467
- enterable={false}
468
- effect="dark"
469
- content={this.$t1("查看")}
470
- placement="top"
471
- popper-class="tooltip-skin"
472
- >
473
- <i class="el-icon-edit" />
474
- </el-tooltip>
475
- </a>,
476
- ];
477
- },
478
- },
479
- },
480
- ],
481
- };
482
- this.$vxeTableUtil.initVxeTable(tableOption).then((opts) => {
483
- this.wfOption = opts;
484
- });
485
- },
486
- openWfDialog(row) {
487
- this.wfContentOption = {
488
- objId: row.objId,
489
- url: row.url,
490
- objTypeCode: row.objTypeCode,
491
- formCode: row.formCode,
492
- };
493
- this.showWfDialog = true;
494
- },
495
- commMenuCallBack(datas) {
496
- this.commMenus = datas || [];
497
- },
498
- initCommMenu() {
499
- this.$http({
500
- url: USER_PREFIX + "/comm_menu/currentList",
501
- data: { longOne: 0 },
502
- method: "POST",
503
- }).then((resultMsg) => {
504
- this.commMenus = resultMsg.objx || [];
505
- });
506
- },
507
- initNotifyMessage() {
508
- return;
509
- this.$http({
510
- url: USER_PREFIX + "/notify_message/listPage",
511
- data: { searchCount: false },
512
- method: "post",
513
- success: (res) => {
514
- this.notifyMessages =
515
- res.objx && res.objx.records ? res.objx.records : [];
516
- },
517
- });
518
- },
519
- openNotifyMessageDialog(row) {
520
- if (row.jumpContent) {
521
- this.$refs.notifyMessageDialog.open(row, () => {
522
- row.readed = 1;
523
- });
524
- }
525
- },
526
- openMoreNotifyMessage(notifyType) {
527
- let data = { notifyType: notifyType || "" };
528
- let view = {
529
- name: "notify_message:list",
530
- query: data,
531
- };
532
- this.$store.dispatch("tagsView/delCachedView", view).then(() => {
533
- this.$router.replace(view);
534
- });
535
-
536
- if (notifyType) {
537
- this.showGroupDialog = false;
538
- }
539
- },
540
- checkNotifyMessage(row, index) {
541
- this.showNoticeDialog = true;
542
- this.notifyMessageInfoIndex = index;
543
- this.notifyMessageInfoId = row.id;
544
- },
545
- notifyMessageReadHanlde() {
546
- this.notifyMessages[this.notifyMessageInfoIndex].readed = 1;
547
- },
548
- openNotifyTemplateGroupDialog() {
549
- this.$http({
550
- url: USER_PREFIX + `/notify_template/listPage`,
551
- method: `post`,
552
- data: { searchCount: false },
553
- isLoading: true,
554
- // loadingTarget: document.body,
555
- success: (res) => {
556
- this.notifyTemplates =
557
- res.objx && res.objx.records ? res.objx.records : [];
558
- this.showGroupDialog = true;
559
- },
560
- });
561
- },
562
- rourteTo(route) {
563
- if (route.type == 4) {
564
- this.jumpOutLink(route);
565
- } else if (route.type == 3) {
566
- let menuCode = route.menuCode;
567
- let path = "/user/outLink/index/" + menuCode;
568
- this.$openView({ path: path, query: { url: route.url } }, route);
569
- } else {
570
- let path = this.getPath(route);
571
- if (!path) return;
572
- this.$openView(path, route);
573
- }
574
- },
575
- getPath(route3) {
576
- let item = null;
577
- let path = null;
578
- if (route3.type == 0) {
579
- //普通菜单
580
- if (route3.url) {
581
- path = route3.route || route3.url;
582
- let str = "/report/vform/render/";
583
- if (path.indexOf(str) == 0) {
584
- } else {
585
- let pIndex = path.indexOf("?");
586
- if (pIndex > 0) {
587
- path = path.substring(0, pIndex);
588
- }
589
- }
590
- }
591
- } else if (route3.type == 5) {
592
- //动态表单
593
- let url = route3.route || route3.url;
594
- path = url;
595
- }
596
- if (path && path.startsWith("@")) {
597
- path = null;
598
- }
599
- return path;
600
- },
601
- jumpOutLink(route) {
602
- let path = route.url;
603
- if (route.type == 4 && path) {
604
- if (path.indexOf("token={token}") >= 0) {
605
- path = path.replace("token={token}", "token=" + getToken());
606
- }
607
- window.open(path);
608
- }
609
- },
610
- initWfParam() {
611
- return this.$http({
612
- url: USER_PREFIX + "/wf_param/list",
613
- method: `post`,
614
- data: {},
615
- isLoading: true,
616
- // loadingTarget: document.body,
617
- modalStrictly: true,
618
- success: (res) => {
619
- this.wfParamDTOs = res.objx || [];
620
- this.initWfTableList();
621
- },
622
- });
623
- },
624
- getWfInfoList(isLoading) {
625
- if (!this.activating) {
626
- return;
627
- }
628
- this.$http({
629
- url: USER_PREFIX + "/wf_info/listPage",
630
- data: { type: 0, size: 20, searchCount: false },
631
- method: "post",
632
- isLoading: isLoading,
633
- modal: isLoading || false,
634
- // loadingTarget: document.body,
635
- success: (res) => {
636
- this.unDoWfRows =
637
- res.objx && res.objx.records ? res.objx.records : [];
638
- },
639
- failMsg: false,
640
- errorMsg: false,
641
- fail: (res, response) => {
642
- if (response && response.status == 200) {
643
- this.$errorMsg(res);
644
- }
645
- },
646
- });
647
- },
648
- getUnreadMessageNum(isLoading) {
649
- if (!this.activating) {
650
- return;
651
- }
652
- return this.$http({
653
- url: USER_PREFIX + "/notify_message/countMessage",
654
- method: `post`,
655
- data: {},
656
- isLoading: isLoading,
657
- modal: isLoading || false,
658
- // loadingTarget: document.body,
659
- success: (res) => {
660
- this.unreadMessageNum = res.objx || 0;
661
- },
662
- failMsg: false,
663
- errorMsg: false,
664
- fail: (res, response) => {
665
- if (response && response.status == 200) {
666
- this.$errorMsg(res);
667
- }
668
- },
669
- });
670
- },
671
- wfhandleCallback(flag) {
672
- if ([1, 2, 3].includes(flag)) {
673
- this.showWfDialog = false;
674
- this.wfClose();
675
- }
676
- },
677
- },
678
- };
679
- </script>
680
- <style lang="scss" scoped>
681
- @import "~@/styles/variables.scss";
682
-
683
- body #app .index-home {
684
- margin: 3px 10px;
685
- height: calc(100vh - 38px);
686
- overflow: auto;
687
-
688
- #containt {
689
- margin: 0;
690
- background: none;
691
- height: auto;
692
- box-shadow: none;
693
- }
694
-
695
- .i-user-info {
696
- background: url(~@/resources/images/home-img.png) #2a6494 no-repeat 116%
697
- 45px;
698
- margin-bottom: 6px;
699
- background-size: 181px;
700
- padding: 14px 38px 11px 16px;
701
- border-radius: 4px 4px;
702
- color: #fff;
703
- font-size: 12px;
704
- margin-top: 3px;
705
- height: 95px;
706
- overflow: hidden;
707
-
708
- .name {
709
- opacity: 1;
710
- font-weight: 600;
711
- margin: 9px 0 14px;
712
- font-size: 14px;
713
- }
714
-
715
- .img {
716
- width: 60px;
717
- height: 60px;
718
- float: left;
719
- border-radius: 50%;
720
- border: solid 4px rgba(255, 255, 255, 0.28);
721
- margin-right: 10px;
722
- }
723
- }
724
-
725
- .home-notice-list {
726
- height: 182px;
727
- margin: 0 -12px;
728
-
729
- .item {
730
- padding: 6px 12px;
731
- font-size: 12px;
732
- cursor: pointer;
733
- overflow: hidden;
734
- text-overflow: ellipsis;
735
- white-space: nowrap;
736
-
737
- .time {
738
- color: #b9b9b9;
739
- font-size: 12px;
740
- right: 12px;
741
- }
742
-
743
- &:hover {
744
- color: $baseColor;
745
- background-color: transparentize($baseColor, 0.97);
746
-
747
- .time {
748
- color: $baseColor;
749
- }
750
- }
751
-
752
- &.no-read:before {
753
- content: "";
754
- width: 6px;
755
- height: 6px;
756
- background-color: $red;
757
- border-radius: 50%;
758
- vertical-align: middle;
759
- display: inline-block;
760
- margin-bottom: 1px;
761
- }
762
- }
763
-
764
- &.to-reed {
765
- height: 300px;
766
- overflow: auto;
767
- margin: -8px -12px;
768
-
769
- .item {
770
- white-space: initial;
771
- padding: 8px 22px 2px;
772
- position: relative;
773
-
774
- &:after {
775
- content: "";
776
- position: absolute;
777
- left: 22px;
778
- right: 22px;
779
- border-top: dashed 1px #eee;
780
- height: 1px;
781
- bottom: 0;
782
- }
783
-
784
- &.noread {
785
- &:before {
786
- content: "";
787
- width: 6px;
788
- height: 6px;
789
- background-color: $red;
790
- border-radius: 50%;
791
- margin-right: 5px;
792
- display: inline-block;
793
- position: absolute;
794
- left: 10px;
795
- top: 16px;
796
- }
797
- }
798
-
799
- .el-tag {
800
- zoom: 0.95;
801
- padding: 0 5px;
802
- height: 24px;
803
- line-height: 24px;
804
- }
805
-
806
- // .noread{
807
- // position: absolute;right:0;top:0;
808
- // span{transform: rotate(47deg);
809
- // -ms-transform: rotate(47deg);
810
- // -moz-transform: rotate(47deg);
811
- // -webkit-transform: rotate(47deg);
812
- // -o-transform: rotate(47deg);
813
- // z-index: 3;
814
- // color: #FFF;
815
- // position: absolute;
816
- // right: 1px;
817
- // top: 2px;}
818
- // &:after{
819
- // content: "\e618";
820
- // font-size: 62px;
821
- // font-family: "iconfont";
822
- // color:$red
823
- // }
824
- // }
825
- .time {
826
- position: relative;
827
- right: 0;
828
- margin-left: 12px;
829
- }
830
-
831
- .name {
832
- overflow: hidden;
833
- text-overflow: ellipsis;
834
- white-space: nowrap;
835
- margin-top: 3px;
836
- display: block;
837
- margin-bottom: 4px;
838
- }
839
-
840
- &:hover .name {
841
- color: $baseColor;
842
- }
843
-
844
- &:first-child:before {
845
- border-top: none;
846
- }
847
-
848
- .btns {
849
- text-align: right;
850
-
851
- .el-link {
852
- font-size: 12px;
853
- display: inline-block;
854
- margin-left: 14px;
855
-
856
- i {
857
- font-size: 12px;
858
- margin-right: 3px;
859
- }
860
- }
861
- }
862
- }
863
- }
864
- }
865
-
866
- .fast-box {
867
- margin: 6px 4px 4px;
868
- overflow: hidden;
869
-
870
- .item {
871
- width: 118px;
872
- text-align: center;
873
- float: left;
874
- margin-right: 14px;
875
-
876
- p {
877
- color: #2a6494;
878
- border: solid 1px #e2e2e2;
879
- margin: 3.5px 4px;
880
- width: calc(100% - 4px);
881
- border-radius: 6px;
882
- position: relative;
883
- height: 54px;
884
- line-height: 54px;
885
- text-align: left;
886
- padding-left: 14px;
887
- font-size: 12px;
888
-
889
- i {
890
- font-size: 14px;
891
- vertical-align: middle;
892
- margin-right: 2px;
893
- }
894
-
895
- span {
896
- vertical-align: middle;
897
- }
898
-
899
- &:before {
900
- content: "";
901
- width: 4px;
902
- height: 24px;
903
- display: inline-block;
904
- background: #225279b8;
905
- position: absolute;
906
- left: -1px;
907
- top: 50%;
908
- margin-top: -12px;
909
- }
910
-
911
- &:hover {
912
- background-color: $baseColor;
913
- color: #fff;
914
- border-color: $baseColor;
915
-
916
- &:before {
917
- background: #fff;
918
- }
919
- }
920
- }
921
- }
922
- }
923
-
924
- .need-to {
925
- height: 332px;
926
- }
927
-
928
- .table-box {
929
- width: 100%;
930
- font-size: 12px;
931
-
932
- th {
933
- line-height: 32px;
934
- background: #f7f7f7;
935
- font-weight: 400;
936
- color: #808080;
937
- padding: 0 6px;
938
- }
939
-
940
- td {
941
- text-align: center;
942
- line-height: 34px;
943
- color: #424242;
944
- border-bottom: solid 1px #eee;
945
- padding: 0 6px;
946
- }
947
-
948
- tr:last-child td {
949
- border-bottom: none;
950
- }
951
- }
952
- }
953
-
954
- .box-card .more {
955
- background-color: #f7f7f7;
956
- }
957
-
958
- .group-list {
959
- padding: 18px 18px 6px 32px !important;
960
- height: 400px;
961
- overflow: auto;
962
-
963
- .item {
964
- position: relative;
965
- height: 36px;
966
- border: solid 1px #eee;
967
- line-height: 34px;
968
- border-radius: 2px;
969
- padding: 0 42px 0 14px;
970
- margin-bottom: 10px;
971
- cursor: pointer;
972
-
973
- &::before {
974
- content: "";
975
- width: 8px;
976
- height: 8px;
977
- border: solid 1px #eee;
978
- border-radius: 50%;
979
- display: inline-block;
980
- position: absolute;
981
- left: -16px;
982
- top: 13px;
983
- }
984
-
985
- &.checked {
986
- &:before {
987
- content: "";
988
- background-color: $baseColor;
989
- border-color: $baseColor;
990
- }
991
-
992
- background-color: transparentize($baseColor, 0.9);
993
- color: $baseColor;
994
- border-color: $baseColor;
995
- }
996
-
997
- i {
998
- font-size: 12px;
999
- vertical-align: middle;
1000
- }
1001
-
1002
- .name {
1003
- font-size: 12px;
1004
- margin-left: 8px;
1005
- vertical-align: middle;
1006
- }
1007
-
1008
- .nums {
1009
- width: 22px;
1010
- height: 22px;
1011
- border-radius: 50%;
1012
- display: inline-block;
1013
- position: absolute;
1014
- right: 5px;
1015
- top: 6px;
1016
- color: #fff;
1017
- font-size: 12px;
1018
- background-color: $red;
1019
- line-height: 22px;
1020
- text-align: center;
1021
- }
1022
- }
1023
- }
1024
-
1025
- .notice-box {
1026
- background-color: #2a649429;
1027
- border-radius: 0 0 4px 4px;
1028
- padding: 9px 12px;
1029
- margin-bottom: 5px;
1030
- margin-top: -6px;
1031
- position: relative;
1032
- z-index: 2;
1033
- font-size: 13px;
1034
- color: #212121;
1035
- overflow: hidden;
1036
-
1037
- .txt {
1038
- line-height: 28px;
1039
- font-size: 12px;
1040
- position: relative;
1041
- display: inline-block;
1042
- cursor: pointer;
1043
-
1044
- &:before {
1045
- content: "";
1046
- background-color: $baseColor;
1047
- width: 4px;
1048
- height: 20px;
1049
- border-radius: 2px;
1050
- display: inline-block;
1051
- vertical-align: middle;
1052
- margin-right: 18px;
1053
- }
1054
-
1055
- i {
1056
- font-size: 14px;
1057
- margin-right: 12px;
1058
- vertical-align: middle;
1059
- }
1060
-
1061
- > span {
1062
- vertical-align: middle;
1063
- height: 22px;
1064
- line-height: 22px;
1065
- display: inline-block;
1066
-
1067
- b {
1068
- color: #fff;
1069
- margin: 0 4px;
1070
- font-size: 16px;
1071
- vertical-align: middle;
1072
- background: #ff5615;
1073
- border-radius: 50%;
1074
- display: inline-block;
1075
- padding: 4px;
1076
- font-weight: 200;
1077
- line-height: 1;
1078
- }
1079
- }
1080
- }
1081
-
1082
- .el-button {
1083
- position: absolute;
1084
- right: 46px;
1085
- padding: 0;
1086
- height: 22px;
1087
- line-height: 22px;
1088
- min-width: 22px;
1089
- text-align: center;
1090
- border-radius: 2px;
1091
- top: 50%;
1092
- margin-top: -11px;
1093
-
1094
- i {
1095
- font-size: 15px;
1096
- }
1097
-
1098
- &:hover {
1099
- background-color: $baseColor;
1100
- color: #fff;
1101
- }
1102
-
1103
- &.more {
1104
- right: 12px;
1105
- background: #f7f7f7;
1106
-
1107
- &:hover {
1108
- color: $baseColor;
1109
- }
1110
- }
1111
- }
1112
-
1113
- ::v-deep .el-card.is-always-shadow {
1114
- box-shadow: 0 2px 2px 0 rgb(0 0 0 / 6%);
1115
- }
1116
- }
1117
- </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
14
+ v-if="unreadMessageNum > 0"
15
+ v-html="
16
+ $t1('您 有{number}条 未读消息,请及时查看。', {
17
+ number: `<b>${
18
+ unreadMessageNum > 99 ? '99+' : unreadMessageNum
19
+ }</b>`,
20
+ })
21
+ "
22
+ >
23
+ </span>
24
+ <span v-else-if="unreadMessageNum == 0">
25
+ {{ $t1("您 暂无 未读消息。") }}
26
+ </span>
27
+ </div>
28
+ <el-tooltip
29
+ class="item"
30
+ effect="dark"
31
+ :content="$t1('刷新')"
32
+ placement="top"
33
+ >
34
+ <el-button type="text" @click="getUnreadMessageNum(true)"
35
+ ><i class="el-icon-refresh"></i
36
+ ></el-button>
37
+ </el-tooltip>
38
+ <el-tooltip
39
+ class="item"
40
+ effect="dark"
41
+ :content="$t1('查看更多')"
42
+ placement="top"
43
+ >
44
+ <el-button
45
+ type="text"
46
+ @click="openMoreNotifyMessage()"
47
+ class="more"
48
+ >
49
+ <i class="el-icon-news"></i>
50
+ </el-button>
51
+ </el-tooltip>
52
+ </div>
53
+ <el-card class="box-card">
54
+ <div slot="header" class="clearfix">
55
+ <span style="float: left">
56
+ <i class="el-icon-chat-line-round ico"></i>
57
+ {{ $t1("公告") }}
58
+ </span>
59
+ <el-button type="text" @click="openSystemNoticeDialog()"
60
+ ><span class="more">MORE+</span></el-button
61
+ >
62
+ </div>
63
+ <div class="home-notice-list">
64
+ <div
65
+ v-for="(systemNotice, index) in systemNotices"
66
+ :key="index"
67
+ class="item"
68
+ @click="openSystemNoticeDialog(systemNotice)"
69
+ :title="systemNotice.title"
70
+ >
71
+ {{ systemNotice.title }}
72
+ <span class="time">{{
73
+ systemNotice.modifyDate.substring(0, 10)
74
+ }}</span>
75
+ </div>
76
+ </div>
77
+ </el-card>
78
+ </el-col>
79
+ <el-col :span="homeConfig.toDoSpan || 16" style="padding-left: 6px">
80
+ <el-card class="box-card">
81
+ <div slot="header" class="clearfix">
82
+ <span style="float: left">
83
+ <i class="el-icon-chat-line-round ico"></i>
84
+ {{ $t1("待办事项") }}
85
+ </span>
86
+ <el-tooltip
87
+ class="item"
88
+ effect="dark"
89
+ :content="$t1('刷新')"
90
+ placement="top"
91
+ >
92
+ <el-button
93
+ type="text"
94
+ @click="getWfInfoList(true)"
95
+ class="more"
96
+ style="right: 107px"
97
+ >
98
+ <i class="el-icon-refresh"></i>
99
+ </el-button>
100
+ </el-tooltip>
101
+ <el-button type="text" @click="toWorkflowManage()" class="more">
102
+ <i class="el-icon-news"></i>
103
+ <span>{{ $t1("查看更多+") }}</span>
104
+ </el-button>
105
+ </div>
106
+ <div class="need-to">
107
+ <vxe-grid
108
+ :data="unDoWfRows"
109
+ ref="table-wf"
110
+ v-bind="wfOption"
111
+ @resizable-change="$vxeTableUtil.onColumnWitchChange"
112
+ @custom="$vxeTableUtil.customHandle"
113
+ ></vxe-grid>
114
+ </div>
115
+ </el-card>
116
+ </el-col>
117
+ </el-row>
118
+ <el-row>
119
+ <el-col :span="24" v-show="homeConfig.showFastTrack !== false">
120
+ <el-card class="box-card">
121
+ <div slot="header" class="clearfix">
122
+ <span style="float: left">
123
+ <i class="el-icon-star-off ico"></i>
124
+ {{ $t1("快捷通道") }}
125
+ </span>
126
+ <el-button type="text" @click="showCommMenuDialog = true"
127
+ ><span class="more">MORE+</span></el-button
128
+ >
129
+ </div>
130
+ <div class="fast-box">
131
+ <div class="item" v-for="commMenu in commMenus" :key="commMenu.id">
132
+ <a href="javascript:void(0);" @click="rourteTo(commMenu)">
133
+ <p>
134
+ <i
135
+ :class="
136
+ !!commMenu.menuImg ? 'iconfont ' + commMenu.menuImg : null
137
+ "
138
+ ></i
139
+ ><span>{{ commMenu.menuName }}</span>
140
+ </p>
141
+ </a>
142
+ </div>
143
+ </div>
144
+ </el-card>
145
+ </el-col>
146
+
147
+ <!-- <el-col :span="8">
148
+ <el-card class="box-card">
149
+ <div slot="header" class="clearfix">
150
+ <span style="float:left">
151
+ <i class="el-icon-message ico"></i>
152
+ 消息通知
153
+ </span>
154
+ <el-button type="text" @click="openNotifyTemplateGroupDialog" class="more" style="right:100px">
155
+ <i class="el-icon-receiving"></i>
156
+ <span>选择分组</span>
157
+ </el-button>
158
+ <el-button type="text" @click="openMoreNotifyMessage()" class="more">
159
+ <i class="el-icon-news"></i>
160
+ <span>查看更多+</span>
161
+ </el-button>
162
+ </div>
163
+ <div class="home-notice-list to-reed" style="height: 400px;">
164
+ <div v-for="(notifyMessage,index) in notifyMessages" class="item"
165
+ :class="{noread:notifyMessage.readed == 0}"
166
+ :title="notifyMessage.content" @click="checkNotifyMessage(notifyMessage,index)">
167
+ <div class="clearfix">
168
+ <el-tag type="warning">{{
169
+ notifyMessage.notifyTypeName
170
+ }}
171
+ </el-tag>
172
+ <span class="time">{{
173
+ notifyMessage.createDate
174
+ }}</span>
175
+ <div class="btns fr">
176
+ <el-link type="primary" @click.stop="openNotifyMessageDialog(notifyMessage)"><i class="el-icon-files"></i>
177
+ </el-link>
178
+ </div>
179
+ </div>
180
+ <span class="name">{{ notifyMessage.content }}</span>
181
+ </div>
182
+ </div>
183
+ </el-card>
184
+ </el-col> -->
185
+ </el-row>
186
+ <slot></slot>
187
+ <systemNoticeInfoDialog
188
+ v-if="showSystemNoticeInfoDialog"
189
+ :visiable.sync="showSystemNoticeInfoDialog"
190
+ :param="csnRow"
191
+ :appendToTop="true"
192
+ ></systemNoticeInfoDialog>
193
+
194
+ <commMenuDialog
195
+ v-if="showCommMenuDialog"
196
+ :visiable.sync="showCommMenuDialog"
197
+ @confirm="commMenuCallBack"
198
+ ></commMenuDialog>
199
+ <wfContentDialog
200
+ v-if="showWfDialog"
201
+ :visible.sync="showWfDialog"
202
+ @close="wfClose"
203
+ :option.sync="wfContentOption"
204
+ ></wfContentDialog>
205
+
206
+ <notifyMessageDialog ref="notifyMessageDialog"></notifyMessageDialog>
207
+
208
+ <notifyMessageInfoDialog
209
+ v-if="showNoticeDialog"
210
+ :visiable.sync="showNoticeDialog"
211
+ :dataId.sync="notifyMessageInfoId"
212
+ @readHanlde="notifyMessageReadHanlde"
213
+ ></notifyMessageInfoDialog>
214
+
215
+ <el-dialog
216
+ :title="$t1('选择分组')"
217
+ :append-to-body="true"
218
+ :modal-append-to-body="true"
219
+ :close-on-click-modal="false"
220
+ v-if="showGroupDialog"
221
+ :visible.sync="showGroupDialog"
222
+ :modal="false"
223
+ custom-class="el-dialog dialog-style list-dialog"
224
+ width="355px"
225
+ :destroy-on-close="true"
226
+ >
227
+ <div class="cont group-list">
228
+ <div
229
+ class="item"
230
+ v-for="(notifyTemplate, index) in notifyTemplates"
231
+ :key="index"
232
+ @click="openMoreNotifyMessage(notifyTemplate.notifyType)"
233
+ >
234
+ <i class="iconfont icon-fenzu"></i>
235
+ <span class="name">{{ notifyTemplate.ntName }}</span>
236
+ <!-- <span class="nums">99+</span>-->
237
+ </div>
238
+ </div>
239
+ </el-dialog>
240
+ </div>
241
+ </template>
242
+
243
+ <script>
244
+ import systemNoticeInfoDialog from "@base/views/user/system_notice/infoDialog.vue";
245
+ import commMenuDialog from "@base/views/user/commMenu/index.vue";
246
+ import notifyMessageDialog from "@base/views/user/notify_message/dialog.vue";
247
+ import notifyMessageInfoDialog from "@base/views/user/notify_message/infoDialog";
248
+
249
+ import { getToken } from "@base/utils/auth";
250
+ import wfContentDialog from "@base/views/user/wf/wf_manage/wfContentDialog";
251
+ import corejsConfig from "@/corejsConfig";
252
+ import { getLogicParamValue } from "@base/api/user";
253
+
254
+ export default {
255
+ name: "home",
256
+ components: {
257
+ systemNoticeInfoDialog,
258
+ commMenuDialog,
259
+ notifyMessageDialog,
260
+ notifyMessageInfoDialog,
261
+ wfContentDialog,
262
+ },
263
+ data() {
264
+ return {
265
+ showNoticeDialog: false,
266
+ showGroupDialog: false,
267
+ notifyTemplates: [],
268
+ userInfo: {},
269
+ companyInfo: {},
270
+ systemNotices: [],
271
+ showSystemNoticeInfoDialog: false,
272
+ csnRow: null,
273
+ headPhotoUrl: "",
274
+ dialogVisible: true,
275
+ unDoWfRows: [],
276
+ wfOption: {},
277
+ showWfDialog: false,
278
+ wfContentOption: {},
279
+ showWfContent: true,
280
+ wfContent: null,
281
+ wfDataId: "",
282
+ showCommMenuDialog: false,
283
+ commMenus: [],
284
+ notifyMessages: [],
285
+ notifyMessageInfoIndex: null,
286
+ notifyMessageInfoId: null,
287
+ unreadMessageNum: 0,
288
+ activating: true,
289
+ wfTimer: null,
290
+ homeConfig: corejsConfig.homeConfig || {},
291
+ };
292
+ },
293
+ activated() {
294
+ this.activating = true;
295
+ if (this.wfTimer) {
296
+ this.timerExcFun(true);
297
+ }
298
+ },
299
+ deactivated() {
300
+ this.activating = false;
301
+ },
302
+ beforeDestroy() {
303
+ this.clearTimer();
304
+ },
305
+ created() {
306
+ this.getUserInfo();
307
+ this.initSystemNotice();
308
+ this.initCommMenu();
309
+ this.initNotifyMessage();
310
+ this.initWfParam();
311
+ this.initWfTimer();
312
+ //初始化流程待办路由
313
+ this.initWorkflowManageRoute();
314
+ },
315
+ methods: {
316
+ initWorkflowManageRoute() {
317
+ //初始化流程待办路由
318
+ getLogicParamValue({
319
+ data: { paramCode: "workflowManageRoute" },
320
+ success: (res) => {
321
+ let value = res?.objx;
322
+ this.workflowManageRoute = value || "/basic/wf/wf_manage/list";
323
+ },
324
+ });
325
+ },
326
+ toWorkflowManage() {
327
+ this.$router.push(this.workflowManageRoute);
328
+ },
329
+ wfClose() {
330
+ this.timerExcFun(true);
331
+ },
332
+ initWfTimer() {
333
+ this.wfTimer = setInterval(() => {
334
+ this.timerExcFun(false);
335
+ }, 10000);
336
+ this.timerExcFun(true);
337
+ },
338
+ timerExcFun(isLoading) {
339
+ if (!this.activating) {
340
+ return;
341
+ }
342
+ this.getWfInfoList(isLoading, true);
343
+ this.getUnreadMessageNum(isLoading, true);
344
+ this.$emit("timerHandle");
345
+ },
346
+ clearTimer() {
347
+ clearInterval(this.wfTimer);
348
+ this.wfTimer = null;
349
+ },
350
+ getUserInfo() {
351
+ this.$http({
352
+ url: USER_PREFIX + "/user/currentUser",
353
+ method: "post",
354
+ success: (res) => {
355
+ let userInfo = res.objx;
356
+ this.headPhotoUrl = userInfo.headPhotoUrl
357
+ ? userInfo.headPhotoUrl
358
+ : (require("@base/core-resources/images/default-header.png").default || require("@base/core-resources/images/default-header.png"));
359
+
360
+ this.userInfo = userInfo;
361
+ },
362
+ });
363
+ this.$http({
364
+ url: USER_PREFIX + "/company_info/getCurrent",
365
+ method: `post`,
366
+ success: (res) => {
367
+ this.companyInfo = res.objx || {};
368
+ },
369
+ });
370
+ },
371
+ initSystemNotice() {
372
+ this.$http({
373
+ url: USER_PREFIX + "/system_notice/listPage",
374
+ data: { publish: true, searchCount: false },
375
+ method: "post",
376
+ success: (res) => {
377
+ this.systemNotices =
378
+ res.objx && res.objx.records ? res.objx.records : [];
379
+ },
380
+ });
381
+ },
382
+ openSystemNoticeDialog(row) {
383
+ this.csnRow = row || null;
384
+ this.showSystemNoticeInfoDialog = true;
385
+ },
386
+ initUnDoWfInfo() {
387
+ this.$http({
388
+ url: AGILEBPM_PREFIX + "/wf_manage/listPage",
389
+ data: { type: 0, searchCount: false },
390
+ method: "post",
391
+ success: (res) => {
392
+ this.unDoWfRows = res.objx.records || [];
393
+ },
394
+ });
395
+ },
396
+ initWfTableList() {
397
+ let that = this;
398
+ let paramColumns = this.wfParamDTOs.map((item) => {
399
+ return {
400
+ title: this.$t1(item.paramName),
401
+ field: item.paramKey,
402
+ width: 150,
403
+ };
404
+ });
405
+ var statuses = {
406
+ running: this.$t1("审核中"),
407
+ back: this.$t1("已驳回"),
408
+ end: this.$t1("已完成"),
409
+ };
410
+ let tableOption = {
411
+ vue: this,
412
+ tableRef: "table-wf",
413
+ tableName: "home-table-wf",
414
+ config: {
415
+ height: "auto",
416
+ },
417
+ columns: [
418
+ { type: "checkbox", width: 48, resizable: false, fixed: "left" },
419
+ {
420
+ title: this.$t1("单据类型"),
421
+ field: "objTypeName",
422
+ width: 150,
423
+ fixed: "left",
424
+ },
425
+ {
426
+ title: this.$t1("流程主题"),
427
+ field: "name",
428
+ width: 150,
429
+ },
430
+ {
431
+ title: this.$t1("启动人"),
432
+ field: "starterName",
433
+ width: 150,
434
+ },
435
+ {
436
+ title: this.$t1("当前任务"),
437
+ field: "taskName",
438
+ width: 150,
439
+ },
440
+ {
441
+ title: this.$t1("当前任务用户"),
442
+ field: "candidateNames",
443
+ width: 150,
444
+ },
445
+ {
446
+ title: this.$t1("启动时间"),
447
+ field: "createDate",
448
+ width: 150,
449
+ },
450
+ ...paramColumns,
451
+ {
452
+ width: 47,
453
+ fixed: "right",
454
+ title: "",
455
+ sortable: false,
456
+ slots: {
457
+ default: ({ row }) => {
458
+ return [
459
+ <a
460
+ href="javascript:void(0);"
461
+ class="a-link"
462
+ onclick={() => {
463
+ this.openWfDialog(row);
464
+ }}
465
+ >
466
+ <el-tooltip
467
+ enterable={false}
468
+ effect="dark"
469
+ content={this.$t1("查看")}
470
+ placement="top"
471
+ popper-class="tooltip-skin"
472
+ >
473
+ <i class="el-icon-edit" />
474
+ </el-tooltip>
475
+ </a>,
476
+ ];
477
+ },
478
+ },
479
+ },
480
+ ],
481
+ };
482
+ this.$vxeTableUtil.initVxeTable(tableOption).then((opts) => {
483
+ this.wfOption = opts;
484
+ });
485
+ },
486
+ openWfDialog(row) {
487
+ this.wfContentOption = {
488
+ objId: row.objId,
489
+ url: row.url,
490
+ objTypeCode: row.objTypeCode,
491
+ formCode: row.formCode,
492
+ };
493
+ this.showWfDialog = true;
494
+ },
495
+ commMenuCallBack(datas) {
496
+ this.commMenus = datas || [];
497
+ },
498
+ initCommMenu() {
499
+ this.$http({
500
+ url: USER_PREFIX + "/comm_menu/currentList",
501
+ data: { longOne: 0 },
502
+ method: "POST",
503
+ }).then((resultMsg) => {
504
+ this.commMenus = resultMsg.objx || [];
505
+ });
506
+ },
507
+ initNotifyMessage() {
508
+ return;
509
+ this.$http({
510
+ url: USER_PREFIX + "/notify_message/listPage",
511
+ data: { searchCount: false },
512
+ method: "post",
513
+ success: (res) => {
514
+ this.notifyMessages =
515
+ res.objx && res.objx.records ? res.objx.records : [];
516
+ },
517
+ });
518
+ },
519
+ openNotifyMessageDialog(row) {
520
+ if (row.jumpContent) {
521
+ this.$refs.notifyMessageDialog.open(row, () => {
522
+ row.readed = 1;
523
+ });
524
+ }
525
+ },
526
+ openMoreNotifyMessage(notifyType) {
527
+ let data = { notifyType: notifyType || "" };
528
+ let view = {
529
+ name: "notify_message:list",
530
+ query: data,
531
+ };
532
+ this.$store.dispatch("tagsView/delCachedView", view).then(() => {
533
+ this.$router.replace(view);
534
+ });
535
+
536
+ if (notifyType) {
537
+ this.showGroupDialog = false;
538
+ }
539
+ },
540
+ checkNotifyMessage(row, index) {
541
+ this.showNoticeDialog = true;
542
+ this.notifyMessageInfoIndex = index;
543
+ this.notifyMessageInfoId = row.id;
544
+ },
545
+ notifyMessageReadHanlde() {
546
+ this.notifyMessages[this.notifyMessageInfoIndex].readed = 1;
547
+ },
548
+ openNotifyTemplateGroupDialog() {
549
+ this.$http({
550
+ url: USER_PREFIX + `/notify_template/listPage`,
551
+ method: `post`,
552
+ data: { searchCount: false },
553
+ isLoading: true,
554
+ // loadingTarget: document.body,
555
+ success: (res) => {
556
+ this.notifyTemplates =
557
+ res.objx && res.objx.records ? res.objx.records : [];
558
+ this.showGroupDialog = true;
559
+ },
560
+ });
561
+ },
562
+ rourteTo(route) {
563
+ if (route.type == 4) {
564
+ this.jumpOutLink(route);
565
+ } else if (route.type == 3) {
566
+ let menuCode = route.menuCode;
567
+ let path = "/user/outLink/index/" + menuCode;
568
+ this.$openView({ path: path, query: { url: route.url } }, route);
569
+ } else {
570
+ let path = this.getPath(route);
571
+ if (!path) return;
572
+ this.$openView(path, route);
573
+ }
574
+ },
575
+ getPath(route3) {
576
+ let item = null;
577
+ let path = null;
578
+ if (route3.type == 0) {
579
+ //普通菜单
580
+ if (route3.url) {
581
+ path = route3.route || route3.url;
582
+ let str = "/report/vform/render/";
583
+ if (path.indexOf(str) == 0) {
584
+ } else {
585
+ let pIndex = path.indexOf("?");
586
+ if (pIndex > 0) {
587
+ path = path.substring(0, pIndex);
588
+ }
589
+ }
590
+ }
591
+ } else if (route3.type == 5) {
592
+ //动态表单
593
+ let url = route3.route || route3.url;
594
+ path = url;
595
+ }
596
+ if (path && path.startsWith("@")) {
597
+ path = null;
598
+ }
599
+ return path;
600
+ },
601
+ jumpOutLink(route) {
602
+ let path = route.url;
603
+ if (route.type == 4 && path) {
604
+ if (path.indexOf("token={token}") >= 0) {
605
+ path = path.replace("token={token}", "token=" + getToken());
606
+ }
607
+ window.open(path);
608
+ }
609
+ },
610
+ initWfParam() {
611
+ return this.$http({
612
+ url: USER_PREFIX + "/wf_param/list",
613
+ method: `post`,
614
+ data: {},
615
+ isLoading: true,
616
+ // loadingTarget: document.body,
617
+ modalStrictly: true,
618
+ success: (res) => {
619
+ this.wfParamDTOs = res.objx || [];
620
+ this.initWfTableList();
621
+ },
622
+ });
623
+ },
624
+ getWfInfoList(isLoading, silent = false) {
625
+ if (!this.activating) {
626
+ return;
627
+ }
628
+ this.$http({
629
+ url: USER_PREFIX + "/wf_info/listPage",
630
+ data: { type: 0, size: 20, searchCount: false },
631
+ method: "post",
632
+ isLoading: isLoading,
633
+ modal: isLoading || false,
634
+ // loadingTarget: document.body,
635
+ success: (res) => {
636
+ this.unDoWfRows =
637
+ res.objx && res.objx.records ? res.objx.records : [];
638
+ },
639
+ failMsg: false,
640
+ ...(silent
641
+ ? { errorMsg: false }
642
+ : { ignoreNetworkError: true, ignore502: true }),
643
+ fail: (res, response) => {
644
+ if (response && response.status == 200) {
645
+ this.$errorMsg(res);
646
+ }
647
+ },
648
+ });
649
+ },
650
+ getUnreadMessageNum(isLoading, silent = false) {
651
+ if (!this.activating) {
652
+ return;
653
+ }
654
+ return this.$http({
655
+ url: USER_PREFIX + "/notify_message/countMessage",
656
+ method: `post`,
657
+ data: {},
658
+ isLoading: isLoading,
659
+ modal: isLoading || false,
660
+ // loadingTarget: document.body,
661
+ success: (res) => {
662
+ this.unreadMessageNum = res.objx || 0;
663
+ },
664
+ failMsg: false,
665
+ ...(silent
666
+ ? { errorMsg: false }
667
+ : { ignoreNetworkError: true, ignore502: true }),
668
+ fail: (res, response) => {
669
+ if (response && response.status == 200) {
670
+ this.$errorMsg(res);
671
+ }
672
+ },
673
+ });
674
+ },
675
+ wfhandleCallback(flag) {
676
+ if ([1, 2, 3].includes(flag)) {
677
+ this.showWfDialog = false;
678
+ this.wfClose();
679
+ }
680
+ },
681
+ },
682
+ };
683
+ </script>
684
+ <style lang="scss" scoped>
685
+ @import "~@base/styles/variables.scss";
686
+
687
+ body #app .index-home {
688
+ margin: 3px 10px;
689
+ height: calc(100vh - 38px);
690
+ overflow: auto;
691
+
692
+ #containt {
693
+ margin: 0;
694
+ background: none;
695
+ height: auto;
696
+ box-shadow: none;
697
+ }
698
+
699
+ .i-user-info {
700
+ background: url(~@/resources/images/home-img.png) #2a6494 no-repeat 116%
701
+ 45px;
702
+ margin-bottom: 6px;
703
+ background-size: 181px;
704
+ padding: 14px 38px 11px 16px;
705
+ border-radius: 4px 4px;
706
+ color: #fff;
707
+ font-size: 12px;
708
+ margin-top: 3px;
709
+ height: 95px;
710
+ overflow: hidden;
711
+
712
+ .name {
713
+ opacity: 1;
714
+ font-weight: 600;
715
+ margin: 9px 0 14px;
716
+ font-size: 14px;
717
+ }
718
+
719
+ .img {
720
+ width: 60px;
721
+ height: 60px;
722
+ float: left;
723
+ border-radius: 50%;
724
+ border: solid 4px rgba(255, 255, 255, 0.28);
725
+ margin-right: 10px;
726
+ }
727
+ }
728
+
729
+ .home-notice-list {
730
+ height: 182px;
731
+ margin: 0 -12px;
732
+
733
+ .item {
734
+ padding: 6px 12px;
735
+ font-size: 12px;
736
+ cursor: pointer;
737
+ overflow: hidden;
738
+ text-overflow: ellipsis;
739
+ white-space: nowrap;
740
+
741
+ .time {
742
+ color: #b9b9b9;
743
+ font-size: 12px;
744
+ right: 12px;
745
+ background: #FFF;
746
+ padding-left: 8px;
747
+ }
748
+
749
+ &:hover {
750
+ color: $baseColor;
751
+ background-color: #F8FAFC;
752
+
753
+ .time {
754
+ color: $baseColor;
755
+ background-color: #F8FAFC;
756
+ }
757
+ }
758
+
759
+ &.no-read:before {
760
+ content: "";
761
+ width: 6px;
762
+ height: 6px;
763
+ background-color: $red;
764
+ border-radius: 50%;
765
+ vertical-align: middle;
766
+ display: inline-block;
767
+ margin-bottom: 1px;
768
+ }
769
+ }
770
+
771
+ &.to-reed {
772
+ height: 300px;
773
+ overflow: auto;
774
+ margin: -8px -12px;
775
+
776
+ .item {
777
+ white-space: initial;
778
+ padding: 8px 22px 2px;
779
+ position: relative;
780
+
781
+ &:after {
782
+ content: "";
783
+ position: absolute;
784
+ left: 22px;
785
+ right: 22px;
786
+ border-top: dashed 1px #eee;
787
+ height: 1px;
788
+ bottom: 0;
789
+ }
790
+
791
+ &.noread {
792
+ &:before {
793
+ content: "";
794
+ width: 6px;
795
+ height: 6px;
796
+ background-color: $red;
797
+ border-radius: 50%;
798
+ margin-right: 5px;
799
+ display: inline-block;
800
+ position: absolute;
801
+ left: 10px;
802
+ top: 16px;
803
+ }
804
+ }
805
+
806
+ .el-tag {
807
+ zoom: 0.95;
808
+ padding: 0 5px;
809
+ height: 24px;
810
+ line-height: 24px;
811
+ }
812
+
813
+ // .noread{
814
+ // position: absolute;right:0;top:0;
815
+ // span{transform: rotate(47deg);
816
+ // -ms-transform: rotate(47deg);
817
+ // -moz-transform: rotate(47deg);
818
+ // -webkit-transform: rotate(47deg);
819
+ // -o-transform: rotate(47deg);
820
+ // z-index: 3;
821
+ // color: #FFF;
822
+ // position: absolute;
823
+ // right: 1px;
824
+ // top: 2px;}
825
+ // &:after{
826
+ // content: "\e618";
827
+ // font-size: 62px;
828
+ // font-family: "iconfont";
829
+ // color:$red
830
+ // }
831
+ // }
832
+ .time {
833
+ position: relative;
834
+ right: 0;
835
+ margin-left: 12px;
836
+ }
837
+
838
+ .name {
839
+ overflow: hidden;
840
+ text-overflow: ellipsis;
841
+ white-space: nowrap;
842
+ margin-top: 3px;
843
+ display: block;
844
+ margin-bottom: 4px;
845
+ }
846
+
847
+ &:hover .name {
848
+ color: $baseColor;
849
+ }
850
+
851
+ &:first-child:before {
852
+ border-top: none;
853
+ }
854
+
855
+ .btns {
856
+ text-align: right;
857
+
858
+ .el-link {
859
+ font-size: 12px;
860
+ display: inline-block;
861
+ margin-left: 14px;
862
+
863
+ i {
864
+ font-size: 12px;
865
+ margin-right: 3px;
866
+ }
867
+ }
868
+ }
869
+ }
870
+ }
871
+ }
872
+
873
+ .fast-box {
874
+ margin: 6px 4px 4px;
875
+ overflow: hidden;
876
+
877
+ .item {
878
+ width: 118px;
879
+ text-align: center;
880
+ float: left;
881
+ margin-right: 14px;
882
+
883
+ p {
884
+ color: #2a6494;
885
+ border: solid 1px #e2e2e2;
886
+ margin: 3.5px 4px;
887
+ width: calc(100% - 4px);
888
+ border-radius: 6px;
889
+ position: relative;
890
+ height: 54px;
891
+ line-height: 54px;
892
+ text-align: left;
893
+ padding-left: 14px;
894
+ font-size: 12px;
895
+
896
+ i {
897
+ font-size: 14px;
898
+ vertical-align: middle;
899
+ margin-right: 2px;
900
+ }
901
+
902
+ span {
903
+ vertical-align: middle;
904
+ }
905
+
906
+ &:before {
907
+ content: "";
908
+ width: 4px;
909
+ height: 24px;
910
+ display: inline-block;
911
+ background: #225279b8;
912
+ position: absolute;
913
+ left: -1px;
914
+ top: 50%;
915
+ margin-top: -12px;
916
+ }
917
+
918
+ &:hover {
919
+ background-color: $baseColor;
920
+ color: #fff;
921
+ border-color: $baseColor;
922
+
923
+ &:before {
924
+ background: #fff;
925
+ }
926
+ }
927
+ }
928
+ }
929
+ }
930
+
931
+ .need-to {
932
+ height: 332px;
933
+ }
934
+
935
+ .table-box {
936
+ width: 100%;
937
+ font-size: 12px;
938
+
939
+ th {
940
+ line-height: 32px;
941
+ background: #f7f7f7;
942
+ font-weight: 400;
943
+ color: #808080;
944
+ padding: 0 6px;
945
+ }
946
+
947
+ td {
948
+ text-align: center;
949
+ line-height: 34px;
950
+ color: #424242;
951
+ border-bottom: solid 1px #eee;
952
+ padding: 0 6px;
953
+ }
954
+
955
+ tr:last-child td {
956
+ border-bottom: none;
957
+ }
958
+ }
959
+ }
960
+
961
+ .box-card .more {
962
+ background-color: #f7f7f7;
963
+ }
964
+
965
+ .group-list {
966
+ padding: 18px 18px 6px 32px !important;
967
+ height: 400px;
968
+ overflow: auto;
969
+
970
+ .item {
971
+ position: relative;
972
+ height: 36px;
973
+ border: solid 1px #eee;
974
+ line-height: 34px;
975
+ border-radius: 2px;
976
+ padding: 0 42px 0 14px;
977
+ margin-bottom: 10px;
978
+ cursor: pointer;
979
+
980
+ &::before {
981
+ content: "";
982
+ width: 8px;
983
+ height: 8px;
984
+ border: solid 1px #eee;
985
+ border-radius: 50%;
986
+ display: inline-block;
987
+ position: absolute;
988
+ left: -16px;
989
+ top: 13px;
990
+ }
991
+
992
+ &.checked {
993
+ &:before {
994
+ content: "";
995
+ background-color: $baseColor;
996
+ border-color: $baseColor;
997
+ }
998
+
999
+ background-color: transparentize($baseColor, 0.9);
1000
+ color: $baseColor;
1001
+ border-color: $baseColor;
1002
+ }
1003
+
1004
+ i {
1005
+ font-size: 12px;
1006
+ vertical-align: middle;
1007
+ }
1008
+
1009
+ .name {
1010
+ font-size: 12px;
1011
+ margin-left: 8px;
1012
+ vertical-align: middle;
1013
+ }
1014
+
1015
+ .nums {
1016
+ width: 22px;
1017
+ height: 22px;
1018
+ border-radius: 50%;
1019
+ display: inline-block;
1020
+ position: absolute;
1021
+ right: 5px;
1022
+ top: 6px;
1023
+ color: #fff;
1024
+ font-size: 12px;
1025
+ background-color: $red;
1026
+ line-height: 22px;
1027
+ text-align: center;
1028
+ }
1029
+ }
1030
+ }
1031
+
1032
+ .notice-box {
1033
+ background-color: #2a649429;
1034
+ border-radius: 0 0 4px 4px;
1035
+ padding: 9px 12px;
1036
+ margin-bottom: 5px;
1037
+ margin-top: -6px;
1038
+ position: relative;
1039
+ z-index: 2;
1040
+ font-size: 13px;
1041
+ color: #212121;
1042
+ overflow: hidden;
1043
+
1044
+ .txt {
1045
+ line-height: 28px;
1046
+ font-size: 12px;
1047
+ position: relative;
1048
+ display: inline-block;
1049
+ cursor: pointer;
1050
+
1051
+ &:before {
1052
+ content: "";
1053
+ background-color: $baseColor;
1054
+ width: 4px;
1055
+ height: 20px;
1056
+ border-radius: 2px;
1057
+ display: inline-block;
1058
+ vertical-align: middle;
1059
+ margin-right: 18px;
1060
+ }
1061
+
1062
+ i {
1063
+ font-size: 14px;
1064
+ margin-right: 12px;
1065
+ vertical-align: middle;
1066
+ }
1067
+
1068
+ > span {
1069
+ vertical-align: middle;
1070
+ height: 22px;
1071
+ line-height: 22px;
1072
+ display: inline-block;
1073
+
1074
+ b {
1075
+ color: #fff;
1076
+ margin: 0 4px;
1077
+ font-size: 16px;
1078
+ vertical-align: middle;
1079
+ background: #ff5615;
1080
+ border-radius: 50%;
1081
+ display: inline-block;
1082
+ padding: 4px;
1083
+ font-weight: 200;
1084
+ line-height: 1;
1085
+ }
1086
+ }
1087
+ }
1088
+
1089
+ .el-button {
1090
+ position: absolute;
1091
+ right: 46px;
1092
+ padding: 0;
1093
+ height: 22px;
1094
+ line-height: 22px;
1095
+ min-width: 22px;
1096
+ text-align: center;
1097
+ border-radius: 2px;
1098
+ top: 50%;
1099
+ margin-top: -11px;
1100
+
1101
+ i {
1102
+ font-size: 15px;
1103
+ }
1104
+
1105
+ &:hover {
1106
+ background-color: $baseColor;
1107
+ color: #fff;
1108
+ }
1109
+
1110
+ &.more {
1111
+ right: 12px;
1112
+ background: #f7f7f7;
1113
+
1114
+ &:hover {
1115
+ color: $baseColor;
1116
+ }
1117
+ }
1118
+ }
1119
+
1120
+ ::v-deep .el-card.is-always-shadow {
1121
+ box-shadow: 0 2px 2px 0 rgb(0 0 0 / 6%);
1122
+ }
1123
+ }
1124
+ </style>