cloud-web-corejs 1.0.54-dev.70 → 1.0.54-dev.700

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 (535) hide show
  1. package/package.json +23 -14
  2. package/src/App.vue +30 -34
  3. package/src/api/user.js +85 -40
  4. package/src/components/Qrcode/fileParse.vue +0 -1
  5. package/src/components/Tinymce/index.vue +112 -71
  6. package/src/components/VabUpload/fileLibraryDialog.vue +296 -0
  7. package/src/components/VabUpload/image-viewer.vue +2 -2
  8. package/src/components/VabUpload/index.js +69 -1
  9. package/src/components/VabUpload/index.vue +9 -1
  10. package/src/components/VabUpload/mixins/fileLibraryDialog.js +1112 -0
  11. package/src/components/VabUpload/mixins.js +1881 -2
  12. package/src/components/VabUpload/propertiesDialog.vue +1 -1
  13. package/src/components/VabUpload/view.vue +209 -120
  14. package/src/components/advancedSearchDialog/mixins.js +28 -1
  15. package/src/components/base-textarea/index.vue +104 -0
  16. package/src/components/baseAlert/index.js +44 -1
  17. package/src/components/baseAlert/index.vue +24 -20
  18. package/src/components/baseAlert/mixins.js +61 -1
  19. package/src/components/baseArea/index.vue +1543 -0
  20. package/src/components/baseAttachment/index.vue +49 -40
  21. package/src/components/baseAttachment/install.js +21 -5
  22. package/src/components/baseAttachment/mixins.js +310 -1
  23. package/src/components/baseInputBatch/mixins.js +58 -1
  24. package/src/components/baseInputExport/index.vue +21 -14
  25. package/src/components/baseInputExport/mixins.js +391 -1
  26. package/src/components/baseTabs/index.vue +16 -8
  27. package/src/components/baseTabs/mixins.js +166 -1
  28. package/src/components/cnPrint/index.js +44 -1
  29. package/src/components/cnPrint/mixins.js +189 -1
  30. package/src/components/code-editor/index.vue +131 -62
  31. package/src/components/confirmDialog/index.js +41 -1
  32. package/src/components/confirmDialog/index.vue +24 -17
  33. package/src/components/confirmDialog/mixins.js +31 -1
  34. package/src/components/errorMsg/index.js +1 -1
  35. package/src/components/errorMsg/index.vue +78 -70
  36. package/src/components/errorMsg/mixins.js +6 -5
  37. package/src/components/excelExport/button.vue +86 -24
  38. package/src/components/excelExport/exportFieldDialog.vue +215 -81
  39. package/src/components/excelExport/index.js +6 -6
  40. package/src/components/excelExport/index.vue +108 -26
  41. package/src/components/excelExport/mixins.js +2 -2
  42. package/src/components/excelImport/index.js +13 -13
  43. package/src/components/excelImport/mixins.js +2 -1
  44. package/src/components/fileLibrary/fileObjAuthDialog.vue +179 -89
  45. package/src/components/fileLibrary/fileObjAuthEditDialog.vue +6 -0
  46. package/src/components/fileLibrary/filterDialog.vue +454 -0
  47. package/src/components/fileLibrary/index.vue +692 -269
  48. package/src/components/fileLibrary/mixins/categoryMoveDialogMixins.js +1 -1
  49. package/src/components/fileLibrary/mixins/fileCategoryDialogMixins.js +1 -1
  50. package/src/components/fileLibrary/mixins/fileHistoryDialogMixins.js +2 -2
  51. package/src/components/fileLibrary/mixins/fileObjAuthDialogMixin.js +339 -211
  52. package/src/components/fileLibrary/mixins/fileObjAuthEditDialogMixin.js +31 -27
  53. package/src/components/fileLibrary/mixins/fileObjAuthEditMixin.js +4 -4
  54. package/src/components/fileLibrary/mixins/indexMixins.js +220 -101
  55. package/src/components/fileLibrary/mixins/propertiesDialogMixins.js +64 -4
  56. package/src/components/fileLibrary/mixins/recycleBinDialogMixins.js +3 -3
  57. package/src/components/fileLibrary/propertiesDialog.vue +113 -74
  58. package/src/components/fileLibrary/shareDialog.vue +1 -1
  59. package/src/components/formOplog/mixins.js +85 -4
  60. package/src/components/hiprint/css/bootstrap.min.css +6 -0
  61. package/src/components/hiprint/fonts/glyphicons-halflings-regular.eot +0 -0
  62. package/src/components/hiprint/fonts/glyphicons-halflings-regular.svg +288 -0
  63. package/src/components/hiprint/fonts/glyphicons-halflings-regular.ttf +0 -0
  64. package/src/components/hiprint/fonts/glyphicons-halflings-regular.woff +0 -0
  65. package/src/components/hiprint/fonts/glyphicons-halflings-regular.woff2 +0 -0
  66. package/src/components/hiprint/hiprint.bundle.js +15 -3
  67. package/src/components/hiprint/view/design/index.vue +140 -47
  68. package/src/components/hiprint/view/design/mixins.js +611 -1
  69. package/src/components/hiprint/view/design/preview.vue +75 -52
  70. package/src/components/hiprint/view/json-view.vue +31 -31
  71. package/src/components/jdPrint/index.js +44 -1
  72. package/src/components/jdPrint/mixins.js +208 -1
  73. package/src/components/jsonImport/exportUtil.js +190 -0
  74. package/src/components/jsonImport/index.js +219 -17
  75. package/src/components/jsonImport/mixins.js +333 -1
  76. package/src/components/langImport/index.js +80 -1
  77. package/src/components/langImport/mixins.js +500 -16
  78. package/src/components/langTag/mixins/addButton.js +51 -5
  79. package/src/components/langTag/mixins/deleteButton.js +55 -5
  80. package/src/components/langTag/mixins/view.js +47 -5
  81. package/src/components/luckysheet/dialog.vue +159 -0
  82. package/src/components/luckysheet/export.js +595 -0
  83. package/src/components/luckysheet/fileUtils.js +147 -0
  84. package/src/components/luckysheet/index.js +72 -0
  85. package/src/components/luckysheet/templateJson.js +12078 -0
  86. package/src/components/luckysheet/view.vue +210 -0
  87. package/src/components/obsUpload/index.js +34 -0
  88. package/src/components/obsUpload/index.vue +231 -0
  89. package/src/components/obsUpload/mixins.js +1476 -0
  90. package/src/components/onlineTalk/index.vue +1 -1
  91. package/src/components/onlineTalk/mixins.js +852 -1
  92. package/src/components/onlineTalk/talkUserDialog.vue +280 -0
  93. package/src/components/oplogTable/mixins.js +83 -4
  94. package/src/components/pddPrint/index.js +44 -1
  95. package/src/components/pddPrint/mixins.js +252 -1
  96. package/src/components/projectTag/mixins/addButton.js +52 -1
  97. package/src/components/projectTag/mixins/deleteButton.js +52 -1
  98. package/src/components/projectTag/mixins/view.js +43 -1
  99. package/src/components/scriptDescription/button.vue +12 -4
  100. package/src/components/scriptDescription/mixins.js +30 -1
  101. package/src/components/scriptTest/mixins.js +90 -1
  102. package/src/components/statusTag/mixins.js +66 -1
  103. package/src/components/table/CellSlot.vue +12 -9
  104. package/src/components/table/config.js +1 -1
  105. package/src/components/table/index.js +1191 -11
  106. package/src/components/table/plugins/extend-cell-area/vxe-table-extend-cell-area.es6.min.js +11028 -0
  107. package/src/components/table/plugins/extend-cell-area/vxe-table-extend-cell-area.min.css +200 -0
  108. package/src/components/table/tableForm.vue +99 -63
  109. package/src/components/table/tableFormMixin.js +1 -1
  110. package/src/components/table/util/index.js +339 -0
  111. package/src/components/table/vxeFilter/index.js +2 -1
  112. package/src/components/table/vxeFilter/mixin.js +8 -6
  113. package/src/components/tempStorage/index.vue +76 -55
  114. package/src/components/tempStorage/tempStorageDialog.vue +179 -54
  115. package/src/components/vb-tabs/x-tabs.vue +56 -30
  116. package/src/components/vipPrint/index.js +44 -1
  117. package/src/components/vipPrint/mixins.js +268 -1
  118. package/src/components/wf/addOpinionButton.vue +57 -0
  119. package/src/components/wf/content.vue +834 -362
  120. package/src/components/wf/mixins/addOpinionButton.js +53 -0
  121. package/src/components/wf/mixins/setCandidateButton.js +161 -0
  122. package/src/components/wf/mixins/setCandidateDialog.js +213 -1
  123. package/src/components/wf/mixins/setCandidateDialog2.js +252 -0
  124. package/src/components/wf/mixins/wfFlowEleScriptDialog.js +131 -0
  125. package/src/components/wf/mixins/wfTaskUserRangeDialog.js +69 -0
  126. package/src/components/wf/setCandidateButton.vue +40 -0
  127. package/src/components/wf/setCandidateDialog.vue +10 -0
  128. package/src/components/wf/setCandidateDialog2.vue +105 -0
  129. package/src/components/wf/wf.js +2159 -1
  130. package/src/components/wf/wfFlowEleScriptDialog.vue +89 -0
  131. package/src/components/wf/wfStartDialog.vue +66 -42
  132. package/src/components/wf/wfTaskUserRangeDialog.vue +65 -0
  133. package/src/components/wf/wfUtil.js +280 -1
  134. package/src/components/xform/docs//345/220/216/345/217/260/345/255/227/346/256/265/357/274/210/345/212/250/346/200/201/347/224/237/346/210/220/357/274/211JSON /350/257/264/346/230/216.md" +1261 -0
  135. package/src/components/xform/docs//346/225/260/346/215/256/350/241/250/346/240/274/345/212/250/346/200/201/345/210/227 JSON /350/257/264/346/230/216.md" +657 -0
  136. package/src/components/xform/form-designer/designer.js +2002 -9
  137. package/src/components/xform/form-designer/form-widget/components/gantt/index.vue +434 -0
  138. package/src/components/xform/form-designer/form-widget/container-widget/containerMixin.js +1 -1
  139. package/src/components/xform/form-designer/form-widget/container-widget/data-table-mixin.js +9 -8
  140. package/src/components/xform/form-designer/form-widget/container-widget/data-table-widget.vue +14 -1
  141. package/src/components/xform/form-designer/form-widget/container-widget/detail-pane-widget.vue +3 -2
  142. package/src/components/xform/form-designer/form-widget/container-widget/detail-widget.vue +3 -3
  143. package/src/components/xform/form-designer/form-widget/dialog/baseFormulaDialog copy.vue +971 -0
  144. package/src/components/xform/form-designer/form-widget/dialog/baseFormulaDialog.vue +971 -0
  145. package/src/components/xform/form-designer/form-widget/dialog/exportDialog.vue +13 -0
  146. package/src/components/xform/form-designer/form-widget/dialog/fileReferenceDialog.vue +301 -0
  147. package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +85 -48
  148. package/src/components/xform/form-designer/form-widget/dialog/formDrawer.vue +5 -1
  149. package/src/components/xform/form-designer/form-widget/dialog/formulaDialog.vue +799 -0
  150. package/src/components/xform/form-designer/form-widget/dialog/importDialog.vue +30 -8
  151. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin.js +1762 -9
  152. package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +222 -75
  153. package/src/components/xform/form-designer/form-widget/field-widget/a-link-widget.vue +67 -54
  154. package/src/components/xform/form-designer/form-widget/field-widget/a-text-widget.vue +1 -1
  155. package/src/components/xform/form-designer/form-widget/field-widget/area-select-widget.vue +260 -0
  156. package/src/components/xform/form-designer/form-widget/field-widget/baseAttachment-widget.vue +28 -3
  157. package/src/components/xform/form-designer/form-widget/field-widget/button-widget.vue +1 -1
  158. package/src/components/xform/form-designer/form-widget/field-widget/cascader-widget.vue +160 -90
  159. package/src/components/xform/form-designer/form-widget/field-widget/census-widget.vue +40 -28
  160. package/src/components/xform/form-designer/form-widget/field-widget/checkbox-widget.vue +18 -7
  161. package/src/components/xform/form-designer/form-widget/field-widget/color-widget.vue +4 -1
  162. package/src/components/xform/form-designer/form-widget/field-widget/copy_button-widget.vue +95 -0
  163. package/src/components/xform/form-designer/form-widget/field-widget/date-range-widget.vue +14 -3
  164. package/src/components/xform/form-designer/form-widget/field-widget/date-widget.vue +48 -5
  165. package/src/components/xform/form-designer/form-widget/field-widget/download-button-widget.vue +133 -0
  166. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-item-widget.vue +86 -0
  167. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-widget.vue +170 -0
  168. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +1880 -16
  169. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +810 -379
  170. package/src/components/xform/form-designer/form-widget/field-widget/gantt-widget.vue +964 -0
  171. package/src/components/xform/form-designer/form-widget/field-widget/html-text-widget.vue +6 -2
  172. package/src/components/xform/form-designer/form-widget/field-widget/import-button-widget.vue +22 -11
  173. package/src/components/xform/form-designer/form-widget/field-widget/import2-button-widget.vue +90 -0
  174. package/src/components/xform/form-designer/form-widget/field-widget/input-widget.vue +7 -2
  175. package/src/components/xform/form-designer/form-widget/field-widget/mixins/date-limit-mixin.js +157 -0
  176. package/src/components/xform/form-designer/form-widget/field-widget/mixins/utc-transform-mixin.js +75 -0
  177. package/src/components/xform/form-designer/form-widget/field-widget/mixins/vabsearch-mixin.js +179 -0
  178. package/src/components/xform/form-designer/form-widget/field-widget/multiSearch-widget.vue +53 -0
  179. package/src/components/xform/form-designer/form-widget/field-widget/number-widget.vue +117 -81
  180. package/src/components/xform/form-designer/form-widget/field-widget/oplog-widget.vue +186 -0
  181. package/src/components/xform/form-designer/form-widget/field-widget/print-button-widget.vue +55 -28
  182. package/src/components/xform/form-designer/form-widget/field-widget/print-detail-button-widget.vue +119 -0
  183. package/src/components/xform/form-designer/form-widget/field-widget/project-tag-widget.vue +154 -47
  184. package/src/components/xform/form-designer/form-widget/field-widget/radio-widget.vue +26 -6
  185. package/src/components/xform/form-designer/form-widget/field-widget/save_submit_wf_button-widget.vue +112 -0
  186. package/src/components/xform/form-designer/form-widget/field-widget/script-input-widget.vue +146 -0
  187. package/src/components/xform/form-designer/form-widget/field-widget/search_button-widget.vue +2 -2
  188. package/src/components/xform/form-designer/form-widget/field-widget/select-export-button-widget.vue +86 -0
  189. package/src/components/xform/form-designer/form-widget/field-widget/select-export-item-button-widget.vue +92 -0
  190. package/src/components/xform/form-designer/form-widget/field-widget/select-widget.vue +24 -9
  191. package/src/components/xform/form-designer/form-widget/field-widget/singerSearch-widget.vue +53 -0
  192. package/src/components/xform/form-designer/form-widget/field-widget/singleUpload-widget.vue +145 -0
  193. package/src/components/xform/form-designer/form-widget/field-widget/static-content-wrapper.vue +16 -1
  194. package/src/components/xform/form-designer/form-widget/field-widget/static-text-widget.vue +8 -3
  195. package/src/components/xform/form-designer/form-widget/field-widget/status-widget.vue +82 -49
  196. package/src/components/xform/form-designer/form-widget/field-widget/table-export-button-widget.vue +38 -38
  197. package/src/components/xform/form-designer/form-widget/field-widget/tableexportbuttonwidget.vue +99 -0
  198. package/src/components/xform/form-designer/form-widget/field-widget/tempStorage-widget.vue +147 -0
  199. package/src/components/xform/form-designer/form-widget/field-widget/text-widget.vue +111 -34
  200. package/src/components/xform/form-designer/form-widget/field-widget/time-range-widget.vue +4 -3
  201. package/src/components/xform/form-designer/form-widget/field-widget/time-widget.vue +2 -1
  202. package/src/components/xform/form-designer/form-widget/field-widget/vabSearch-widget.vue +3 -171
  203. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +185 -62
  204. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload2-widget.vue +753 -0
  205. package/src/components/xform/form-designer/form-widget/field-widget/vue-page-widget.vue +231 -0
  206. package/src/components/xform/form-designer/form-widget/indexMixin.js +1 -1
  207. package/src/components/xform/form-designer/indexMixin.js +838 -13
  208. package/src/components/xform/form-designer/refMixinDesign.js +1 -28
  209. package/src/components/xform/form-designer/setting-panel/form-dynamicField-setting.vue +601 -0
  210. package/src/components/xform/form-designer/setting-panel/form-setting.vue +990 -172
  211. package/src/components/xform/form-designer/setting-panel/index.vue +41 -32
  212. package/src/components/xform/form-designer/setting-panel/indexMixin.js +1 -1
  213. package/src/components/xform/form-designer/setting-panel/option-items-setting.vue +585 -302
  214. package/src/components/xform/form-designer/setting-panel/property-editor/a-link-editor.vue +4 -4
  215. package/src/components/xform/form-designer/setting-panel/property-editor/a-text-editor.vue +3 -3
  216. package/src/components/xform/form-designer/setting-panel/property-editor/autoValueEnabled-editor.vue +38 -0
  217. package/src/components/xform/form-designer/setting-panel/property-editor/buttonIcon-editor.vue +14 -15
  218. package/src/components/xform/form-designer/setting-panel/property-editor/censusClass-editor.vue +6 -0
  219. package/src/components/xform/form-designer/setting-panel/property-editor/colorClass-editor.vue +28 -0
  220. package/src/components/xform/form-designer/setting-panel/property-editor/commonAttributeEnabled-editor.vue +41 -0
  221. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/columnRenderDialog.vue +125 -0
  222. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +1154 -1042
  223. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/edit-tree-button-group-config-dialog.vue +281 -0
  224. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/exportItemColumns-dialog.vue +432 -0
  225. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/onCheckboxChange-editor.vue +1 -1
  226. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +1573 -587
  227. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-editor.vue +3 -3
  228. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail-pane/detail-pane-editor.vue +3 -3
  229. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-offset-editor.vue +1 -1
  230. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-pull-editor.vue +1 -1
  231. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-push-editor.vue +1 -1
  232. package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +34 -46
  233. package/src/components/xform/form-designer/setting-panel/property-editor/container-table/table-dynamicField-editor.vue +352 -0
  234. package/src/components/xform/form-designer/setting-panel/property-editor/container-tree/tree-customClass-editor.vue +31 -2
  235. package/src/components/xform/form-designer/setting-panel/property-editor/copyButton-editor.vue +36 -0
  236. package/src/components/xform/form-designer/setting-panel/property-editor/downloadButtonFlag-editor.vue +32 -0
  237. package/src/components/xform/form-designer/setting-panel/property-editor/dropdownFlag-editor.vue +133 -0
  238. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/eventMixin.js +2 -2
  239. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onClick-editor.vue +23 -8
  240. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaDataType-editor.vue +25 -0
  241. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaName-editor.vue +20 -0
  242. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/clickBindEvent-editor.vue +35 -20
  243. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/icon-editor.vue +14 -15
  244. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/search-dialog-event-editor.vue +64 -5
  245. package/src/components/xform/form-designer/setting-panel/property-editor/field-cascader/checkStrictly-editor.vue +11 -13
  246. package/src/components/xform/form-designer/setting-panel/property-editor/field-cascader/showAllLevels-editor.vue +21 -0
  247. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-dateLimit-editor.vue +157 -0
  248. package/src/components/xform/form-designer/setting-panel/property-editor/field-dropdown-menu/dropdown-item-editor.vue +21 -0
  249. package/src/components/xform/form-designer/setting-panel/property-editor/field-dropdown-menu/dropdown-menu-editor.vue +59 -0
  250. package/src/components/xform/form-designer/setting-panel/property-editor/field-gantt/gantt-editor.vue +36 -0
  251. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import-button-editor.vue +76 -22
  252. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +96 -0
  253. package/src/components/xform/form-designer/setting-panel/property-editor/field-print-button/print-button-editor.vue +44 -15
  254. package/src/components/xform/form-designer/setting-panel/property-editor/field-print-button/print-detail-button-editor.vue +115 -0
  255. package/src/components/xform/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue +1 -1
  256. package/src/components/xform/form-designer/setting-panel/property-editor/field-script-input/script-input-editor.vue +55 -0
  257. package/src/components/xform/form-designer/setting-panel/property-editor/field-static-text/preWrap-editor.vue +23 -0
  258. package/src/components/xform/form-designer/setting-panel/property-editor/field-static-text/textContent-editor.vue +1 -1
  259. package/src/components/xform/form-designer/setting-panel/property-editor/field-status/field-status-editor.vue +67 -41
  260. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-button-editor.vue +56 -0
  261. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-item-button-editor.vue +71 -0
  262. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabSearch/vabSearchName-editor.vue +13 -1
  263. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload/field-vabUpload-editor.vue +33 -1
  264. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload2/field-vabUpload2-editor.vue +66 -0
  265. package/src/components/xform/form-designer/setting-panel/property-editor/field-vue-page/vue-page-editor.vue +48 -0
  266. package/src/components/xform/form-designer/setting-panel/property-editor/formScriptEnabled-editor.vue +100 -19
  267. package/src/components/xform/form-designer/setting-panel/property-editor/formatType-editor.vue +137 -0
  268. package/src/components/xform/form-designer/setting-panel/property-editor/formula-editor.vue +721 -466
  269. package/src/components/xform/form-designer/setting-panel/property-editor/labelColor-editor.vue +20 -11
  270. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconClass-editor.vue +17 -16
  271. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconPosition-editor.vue +25 -25
  272. package/src/components/xform/form-designer/setting-panel/property-editor/labelTooltip-editor.vue +11 -13
  273. package/src/components/xform/form-designer/setting-panel/property-editor/limit-editor.vue +1 -1
  274. package/src/components/xform/form-designer/setting-panel/property-editor/multiple-editor.vue +19 -14
  275. package/src/components/xform/form-designer/setting-panel/property-editor/multipleLimit-editor.vue +1 -1
  276. package/src/components/xform/form-designer/setting-panel/property-editor/name-editor.vue +127 -50
  277. package/src/components/xform/form-designer/setting-panel/property-editor/oplog-editor.vue +31 -0
  278. package/src/components/xform/form-designer/setting-panel/property-editor/precision-editor.vue +1 -1
  279. package/src/components/xform/form-designer/setting-panel/property-editor/prefixIcon-editor.vue +14 -15
  280. package/src/components/xform/form-designer/setting-panel/property-editor/project-tag-editor.vue +349 -0
  281. package/src/components/xform/form-designer/setting-panel/property-editor/required-editor.vue +10 -6
  282. package/src/components/xform/form-designer/setting-panel/property-editor/requiredHint-editor.vue +3 -3
  283. package/src/components/xform/form-designer/setting-panel/property-editor/suffixIcon-editor.vue +14 -15
  284. package/src/components/xform/form-designer/setting-panel/property-editor/tempStorage-editor.vue +42 -0
  285. package/src/components/xform/form-designer/setting-panel/property-editor/textFlag-editor.vue +304 -19
  286. package/src/components/xform/form-designer/setting-panel/property-editor/utcTransformEnabled-editor.vue +19 -0
  287. package/src/components/xform/form-designer/setting-panel/property-editor/validation-editor.vue +2 -2
  288. package/src/components/xform/form-designer/setting-panel/property-editor/validationHint-editor.vue +2 -2
  289. package/src/components/xform/form-designer/setting-panel/property-editor/wfFlag-editor.vue +372 -50
  290. package/src/components/xform/form-designer/setting-panel/property-editor/widgetShowRuleFlag-editor.vue +263 -0
  291. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +230 -187
  292. package/src/components/xform/form-designer/setting-panel/widgetPropertyDialogMixin.js +186 -0
  293. package/src/components/xform/form-designer/toolbar-panel/index.vue +267 -103
  294. package/src/components/xform/form-designer/toolbar-panel/indexMixin.js +1 -1
  295. package/src/components/xform/form-designer/widget-panel/index.vue +21 -1
  296. package/src/components/xform/form-designer/widget-panel/indexMixin.js +19 -18
  297. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +2008 -975
  298. package/src/components/xform/form-render/container-item/containerItemMixin.js +1237 -11
  299. package/src/components/xform/form-render/container-item/data-table-item.vue +206 -202
  300. package/src/components/xform/form-render/container-item/data-table-mixin.js +4032 -18
  301. package/src/components/xform/form-render/container-item/detail-item.vue +72 -48
  302. package/src/components/xform/form-render/container-item/detail-pane-item.vue +17 -3
  303. package/src/components/xform/form-render/container-item/dynamicFieldEngine.js +285 -0
  304. package/src/components/xform/form-render/container-item/dynamicFieldMixin.js +336 -0
  305. package/src/components/xform/form-render/container-item/grid-col-item.vue +10 -3
  306. package/src/components/xform/form-render/container-item/grid-item.vue +1 -1
  307. package/src/components/xform/form-render/container-item/list-h5-item.vue +1182 -419
  308. package/src/components/xform/form-render/container-item/tab-item.vue +62 -25
  309. package/src/components/xform/form-render/container-item/table-cell-item.vue +38 -32
  310. package/src/components/xform/form-render/container-item/table-item.vue +7 -7
  311. package/src/components/xform/form-render/container-item/table2-cell-item.vue +53 -34
  312. package/src/components/xform/form-render/container-item/table2-item.vue +182 -91
  313. package/src/components/xform/form-render/container-item/tree-item.vue +32 -11
  314. package/src/components/xform/form-render/dynamicDialogRender.js +1 -1
  315. package/src/components/xform/form-render/formDynamicFieldMixin.js +131 -0
  316. package/src/components/xform/form-render/index.vue +79 -21
  317. package/src/components/xform/form-render/indexMixin.js +3986 -12
  318. package/src/components/xform/form-render/refMixin.js +3 -3
  319. package/src/components/xform/icon-picker/icons.json +284 -0
  320. package/src/components/xform/icon-picker/index.vue +145 -0
  321. package/src/components/xform/lang/en-US.js +10 -0
  322. package/src/components/xform/lang/zh-CN.js +112 -90
  323. package/src/components/xform/mixins/defaultHandle.js +441 -2
  324. package/src/components/xform/mixins/scriptHttp.js +176 -3
  325. package/src/components/xform/utils/dynamicSchemaUtil.js +312 -0
  326. package/src/components/xform/utils/emitter.js +4 -4
  327. package/src/components/xform/utils/formHttp.js +162 -0
  328. package/src/components/xform/utils/format.js +41 -34
  329. package/src/components/xform/utils/formula-util.js +969 -0
  330. package/src/components/xform/utils/smart-vue-i18n/index.js +2 -1
  331. package/src/components/xform/utils/tableCellValidateUtil.js +148 -0
  332. package/src/components/xform/utils/tableColumnHelper.js +132 -0
  333. package/src/components/xform/utils/util.js +1550 -1
  334. package/src/components/xform/utils/validators.js +2 -5
  335. package/src/components/xform/utils/vue2js-generator.js +2 -2
  336. package/src/components/xhsPrint/index.js +44 -1
  337. package/src/components/xhsPrint/mixins.js +269 -1
  338. package/src/directive/LimitNumber/index.js +125 -1
  339. package/src/directive/el-dialog-center/index.js +34 -1
  340. package/src/directive/el-drag-dialog/drag.js +86 -1
  341. package/src/directive/el-readonly/index.js +15 -1
  342. package/src/directive/permission/hasPermi.js +34 -1
  343. package/src/index.js +230 -190
  344. package/src/lang/index.js +56 -51
  345. package/src/lang/locale/en/login.js +27 -0
  346. package/src/lang/locale/zh/login.js +26 -0
  347. package/src/layout/components/AppMain.vue +8 -1
  348. package/src/layout/components/Sidebar/default.vue +1653 -1222
  349. package/src/layout/components/Sidebar/index.vue +6 -1
  350. package/src/layout/components/TagsView/index.vue +43 -12
  351. package/src/layout/components/createCompany/createCompanyDialog.vue +157 -0
  352. package/src/layout/components/extractedCode/createDialog.vue +92 -0
  353. package/src/layout/components/extractedCode/queryDialog.vue +103 -0
  354. package/src/layout/components/extractedCode/viewDialog.vue +207 -0
  355. package/src/layout/components/langTool.vue +33 -30
  356. package/src/layout/components/watermark/index.vue +83 -0
  357. package/src/layout/defaultLayout.vue +17 -9
  358. package/src/mixins/selectDialog/index.js +266 -1
  359. package/src/mixins/tableTree/index.js +199 -4
  360. package/src/mixins/wf/index.js +33 -1
  361. package/src/permission.js +135 -18
  362. package/src/resources/js/base/common.js +109 -109
  363. package/src/router/index.js +4 -7
  364. package/src/router/modules/customer.js +12 -18
  365. package/src/router/modules/system.js +4 -0
  366. package/src/store/config/index.js +83 -14
  367. package/src/store/getters.js +4 -1
  368. package/src/store/modules/permission.js +46 -41
  369. package/src/store/modules/settings.js +1 -1
  370. package/src/store/modules/tagsView.js +5 -8
  371. package/src/store/modules/user.js +367 -16
  372. package/src/utils/aes.js +2 -1
  373. package/src/utils/auth.js +1 -1
  374. package/src/utils/global.js +1 -1
  375. package/src/utils/index.js +2 -3
  376. package/src/utils/keepAlive.js +1 -1
  377. package/src/utils/pddLog.js +92 -0
  378. package/src/utils/pdfUtil.js +71 -0
  379. package/src/utils/request.js +1 -1
  380. package/src/utils/vab.js +1268 -27
  381. package/src/utils/validate.js +1 -1
  382. package/src/utils/wf.js +4 -4
  383. package/src/views/bd/setting/bd_attach_setting/edit.vue +5 -5
  384. package/src/views/bd/setting/bd_attach_setting/list.vue +28 -55
  385. package/src/views/bd/setting/bd_attach_setting/mixins/dialog.js +84 -1
  386. package/src/views/bd/setting/bd_attach_setting/mixins/edit.js +116 -5
  387. package/src/views/bd/setting/bd_attach_setting/mixins/list.js +239 -1
  388. package/src/views/bd/setting/bd_company_env/dialog.vue +174 -0
  389. package/src/views/bd/setting/bd_company_env/edit.vue +193 -0
  390. package/src/views/bd/setting/bd_company_env/list.vue +175 -0
  391. package/src/views/bd/setting/config_manage/list.vue +83 -0
  392. package/src/views/bd/setting/formVersion/button.vue +55 -0
  393. package/src/views/bd/setting/formVersion/compareBasicSection.vue +125 -0
  394. package/src/views/bd/setting/formVersion/compareCodeSection.vue +539 -0
  395. package/src/views/bd/setting/formVersion/compareContMixin.scss +65 -0
  396. package/src/views/bd/setting/formVersion/compareContent.vue +63 -0
  397. package/src/views/bd/setting/formVersion/compareDialog.vue +88 -0
  398. package/src/views/bd/setting/formVersion/compareMixin.js +93 -0
  399. package/src/views/bd/setting/formVersion/fieldCompare.vue +54 -0
  400. package/src/views/bd/setting/formVersion/formScriptCompareView.vue +94 -0
  401. package/src/views/bd/setting/formVersion/formTemplateCompareView.vue +74 -0
  402. package/src/views/bd/setting/formVersion/ftHistoryDialog.vue +415 -0
  403. package/src/views/bd/setting/formVersion/link.vue +58 -0
  404. package/src/views/bd/setting/formVersion/preformDialog.vue +87 -0
  405. package/src/views/bd/setting/formVersion/reverButton.vue +82 -0
  406. package/src/views/bd/setting/formVersion/tableDetailDiff.js +99 -0
  407. package/src/views/bd/setting/formVersion/tableModelCompareView.vue +514 -0
  408. package/src/views/bd/setting/formVersion/textDiff.js +102 -0
  409. package/src/views/bd/setting/form_import_log/edit.vue +130 -0
  410. package/src/views/bd/setting/form_import_log/list.vue +211 -0
  411. package/src/views/bd/setting/form_script/edit.vue +196 -74
  412. package/src/views/bd/setting/form_script/edit1.vue +410 -187
  413. package/src/views/bd/setting/form_script/form_list.vue +118 -37
  414. package/src/views/bd/setting/form_script/list.vue +95 -21
  415. package/src/views/bd/setting/form_script/list1.vue +205 -118
  416. package/src/views/bd/setting/form_script/mixins/dialog.js +130 -1
  417. package/src/views/bd/setting/form_script/mixins/edit.js +265 -7
  418. package/src/views/bd/setting/form_script/mixins/edit1.js +259 -9
  419. package/src/views/bd/setting/form_script/mixins/form_list.js +322 -14
  420. package/src/views/bd/setting/form_script/mixins/list.js +307 -4
  421. package/src/views/bd/setting/form_script/mixins/list1.js +512 -14
  422. package/src/views/bd/setting/form_script/mixins/list2.js +10 -1
  423. package/src/views/bd/setting/form_script/mixins/otherAuthDialog.js +194 -0
  424. package/src/views/bd/setting/form_script/mixins/preformDialog.js +34 -1
  425. package/src/views/bd/setting/form_script/otherAuthDialog.vue +83 -0
  426. package/src/views/bd/setting/form_template/batchWfObjConfigDialog.vue +3 -3
  427. package/src/views/bd/setting/form_template/edit.vue +355 -184
  428. package/src/views/bd/setting/form_template/formDesignerDialog.vue +171 -0
  429. package/src/views/bd/setting/form_template/list.vue +301 -214
  430. package/src/views/bd/setting/form_template/mixins/batchWfObjConfigDialog.js +279 -1
  431. package/src/views/bd/setting/form_template/mixins/dialog.js +103 -1
  432. package/src/views/bd/setting/form_template/mixins/edit.js +277 -9
  433. package/src/views/bd/setting/form_template/mixins/editWfObjConfigDialog.js +92 -1
  434. package/src/views/bd/setting/form_template/mixins/ftHistoryDialog.js +91 -1
  435. package/src/views/bd/setting/form_template/mixins/itemEdit.js +104 -1
  436. package/src/views/bd/setting/form_template/mixins/itemList.js +234 -1
  437. package/src/views/bd/setting/form_template/mixins/list.js +721 -22
  438. package/src/views/bd/setting/form_template/mixins/list2.js +411 -0
  439. package/src/views/bd/setting/form_template/mixins/otherAuthDialog.js +193 -0
  440. package/src/views/bd/setting/form_template/mixins/preformDialog.js +28 -3
  441. package/src/views/bd/setting/form_template/mixins/wf_list.js +421 -3
  442. package/src/views/bd/setting/form_template/otherAuthDialog.vue +83 -0
  443. package/src/views/bd/setting/form_template/wfObjConfigDialog.vue +2 -2
  444. package/src/views/bd/setting/form_template/wf_list.vue +161 -127
  445. package/src/views/bd/setting/logic_param/edit.vue +146 -0
  446. package/src/views/bd/setting/logic_param/edit1.vue +106 -0
  447. package/src/views/bd/setting/logic_param/edit2.vue +139 -0
  448. package/src/views/bd/setting/logic_param/list.vue +74 -0
  449. package/src/views/bd/setting/logic_param/list1.vue +12 -0
  450. package/src/views/bd/setting/logic_param/list2.vue +12 -0
  451. package/src/views/bd/setting/logic_param/mixins/edit.js +93 -0
  452. package/src/views/bd/setting/logic_param/mixins/list.js +376 -0
  453. package/src/views/bd/setting/menu_kind/list.vue +172 -83
  454. package/src/views/bd/setting/menu_kind/mixins/authDialog.js +300 -7
  455. package/src/views/bd/setting/menu_kind/mixins/dialog.js +139 -1
  456. package/src/views/bd/setting/menu_kind/mixins/list.js +201 -1
  457. package/src/views/bd/setting/push_data/edit.vue +139 -0
  458. package/src/views/bd/setting/push_data/list.vue +283 -0
  459. package/src/views/bd/setting/push_data_h/edit.vue +153 -0
  460. package/src/views/bd/setting/push_data_h/list.vue +293 -0
  461. package/src/views/bd/setting/request_async_setting/edit.vue +320 -0
  462. package/src/views/bd/setting/request_async_setting/list.vue +372 -0
  463. package/src/views/bd/setting/request_setting/edit.vue +300 -0
  464. package/src/views/bd/setting/request_setting/list.vue +301 -0
  465. package/src/views/bd/setting/table_model/edit.vue +1079 -426
  466. package/src/views/bd/setting/table_model/list.vue +218 -128
  467. package/src/views/bd/setting/table_model/mixins/dialog.js +71 -1
  468. package/src/views/bd/setting/table_model/mixins/edit.js +1309 -13
  469. package/src/views/bd/setting/table_model/mixins/list.js +463 -2
  470. package/src/views/bd/setting/table_model/mixins/otherAuthDialog.js +201 -0
  471. package/src/views/bd/setting/table_model/mixins/zdDialog.js +114 -3
  472. package/src/views/bd/setting/table_model/otherAuthDialog.vue +83 -0
  473. package/src/views/bd/setting/utils/index.js +75 -1
  474. package/src/views/user/access_log/list.vue +418 -349
  475. package/src/views/user/area/dialog.vue +223 -117
  476. package/src/views/user/area/list.vue +318 -0
  477. package/src/views/user/common_attribute/list.vue +4 -1
  478. package/src/views/user/company_info/dialog.vue +195 -163
  479. package/src/views/user/extend_datasource/dialog.vue +3 -0
  480. package/src/views/user/extend_datasource/edit.vue +2 -1
  481. package/src/views/user/extend_datasource/list.vue +3 -0
  482. package/src/views/user/fieldTranslation/editDialog.vue +8 -8
  483. package/src/views/user/fieldTranslation/list.vue +33 -33
  484. package/src/views/user/form/vform/designer.vue +792 -749
  485. package/src/views/user/form/vform/formFieldMapping.js +2 -3
  486. package/src/views/user/form/vform/out_render.vue +1 -1
  487. package/src/views/user/form/vform/render.vue +67 -37
  488. package/src/views/user/form/view/edit.vue +56 -37
  489. package/src/views/user/form/view/list.vue +311 -52
  490. package/src/views/user/home/default.vue +1117 -979
  491. package/src/views/user/home/dev.vue +29 -0
  492. package/src/views/user/home/index.vue +18 -7
  493. package/src/views/user/login/default.vue +165 -36
  494. package/src/views/user/login/index.vue +4 -6
  495. package/src/views/user/login/indexMixin.js +329 -118
  496. package/src/views/user/menu/list.vue +27 -1
  497. package/src/views/user/notify_message/dialog.vue +44 -22
  498. package/src/views/user/notify_template/edit.vue +188 -187
  499. package/src/views/user/notify_template/edit2.vue +176 -0
  500. package/src/views/user/notify_template/list.vue +4 -1
  501. package/src/views/user/notify_template/list2.vue +190 -0
  502. package/src/views/user/outLink/form_view.vue +211 -211
  503. package/src/views/user/outLink/index.vue +67 -11
  504. package/src/views/user/position/list.vue +112 -72
  505. package/src/views/user/project_tag/dialog.vue +9 -4
  506. package/src/views/user/project_tag/edit.vue +2 -2
  507. package/src/views/user/project_tag/list.vue +9 -4
  508. package/src/views/user/request_setting/edit.vue +258 -0
  509. package/src/views/user/request_setting/list.vue +248 -0
  510. package/src/views/user/role/authConfig.vue +89 -0
  511. package/src/views/user/role/dialog.vue +70 -48
  512. package/src/views/user/role/edit.vue +609 -429
  513. package/src/views/user/role/list.vue +4 -4
  514. package/src/views/user/sale_org/dialog.vue +1 -1
  515. package/src/views/user/sale_org/list.vue +4 -1
  516. package/src/views/user/system_notice/infoDialog.vue +2 -1
  517. package/src/views/user/user/dialog.vue +46 -23
  518. package/src/views/user/user/edit.vue +1391 -1021
  519. package/src/views/user/user/form_dialog.vue +158 -0
  520. package/src/views/user/user/form_info.vue +210 -0
  521. package/src/views/user/user/info.vue +253 -140
  522. package/src/views/user/user/list.vue +652 -563
  523. package/src/views/user/user/modifyPasswordDialog.vue +64 -53
  524. package/src/views/user/wf/wfReport/index.vue +619 -0
  525. package/src/views/user/wf/wf_auto_submit_data/list.vue +2 -0
  526. package/src/views/user/wf/wf_manage/list.vue +379 -250
  527. package/src/views/user/wf/wf_manage/list2.vue +854 -0
  528. package/src/views/user/wf/wf_manage/wfContentDialog.vue +25 -22
  529. package/src/views/user/wf/wf_obj_config/importItemDialog.vue +109 -0
  530. package/src/views/user/wf/wf_obj_config/itemEdit.vue +25 -1
  531. package/src/views/user/wf/wf_obj_config/list.vue +114 -9
  532. package/src/views/user/wf/wf_transfer_setting/edit.vue +282 -0
  533. package/src/views/user/wf/wf_transfer_setting/list.vue +319 -0
  534. package/src/views/user/workbench_menu/list.vue +555 -0
  535. package/src/components/xform/form-render/container-item/list-h5-item2.vue +0 -1347
@@ -1,1222 +1,1653 @@
1
- <template>
2
- <div :class="{ 'has-logo': showLogo }">
3
- <!-- <logo v-if="showLogo" :collapse="isCollapse" /> -->
4
-
5
- <div class="hamburger-box" ref="hamhurger" @click="openUserInfo">
6
- <!-- <hamburger :is-active="sidebar.opened" @toggleClick="toggleSideBar" /> -->
7
- <div>
8
- <p class="name"><i class="iconfont icon-ziyuan"></i><span>{{ userInfo.nickName }}</span></p>
9
- </div>
10
- </div>
11
- <div class="business-name" ref="business">
12
- <el-tooltip :enterable="false" effect="dark" :content="companyInfo.companyName" :placement="direction">
13
- <p v-show="getMenuFlag()">{{ companyInfo.companyName }}</p>
14
- </el-tooltip>
15
- </div>
16
- <div class="fase-box" ref="fase" @mouseleave="$emit('selfClose')" @mouseenter="$emit('selfEnter')">
17
- <langTool v-if="getMenuFlag()"></langTool>
18
- <div class="item" @click="openCompanyDialog" v-if="getMenuFlag()">
19
- <el-tooltip :enterable="false" effect="dark" :content="$t1('切换组织')" :placement="direction">
20
- <i class="el-icon-set-up"/>
21
- </el-tooltip>
22
- </div>
23
- <div class="item" v-if="getMenuFlag()">
24
- <el-tooltip :enterable="false" effect="dark" :content="$t1('流程待办')" :placement="direction">
25
- <i class="iconfont icon-liuchengdaiban" @click="$router.push('/basic/wf/wf_manage/list')"/>
26
- </el-tooltip>
27
- </div>
28
- <div class="item" @click="logout()">
29
- <el-tooltip :enterable="false" effect="dark" :content="$t1('退出')" :placement="direction">
30
- <i class="el-icon-switch-button"/>
31
- </el-tooltip>
32
- </div>
33
- </div>
34
- <template v-for="router1 in viewRouter">
35
- <template v-for="router2 in router1.children">
36
- <div
37
- class="second-list"
38
- :key="router1.id + 't'+router2.id"
39
- :class="{ on: router2.id == nowNavID }"
40
- @mouseenter="stopFlag = 1"
41
- @mouseleave="showNav()"
42
- v-show="router2.id == nowNavID"
43
- :ref="'seconMenus' + router2.id"
44
- >
45
- <i class="ico-arrow"></i>
46
- <div>
47
- <div class="tit"><i :class="getMenuClass(router2,2)"></i><span>{{ getMenuName(router2) }}</span></div>
48
- <dl v-for="(router3,index3) in router2.children" :key="'router3'+index3">
49
-
50
- <div class="item" v-if="!router3.hidden" @click="rourteTo(router3,router1)">
51
- <!--<i class="el-icon-caret-right"></i>-->
52
- <i :class="getMenuClass(router3,3)"></i>
53
- <a>{{ getMenuName(router3) }}</a>
54
- </div>
55
- </dl>
56
- </div>
57
- </div>
58
- </template>
59
- </template>
60
- <el-menu
61
- class="menu-box"
62
- :class="{'lang-zh':$i18n.locale=='zh'}"
63
- text-color="#fff"
64
- active-text-color="#fff"
65
- :unique-opened="true"
66
- @mouseleave="showNav()"
67
- ref="seconMenus"
68
- >
69
- <el-scrollbar wrap-class="scrollbar-wrapper" id="menuUl">
70
- <el-submenu v-for="menuModule in menuModules" :index="''+menuModule.id" :key="'menuModule'+menuModule.id"
71
- @click.native="rourteTo(menuModule)">
72
- <template slot="title">
73
- <i :class="getMenuClass(menuModule,1)"></i>
74
- <span>{{ getMenuName(menuModule) }}</span>
75
- </template>
76
- <el-menu-item v-for="(router1, index1) in menuModule.children" :key="index1" :index="''+router1.id"
77
- :class="getMenuClass(router1,2)"
78
- @mouseenter.native="showNav(router1, $event)" @mouseleave.native="showNav()"
79
- @click="rourteTo(router1)">
80
- {{ getMenuName(router1) }}
81
- <i class="el-icon-caret-right" v-if="router1.children.length > 0"/>
82
- </el-menu-item>
83
- </el-submenu>
84
- </el-scrollbar>
85
- </el-menu>
86
- <div class="menu-btn">
87
- <i class="el-icon-arrow-up" @click="toUpMove()"></i>
88
- <i class="el-icon-arrow-down" @click="toDownMove()"></i>
89
- </div>
90
- <div id="tta" style="position: absolute;height: 100%;top: 0;right: 0;z-index: 9999;width: 800px;left: 100%;"
91
- v-if="showMenuModal"></div>
92
- <el-dialog
93
- title="切换组织"
94
- width="355px"
95
- custom-class="dialog-style list-dialog"
96
- v-if="showCompanyDialog"
97
- :visible.sync="showCompanyDialog"
98
- :append-to-body="true"
99
- :modal-append-to-body="true"
100
- :close-on-click-modal="false"
101
- v-el-drag-dialog
102
- v-el-dialog-center
103
- @close="changeCompanyClose"
104
- >
105
- <div class="cont">
106
- <el-input placeholder="搜索" class="search-btn" v-model="filterText"></el-input>
107
- <el-tree
108
- :props="defaultProps"
109
- :load="loadNode"
110
- node-key="id"
111
- ref="tree"
112
- highlight-current
113
- lazy
114
- :expand-on-click-node="true"
115
- @node-click="handleNodeClick"
116
- class="organization-tree"
117
- icon-class="el-icon-arrow-right"
118
- :filter-node-method="filterNode"
119
- ></el-tree>
120
- </div>
121
- <!-- <span slot="footer" class="dialog-footer">
122
- <el-button type="primary" plain class="button-sty" @click="changeCompanyClose">
123
- <i class="el-icon-close el-icon"></i>
124
- 取 消
125
- </el-button>
126
- <el-button type="primary" @click="changeCompany" class="button-sty">
127
- <i class="el-icon-check el-icon"></i>
128
- 确 定
129
- </el-button>
130
- </span> -->
131
- </el-dialog>
132
-
133
- <infoIframeDialog v-if="showInfoIframeDialog" :visiable.sync="showInfoIframeDialog"
134
- :dataId="userInfo.id"></infoIframeDialog>
135
- <userInfo v-if="showUserInfoDialog" :visiable.sync="showUserInfoDialog" :_dataId="userInfo.id" topValue="128px"
136
- @reload="userInfoReload"></userInfo>
137
-
138
- <onlineTalk></onlineTalk>
139
- </div>
140
- </template>
141
-
142
- <script>
143
- import {mapGetters} from 'vuex';
144
- import variables from '@/styles/variables.scss';
145
- import userInfo from '@base/views/user/user/info.vue';
146
- import onlineTalk from "@base/components/onlineTalk";
147
- import {
148
- getToken
149
- } from '@base/utils/auth';
150
- import indexUtil from "@base/utils/index.js"
151
- import langTool from "../langTool.vue";
152
-
153
- export default {
154
- props: {
155
- option: Object
156
- },
157
- data() {
158
- return {
159
- direction: 'bottom',
160
- defaultOpenedsArray: [],
161
- viewRouter: [],
162
- showMenuModal: false,
163
- menuheight: {
164
- height: ''
165
- },
166
- defaultProps: {
167
- label: 'label', //这里是树结构中需显示的数据(即接口返回的需展示在页面上的参数)
168
- children: [],
169
- isLeaf: 'leaf'
170
- },
171
- filterText: null,
172
- showCompanyDialog: false,
173
- choose_company_info: '',
174
- userInfo: {},
175
- companyInfo: {},
176
- showUserInfoDialog: false,
177
- hoverStatus: false,
178
- nowNavID: 'null',
179
- stopFlag: 0,
180
- showInfoIframeDialog: false,
181
- currentMenu: null,
182
- menuModules: [],
183
- firstMenuHeight: 0, // 第一个菜单的高度
184
- eveyMenuHeight: 48, // 每一个菜单的高度
185
- };
186
- },
187
- components: {userInfo, onlineTalk, langTool},
188
- computed: {
189
- ...mapGetters(['permission_routes', 'sidebar', 'sidebarRouters', 'isBdAdmin']),
190
- activeMenu() {
191
- const route = this.$route;
192
- const {meta, path} = route;
193
- // if set path, the sidebar will highlight the path you set
194
- if (meta.activeMenu) {
195
- return meta.activeMenu;
196
- }
197
- return path;
198
- },
199
- showLogo() {
200
- return this.$store.state.settings.sidebarLogo;
201
- },
202
- variables() {
203
- return variables;
204
- },
205
- /*isCollapse() {
206
- if (this.sidebar.opened) {
207
- this.direction = 'bottom';
208
- } else {
209
- this.direction = 'right-start';
210
- }
211
- return !this.sidebar.opened;
212
- }*/
213
- },
214
- watch: {
215
- filterText(val) {
216
- this.$refs.tree.filter(val);
217
- }
218
- },
219
- created() {
220
- indexUtil.initI18nMessage('menus')
221
- },
222
- mounted() {
223
- this.getUserInfo();
224
- setTimeout(() => {
225
- this.filterRoute();
226
- }, 100);
227
- this.countHeight();
228
- let query = this.$route.query;
229
- if (query && query.flag == 1) {
230
- this.showCompanyDialog = true;
231
- }
232
- },
233
- methods: {
234
- getMenuFlag() {
235
- return !this.isBdAdmin;
236
- },
237
- getMenuName(item) {
238
- let locale = this.$i18n?.locale;
239
- let zhTitle = (item.meta ? item.meta.title : '');
240
- let enTitle = (item.meta ? item.meta.enTitle : '');
241
- let title;
242
- if (locale == "en") {
243
- title = enTitle || zhTitle;
244
- } else {
245
- title = zhTitle
246
- }
247
- if (!enTitle || locale !== "en") {
248
- title = zhTitle
249
- }
250
- if (this.$t1) {
251
- title = this.$t1(title)
252
- }
253
-
254
- return title;
255
- },
256
- jumpOutLink(route) {
257
- let path = route.url || route.path;
258
- if (route.type == 4 && path) {
259
- if (path.indexOf('token={token}') >= 0) {
260
- path = path.replace('token={token}', 'token=' + getToken())
261
- }
262
- window.open(path);
263
- }
264
- },
265
- changeModules(row, cRow) {
266
- if (!row.route) return;
267
- localStorage.setItem('currentMenuId', row.id);
268
- let route = row.route ? '/' + row.route : '';
269
- sessionStorage.setItem('reUrl', cRow.path)
270
- sessionStorage.setItem('reCid', row.id)
271
- location.href = route + '/index.html/#/home';
272
-
273
- // location.reload();
274
- },
275
- filterRoute() {
276
- var oldRoutes = JSON.parse(JSON.stringify(this.sidebarRouters));
277
- var nRoute1s = [];
278
- oldRoutes.forEach((route1, index1) => {
279
- let nRoute2s = [];
280
- if (!route1.hidden) {
281
- route1.children.forEach((route2, index2) => {
282
- let nRoute3s = [];
283
- if (!route2.hidden) {
284
- route2.children.forEach((route3, index3) => {
285
- if (!route3.hidden) {
286
- nRoute3s.push(route3);
287
- }
288
- });
289
- }
290
- if (route2.type == 4 || route2.url || nRoute3s.length > 0) {
291
- route2.children = nRoute3s;
292
- nRoute2s.push(route2);
293
- }
294
- });
295
- }
296
- if (route1.type == 4 || route1.url || nRoute2s.length > 0) {
297
- route1.children = nRoute2s;
298
- nRoute1s.push(route1);
299
- }
300
- });
301
- this.viewRouter = nRoute1s || [];
302
- this.menuModules = nRoute1s || [];
303
-
304
- let reUrl = sessionStorage.getItem('reUrl');
305
- let reCid = sessionStorage.getItem('reCid');
306
- if (reUrl) {
307
- this.$nextTick(() => {
308
- this.$refs.seconMenus.open(reCid);
309
- })
310
- this.$router.push(reUrl);
311
- sessionStorage.removeItem('reUrl');
312
- sessionStorage.removeItem('reCid');
313
- }
314
- },
315
- filterRoute1() {
316
- var oldRoutes = JSON.parse(JSON.stringify(this.sidebarRouters));
317
- var nRoute1s = [];
318
- oldRoutes.forEach((route1, index1) => {
319
- let nRoute2s = [];
320
- if (!route1.hidden && route1.route) {
321
- route1.children.forEach((route2, index2) => {
322
- let nRoute3s = [];
323
- if (!route2.hidden) {
324
- route2.children.forEach((route3, index3) => {
325
- if (!route3.hidden) {
326
- nRoute3s.push(route3);
327
- }
328
- });
329
- }
330
- if (nRoute3s.length > 0) {
331
- route2.children = nRoute3s;
332
- nRoute2s.push(route2);
333
- }
334
- });
335
- }
336
- if (nRoute2s.length > 0) {
337
- route1.children = nRoute2s;
338
- nRoute1s.push(route1);
339
- }
340
- });
341
- let rows = nRoute1s;
342
- if (rows.length) {
343
- let currentMenu;
344
- if (nRoute1s.length) {
345
- var currentMenuId = localStorage.getItem('currentMenuId');
346
- if (currentMenuId) {
347
- currentMenu = nRoute1s.find(row => row.id == currentMenuId);
348
- }
349
- if (!currentMenu) {
350
- currentMenu = nRoute1s[0];
351
- }
352
- this.viewRouter = currentMenu.children;
353
- }
354
- this.currentMenu = currentMenu;
355
- this.menuModules = rows || [];
356
-
357
- /*if (currentMenu) {
358
- if (currentMenu.route != WEB_PREFIX.substring(1, WEB_PREFIX.length)) {
359
- this.changeModules(currentMenu, 1);
360
- } else {
361
- localStorage.setItem('currentMenuId', currentMenu.id);
362
- }
363
- } else {
364
- localStorage.removeItem('currentMenuId');
365
- }*/
366
- }
367
- },
368
- rourteTo(route) {
369
- let path = route.url || route.path;
370
- if (!path) {
371
- return
372
- }
373
- this.showMenuModal = true;
374
- setTimeout(() => {
375
- this.showMenuModal = false;
376
- }, 200);
377
- try {
378
- if (route.linkType == 4) {
379
- this.jumpOutLink(route)
380
- } else if (route.linkType == 3) {
381
- this.$router.push({path: path, query: {url: route.outLink, route: route.route}});
382
- } else {
383
- this.$router.push(path);
384
- }
385
- } catch (e) {
386
- console.error(e);
387
- }
388
- },
389
- logout() {
390
- this.$store.dispatch('user/logout2').then(res => {
391
- this.$router.push(`/login?redirect=${this.$route.fullPath}`);
392
- });
393
- },
394
- toggleSideBar() {
395
- this.$store.dispatch('app/toggleSideBar');
396
- },
397
- countHeight() {
398
- var h = this.$refs.hamhurger.offsetHeight + this.$refs.fase.offsetHeight + this.$refs.business.offsetHeight;
399
- this.menuheight.height = window.innerHeight - h + 'px';
400
- },
401
- handleNodeClick(data, node, v) {
402
- if (!data.hasChild) {
403
- this.choose_company_info = data;
404
- this.changeCompany();
405
- } else {
406
- this.choose_company_info = {};
407
- }
408
- },
409
- // 异步树叶子节点懒加载逻辑
410
- loadNode(node, resolve) {
411
- let companyCode = node && node.data && node.data.companyCode ? node.data.companyCode || '' : '';
412
- let url = !companyCode ? USER_PREFIX + '/user_company_info/getAllList' : USER_PREFIX + '/user_company_info/getChildren';
413
-
414
- this.$http({
415
- url: url,
416
- method: 'post',
417
- data: {
418
- parentCompanyCode: companyCode
419
- },
420
- success: res => {
421
- let datas = res.objx || [];
422
- let parentLabel = companyCode ? node.label : null;
423
- datas.forEach(item => {
424
- item.leaf = !item.hasChild;
425
- let label = item.companyName;
426
- /*if(companyCode){
427
- label = label + '('+companyTypeMap[item.companyType]+')'
428
- }*/
429
- item.label = label;
430
- item.parentLabel = parentLabel;
431
- });
432
-
433
- if (node.level === 0) {
434
- if (datas.length > 0 && datas[0].hasChild) {
435
- this.$nextTick(() => {
436
- let nodedata = node.childNodes[0];
437
- nodedata.expanded = true;
438
- nodedata.loadData();
439
- });
440
- }
441
- }
442
- resolve(datas);
443
- }
444
- });
445
- },
446
- filterNode(value, data) {
447
- if (!value) return true;
448
- let flag1 = data.label.indexOf(value) !== -1;
449
- let flag2 = data.parentLabel && data.parentLabel.indexOf(value) !== -1;
450
- return flag1 || flag2;
451
- },
452
- openCompanyDialog() {
453
- this.filterText = null;
454
- this.showCompanyDialog = true;
455
- },
456
- getWebPrefix(callback) {
457
- this.$http({
458
- url: USER_PREFIX + '/auth/getWebPrefix',
459
- method: `post`,
460
- data: {},
461
- isLoading: true,
462
- success: res => {
463
- let webPrefix = res.objx
464
- callback && callback(webPrefix)
465
- }
466
- });
467
- },
468
- changeCompany() {
469
- let row = this.choose_company_info;
470
- let query = this.$route.query;
471
- let flag = query && query.flag == 1 ? 1 : null;
472
- this.showCompanyDialog = false;
473
- if (row && row.companyCode) {
474
- this.$baseLoading({target: document.body, fullscreen: true});
475
- this.$http({
476
- url: USER_PREFIX + '/auth/switchCompany',
477
- method: 'post',
478
- data: {stringOne: row.companyCode},
479
- isLoading: true,
480
- success: res => {
481
- this.getWebPrefix((prefix) => {
482
- let webPrefix = prefix ? ("/" + prefix) : window.MAIN_WEB_PREFIX;
483
- sessionStorage.removeItem("out-token");
484
- this.$store.dispatch('user/changeCompanyInfo', row);
485
- this.$store.dispatch('tagsView/delAllViews');
486
- window.location.href = webPrefix + '/index.html';
487
- });
488
- }
489
- });
490
- } else {
491
- if (flag == 1) {
492
- this.$router.push({
493
- path: '/'
494
- });
495
- }
496
- }
497
- },
498
- changeCompanyClose() {
499
- let query = this.$route.query;
500
- let flag = query && query.flag == 1 ? 1 : null;
501
- if (flag == 1) {
502
- this.$router.push({
503
- path: '/'
504
- });
505
- }
506
- this.showCompanyDialog = false;
507
- },
508
- getUserInfo() {
509
- this.$http({
510
- url: USER_PREFIX + '/user/currentUser',
511
- method: 'post',
512
- success: res => {
513
- let userInfo = res.objx;
514
- this.headPhotoUrl = userInfo.headPhotoUrl ? userInfo.headPhotoUrl : require('@/resources/images' + '/default-header.png');
515
- this.userInfo = userInfo;
516
- }
517
- });
518
-
519
- this.$http({
520
- url: USER_PREFIX + '/company_info/getCurrent',
521
- method: `post`,
522
- success: res => {
523
- this.companyInfo = res.objx || {};
524
- }
525
- });
526
- },
527
- openUserInfo() {
528
- this.showUserInfoDialog = true;
529
- // this.showInfoIframeDialog = true;
530
- },
531
- userInfoReload() {
532
- this.showUserInfoDialog = true;
533
- },
534
- showNav(route, event) {
535
- let id = route && route.id ? route.id : null;
536
- if (id != null) {
537
- if (!route.children || !route.children.length) {
538
- return;
539
- }
540
- this.stopFlag = 1;
541
- this.nowNavID = id;
542
- this.$nextTick(() => {
543
- var wh = window.innerHeight;
544
- let dom = event.target;
545
- let domAttr = dom.getBoundingClientRect();
546
- // var sh1 = dom.offsetTop;
547
- var sh1 = domAttr.top;
548
- let $snav = this.$refs['seconMenus' + id][0];
549
- let snavAttr = $snav.getBoundingClientRect();
550
-
551
- // var sh2 = $snav.outerHeight;
552
- var sh2 = snavAttr.height;
553
- var sh = wh - (sh1 + sh2);
554
-
555
- var hd = 20;
556
- var xhd = sh - hd; //移动距离+固定值
557
- if (sh >= 0) {
558
-
559
- $snav.style['margin-top'] = sh1 + 'px';
560
- } else if (sh < 0) {
561
- let bd = sh1 + sh;
562
-
563
- $snav.style['margin-top'] = bd + 'px';
564
- $snav.querySelector(".ico-arrow").style['margin-top'] = (sh1 - bd) + 'px';
565
- }
566
- });
567
- } else {
568
- this.stopFlag = 0;
569
- setTimeout(() => {
570
- if (this.stopFlag == 0) {
571
- this.nowNavID = id;
572
- }
573
- }, 200);
574
- }
575
- },
576
- jumpTo(row, firstRow) {
577
- let route = firstRow.route ? '/' + firstRow.route : '';
578
- if (route == WEB_PREFIX) {
579
- this.$router.push({
580
- path: row.path
581
- });
582
- } else {
583
- this.changeModules(firstRow, row);
584
- }
585
- },
586
- toDownMove() {
587
- let containter = document.getElementById('menuUl').querySelector(".scrollbar-wrapper");
588
- let menuscrollTop = containter.scrollTop
589
- let scrollHeight = containter.scrollHeight
590
- let val = menuscrollTop + this.eveyMenuHeight;
591
- if (val < scrollHeight) {
592
- containter.scrollTop = val
593
- } else {
594
- containter.scrollTop = scrollHeight
595
- }
596
- },
597
- toUpMove() {
598
- let containter = document.getElementById('menuUl').querySelector(".scrollbar-wrapper");
599
- let menuscrollTop = containter.scrollTop
600
- let val = menuscrollTop - this.eveyMenuHeight;
601
- if (val > 0) {
602
- containter.scrollTop = val
603
- } else {
604
- containter.scrollTop = 0
605
- }
606
- },
607
- getMenuClass(menu, flag) {
608
- let res = "";
609
- if (menu.menuImg) {
610
- res = "iconfont " + menu.menuImg;
611
- } else if (flag == 1) {
612
- res = "iconfont icon-jinggao";//一级默认图标
613
- } else if (flag == 2) {
614
- res = "iconfont icon-circle";//二级默认图标
615
- } else if (flag == 3) {
616
- res = "iconfont icon-thirdMemu";//三级级默认图标
617
- }
618
-
619
- if (flag == 2) {
620
- if (menu.id == this.nowNavID) {
621
- res += " on";
622
- }
623
- }
624
- return res;
625
- }
626
- }
627
- };
628
- </script>
629
- <style lang="scss">
630
- @import '~@/styles/variables.scss';
631
-
632
- .hamburger-box {
633
- background-color: #0000004d;
634
- height: 42px;
635
- /* line-height: 30px; */
636
- text-align: center;
637
- /* box-shadow: 0 2px 6px rgb(0 0 0 / 10%); */
638
- position: relative;
639
- z-index: 2;
640
- overflow: hidden;
641
- font-size: 12px;
642
- color: rgba(255, 255, 255, 0.65);
643
-
644
- > div {
645
- color: #fff;
646
- font-size: 13px;
647
- margin-bottom: 4px;
648
- cursor: pointer;
649
- height: 36px;
650
- border-radius: 7px;
651
- margin: 6px 10px 6px 8px;
652
- overflow: hidden;
653
- background: #2a6494;
654
- }
655
-
656
- p {
657
- color: #fff;
658
- font-size: 13px;
659
- margin-bottom: 4px;
660
- cursor: pointer;
661
- /* border: solid 1px #ffffff61; */
662
- display: block;
663
- line-height: 27px;
664
- /* width: 88%; */
665
- margin-top: 6px;
666
- border-radius: 7px;
667
- margin: 6px 10px 6px 8px;
668
- background: #2a6494;
669
-
670
- i {
671
- font-size: 14px;
672
- vertical-align: middle;
673
- margin: 0 4px 0 6px;
674
- height: 36px;
675
- line-height: 36px;
676
- width: 21px;
677
- }
678
-
679
- span {
680
- width: 94px;
681
- display: table-cell;
682
- height: 32px;
683
- word-break: break-word;
684
- line-height: 16px;
685
- overflow: hidden;
686
- vertical-align: middle;
687
- }
688
-
689
- &.name {
690
- display: table-row;
691
- margin: 0;
692
- }
693
- }
694
- }
695
-
696
- .business-name {
697
- height: 47px;
698
- color: #ffffffb8;
699
- background: #0000004d;
700
- /* padding-top: 12px; */
701
- font-size: 12px;
702
- /* padding-left: 5px; */
703
- display: table-cell;
704
- vertical-align: middle;
705
- width: 140px;
706
- padding: 6px 10px;
707
- text-align: center;
708
-
709
- p {
710
- margin: 0;
711
- }
712
- }
713
-
714
- .fase-box {
715
- color: #fff;
716
- /* border-bottom: solid 1px rgba(255, 255, 255, 0.12); */
717
- border-top: solid 1px rgba(255, 255, 255, 0.12);
718
- background: #225076;
719
- padding: 4px 0 8px;
720
- width: 100%;
721
- z-index: 999;
722
- position: relative;
723
- /* display: flex;*/
724
- //text-align: left !important;
725
- // &:hover {
726
- // color: $baseColor;
727
- // background-color: #fbfdfe;
728
- // .fase-list {
729
- // display: block;
730
- // }
731
- // }
732
- .item {
733
- flex: 1;
734
- text-align: center;
735
- font-size: 16px;
736
- height: 40px;
737
- line-height: 40px;
738
- cursor: pointer;
739
- display: inline-block;
740
- min-width: 30px;
741
- }
742
-
743
- .fase-list {
744
- position: absolute;
745
- left: 100%;
746
- color: $baseColor;
747
- background-color: #fbfdfe;
748
- border: solid 1px $baseColor;
749
- border-left: none;
750
- top: -0.5px;
751
- padding: 10px 0 10px 24px;
752
- height: 43px;
753
- width: 413px;
754
- display: none;
755
-
756
- .l-item {
757
- display: inline-block;
758
- font-size: 12px;
759
- margin-right: 36px;
760
- line-height: 20px;
761
- cursor: pointer;
762
-
763
- i {
764
- vertical-align: middle;
765
- margin-right: 4px;
766
- font-size: 15px;
767
- margin-bottom: 2px;
768
- }
769
-
770
- &:hover {
771
- border-bottom: solid 1px $baseColor;
772
- }
773
- }
774
- }
775
- }
776
-
777
- .openSidebar .fase-box {
778
- text-align: center;
779
- //padding: 0;
780
- }
781
-
782
- #app .sidebar-container {
783
- overflow: visible;
784
- z-index: 1003;
785
-
786
- &.hover {
787
- z-index: 1003;
788
- }
789
-
790
- &.hover1 .fase-box {
791
- width: 138px;
792
- color: $baseColor;
793
- background-color: #fbfdfe;
794
- border-color: $baseColor;
795
- }
796
-
797
- .el-menu.menu-box {
798
- height: calc(100vh - 173px);
799
- font-size: 13px;
800
- z-index: -1;
801
- position: relative;
802
- background-color: rgba(0, 0, 0, .2);
803
- word-break: break-word;
804
-
805
- .el-submenu {
806
- overflow: hidden; //有点电脑分辨率问题
807
- .el-submenu__title {
808
- padding: 0 11px !important;
809
- height: 48px;
810
- line-height: 48px;
811
-
812
- i {
813
- color: #fff;
814
- font-size: 13px;
815
- margin-right: 0;
816
- width: 18px;
817
-
818
- &.iconfont {
819
- margin-right: 5px;
820
- font-size: 19px;
821
- float: left;
822
- }
823
-
824
- &.el-submenu__icon-arrow {
825
- right: 3px;
826
- text-align: center;
827
- font-size: 12px;
828
- margin-top: -5px;
829
- display: none;
830
- }
831
- }
832
-
833
- > span {
834
- height: 48px;
835
- display: table-cell;
836
- width: 114px;
837
- vertical-align: middle;
838
- font-size: 13px;
839
- white-space: normal;
840
- line-height: 16px;
841
- }
842
- }
843
-
844
- &.is-opened .el-submenu__title {
845
- //background-color: rgba(27, 66, 97) !important;
846
- }
847
- }
848
-
849
- .el-submenu {
850
- .el-menu {
851
- background: rgba(0, 0, 0, 0.35) !important;
852
- box-shadow: 0px -5px 8px #00000014 inset;
853
- //padding:4px 0;
854
- }
855
-
856
- .el-menu-item {
857
- height: auto;
858
- line-height: 1.4;
859
- padding-left: 33px !important;
860
- font-size: 12px;
861
- opacity: 0.8;
862
- margin: 10px 0 10px 14px;
863
- padding: 7px 2px 7px 0px;
864
- border-radius: 8px;
865
- text-align: left;
866
- min-width: 81px !important;
867
- white-space: normal;
868
- margin-right: 10px;
869
- word-break: break-word;
870
-
871
- &:before {
872
- position: absolute;
873
- top: 50%;
874
- height: 20px;
875
- margin-top: -10px;
876
- line-height: 20px;
877
- left: 7px;
878
- font-size: 18px;
879
- }
880
-
881
- [class^=el-icon-] {
882
- font-size: 12px;
883
- color: #FFF;
884
- position: absolute;
885
- right: 2px;
886
- top: 50%;
887
- margin-top: -5px;
888
- width: 14px;
889
- zoom: 0.8;
890
- display: none;
891
- }
892
-
893
- &:hover, &.on {
894
- opacity: 1;
895
- background-color: #FBFDFE !important;
896
- color: $baseColor !important;
897
-
898
- .el-icon-arrow-right {
899
- color: $baseColor
900
- }
901
- }
902
- }
903
- }
904
-
905
- &.lang-zh {
906
- font-size: 14px;
907
-
908
- .el-submenu {
909
- .el-submenu__title {
910
- > span {
911
- font-size: 14px;
912
- text-align: center
913
- }
914
-
915
- i.iconfont {
916
- margin-right: 2px;
917
- }
918
- }
919
-
920
- .el-menu-item {
921
- font-size: 13px
922
- }
923
- }
924
-
925
- }
926
- }
927
- }
928
-
929
- .main-container {
930
- z-index: 1002;
931
- }
932
-
933
- .menu-btn {
934
- background-color: #0000001c;
935
- height: 30px;
936
- line-height: 30px;
937
- text-align: center;
938
- box-shadow: 0 -10px 6px rgb(0 0 0 / 10%);
939
- display: flex;
940
- color: #FFF;
941
- font-size: 16px;
942
-
943
- i {
944
- display: inline-block;
945
- flex: 1;
946
- line-height: 30px;
947
- cursor: pointer;
948
- border-right: solid 1px rgba(0, 0, 0, 0.2);
949
-
950
- &:last-child {
951
- border-right: none;
952
- }
953
-
954
- &:hover {
955
- background-color: rgba(255, 255, 255, 0.12);
956
- }
957
- }
958
- }
959
-
960
- /*.menu-box {
961
- background-color: #0000002e !important;
962
- font-size: 14px;
963
- z-index: -1;
964
- position: relative;
965
- &.hover .el-scrollbar {
966
- width: 1000px;
967
- }
968
- .el-scrollbar {
969
- .el-scrollbar__view {
970
- padding-top: 1px;
971
- }
972
- .el-scrollbar__bar.is-vertical {
973
- left: 104px;
974
- }
975
- }
976
- .first-item {
977
- position: relative;
978
- width: 104px;
979
- &:nth-child(-n + 6) .second-list {
980
- bottom: inherit !important;
981
- top: -40.5px !important;
982
- }
983
- &:nth-child(1) .second-list {
984
- top: 0 !important;
985
- }
986
- &:nth-last-child(-n + 6) .second-list {
987
- bottom: -1%;
988
- top: inherit;
989
- }
990
- .f-name {
991
- height: 55px;
992
- line-height: 55px;
993
- padding-left: 9px;
994
- color: #fff;
995
- cursor: pointer;
996
- position: relative;
997
- padding-right: 6px;
998
- -webkit-transition: all 0.2s ease-in;
999
- -moz-transition: all 0.2s ease-in;
1000
- -o-transition: all 0.2s ease-in;
1001
- transition: all 0.2s ease-in;
1002
- width: 104px;
1003
- i.el-icon-arrow-right {
1004
- position: absolute;
1005
- right: 3px;
1006
- top: 21.5px;
1007
- width: 14px;
1008
- height: 14px;
1009
- }
1010
- .el-icon-s-opportunity {
1011
- opacity: 0.92;
1012
- font-size: 13px;
1013
- vertical-align: middle;
1014
- margin-right: 2px;
1015
- }
1016
- span{display: inline-block;width: calc(100% - 20px);vertical-align: middle;line-height: 1.2;}
1017
- }
1018
-
1019
- &:hover,
1020
- &.current {
1021
- .f-name {
1022
- background-color: #fbfdfe;
1023
- color: $baseColor;
1024
- }
1025
- .second-list {
1026
- display: block;
1027
- }
1028
- }
1029
- }
1030
- }
1031
-
1032
-
1033
- */
1034
- .second-list {
1035
- display: none;
1036
- position: absolute;
1037
- left: $sideBarWidth;
1038
- padding-left: 2px;
1039
- top: 0.5px;
1040
- // &:before {
1041
- // content: "";
1042
- // top: 22px;
1043
- // bottom: 22px;
1044
- // background-color: $baseColor;
1045
- // width: 2px;
1046
- // position: absolute;
1047
- // left: 24px;
1048
- // }
1049
- > div {
1050
- background: #fbfdfe;
1051
- border: solid 1px $baseColor;
1052
- top: -0.5px;
1053
- padding: 24px 0;
1054
- border-radius: 8px;
1055
- margin-left: 9px;
1056
- max-height: calc(84vh);
1057
- overflow-y: auto;
1058
- overflow-x: hidden;
1059
- width: 458px;
1060
- }
1061
-
1062
- .ico-arrow {
1063
- border-top: solid 7px transparent;
1064
- border-bottom: solid 7px transparent;
1065
- border-right: solid 7px $baseColor;
1066
- position: absolute;
1067
- left: 2px;
1068
- top: 8px;
1069
- }
1070
-
1071
- &.on {
1072
- display: block;
1073
- }
1074
-
1075
- .tit {
1076
- width: auto;
1077
- /* text-align: center; */
1078
- /* background: #22507614; */
1079
- color: $baseColor;
1080
- /* border: dashed 1px #1d4667; */
1081
- padding: 0 0 10px;
1082
- /* border-radius: 6px; */
1083
- /* margin: 5px auto; */
1084
- margin: 0 22px;
1085
- display: block;
1086
- border-bottom: solid 1px #eee;
1087
-
1088
- i, span {
1089
- opacity: 1;
1090
- vertical-align: middle;
1091
- margin-right: 7px;
1092
- font-size: 18px;
1093
- }
1094
-
1095
- span {
1096
- font-size: 14px
1097
- }
1098
- }
1099
-
1100
- dl {
1101
- padding: 8px 16px 3px 24px;
1102
- margin-top: 0;
1103
- margin-bottom: 0;
1104
- display: inline-block;
1105
- width: 50%;
1106
- position: relative;
1107
- word-break: break-all;
1108
-
1109
- &:after {
1110
- content: "";
1111
- width: 1px;
1112
- height: 14px;
1113
- background: #e4e4e4;
1114
- display: inline-block;
1115
- position: absolute;
1116
- right: -5px;
1117
- top: 50%;
1118
- margin-top: -3px;
1119
- }
1120
-
1121
- .s-name {
1122
- color: $baseColor;
1123
- display: inline-block;
1124
- width: 190px;
1125
- font-size: 14px;
1126
- vertical-align: top;
1127
- margin-top: 11px;
1128
- text-align: right;
1129
-
1130
- i {
1131
- margin-left: 5px;
1132
-
1133
- &.icon {
1134
- font-size: 13px;
1135
- opacity: 0.92;
1136
- margin-left: 2px;
1137
- margin-right: 4px;
1138
- }
1139
- }
1140
- }
1141
-
1142
- .item {
1143
- position: relative;
1144
- border: dashed 1px #FFF;
1145
- border-radius: 6px;
1146
- display: block;
1147
- padding: 6px 8px 6px 27px;
1148
- cursor: pointer;
1149
-
1150
- &:hover {
1151
- border-color: $baseColor;
1152
- color: $baseColor;
1153
-
1154
- i, a {
1155
- color: $baseColor;
1156
- }
1157
- }
1158
-
1159
- // &:after {
1160
- // content: "";
1161
- // width: 1px;
1162
- // height: 12px;
1163
- // background: #dcdcdc;
1164
- // position: absolute;
1165
- // right: -25px;
1166
- // top: 2px
1167
- // }
1168
-
1169
- i {
1170
- opacity: 0.8;
1171
- margin-right: 8px;
1172
- vertical-align: middle;
1173
- position: absolute;
1174
- left: 4px;
1175
- top: 50%;
1176
- margin-top: -11px;
1177
- height: 22px;
1178
- line-height: 22px;
1179
- font-size: 16px;
1180
- }
1181
-
1182
- a {
1183
- color: rgba(0, 0, 0, 0.82);
1184
- display: inline-block;
1185
- font-size: 13px;
1186
- position: relative;
1187
- overflow: initial !important;
1188
- -webkit-transition: all 0.2s ease-in;
1189
- -moz-transition: all 0.2s ease-in;
1190
- -o-transition: all 0.2s ease-in;
1191
- transition: all 0.2s ease-in;
1192
- width: auto !important;
1193
- vertical-align: middle;
1194
- word-break: break-word;
1195
-
1196
- &:hover {
1197
- color: $baseColor;
1198
-
1199
- // &:after {
1200
- // content: '';
1201
- // position: absolute;
1202
- // bottom: -4px;
1203
- // left: 0;
1204
- // right: 0;
1205
- // border-bottom: solid 1px $baseColor;
1206
- // }
1207
- }
1208
- }
1209
- }
1210
-
1211
- &:last-child {
1212
- .list-box {
1213
- border-bottom: none;
1214
- }
1215
- }
1216
- }
1217
- }
1218
-
1219
- // .el-submenu .el-menu {
1220
- // height: auto !important;
1221
- // }
1222
- </style>
1
+ <template>
2
+ <div :class="{ 'has-logo': showLogo, telescopMenu: !isMenu }">
3
+ <!-- <logo v-if="showLogo" :collapse="isCollapse" /> -->
4
+
5
+ <div class="hamburger-box" ref="hamhurger" @click="openUserInfo">
6
+ <!-- <hamburger :is-active="sidebar.opened" @toggleClick="toggleSideBar" /> -->
7
+ <div>
8
+ <p class="name">
9
+ <i class="iconfont icon-ziyuan"></i
10
+ ><span>{{ userInfo.nickName }}</span>
11
+ </p>
12
+ </div>
13
+ </div>
14
+ <div class="business-name" ref="business">
15
+ <el-tooltip
16
+ :enterable="false"
17
+ effect="dark"
18
+ :content="companyInfo.companyName"
19
+ :placement="direction"
20
+ >
21
+ <p v-show="getMenuFlag()">{{ companyInfo.companyName }}</p>
22
+ </el-tooltip>
23
+ </div>
24
+ <div
25
+ class="fase-box"
26
+ ref="fase"
27
+ @mouseleave="$emit('selfClose')"
28
+ @mouseenter="$emit('selfEnter')"
29
+ >
30
+ <langTool v-if="getMenuFlag()"></langTool>
31
+ <div class="item" @click="openCompanyDialog" v-if="getMenuFlag()">
32
+ <el-tooltip
33
+ :enterable="false"
34
+ effect="dark"
35
+ :content="$t1('切换组织')"
36
+ :placement="direction"
37
+ >
38
+ <i class="el-icon-set-up" />
39
+ </el-tooltip>
40
+ </div>
41
+ <div class="item" v-if="getMenuFlag()">
42
+ <el-tooltip
43
+ :enterable="false"
44
+ effect="dark"
45
+ :content="$t1('流程待办')"
46
+ :placement="direction"
47
+ >
48
+ <i
49
+ class="iconfont icon-liuchengdaiban"
50
+ @click="$router.push('/basic/wf/wf_manage/list')"
51
+ />
52
+ </el-tooltip>
53
+ </div>
54
+ <div class="item" v-if="isDev && isBdAdmin">
55
+ <el-tooltip
56
+ :enterable="false"
57
+ effect="dark"
58
+ :content="$t1('获取提取码')"
59
+ :placement="direction"
60
+ >
61
+ <i
62
+ class="el-icon-setting"
63
+ @click="showExtractedCodeCreateDialog = true"
64
+ />
65
+ </el-tooltip>
66
+ </div>
67
+ <div class="item" v-if="isBdAdmin">
68
+ <el-tooltip
69
+ :enterable="false"
70
+ effect="dark"
71
+ :content="$t1('查看提取码')"
72
+ :placement="direction"
73
+ >
74
+ <i
75
+ class="el-icon-tickets"
76
+ @click="showExtractedCodeQueryDialog = true"
77
+ />
78
+ </el-tooltip>
79
+ </div>
80
+
81
+ <div class="item" @click="logout()">
82
+ <el-tooltip
83
+ :enterable="false"
84
+ effect="dark"
85
+ :content="$t1('退出')"
86
+ :placement="direction"
87
+ >
88
+ <i class="el-icon-switch-button" />
89
+ </el-tooltip>
90
+ </div>
91
+ </div>
92
+ <template v-for="router1 in viewRouter">
93
+ <template v-for="router2 in router1.children">
94
+ <div
95
+ class="second-list"
96
+ :key="router1.id + 't' + router2.id"
97
+ :class="{ on: router2.id == nowNavID }"
98
+ @mouseenter="stopFlag = 1"
99
+ @mouseleave="showNav()"
100
+ v-show="router2.id == nowNavID"
101
+ :ref="'seconMenus' + router2.id"
102
+ >
103
+ <i class="ico-arrow"></i>
104
+ <div>
105
+ <div class="tit">
106
+ <i :class="getMenuClass(router2, 2)"></i
107
+ ><span>{{ getMenuName(router2) }}</span>
108
+ </div>
109
+ <dl
110
+ v-for="(router3, index3) in router2.children"
111
+ :key="'router3' + index3"
112
+ >
113
+ <div
114
+ class="item"
115
+ v-if="!router3.hidden"
116
+ @click="rourteTo(router3, router1)"
117
+ >
118
+ <!--<i class="el-icon-caret-right"></i>-->
119
+ <i :class="getMenuClass(router3, 3)"></i>
120
+ <a>{{ getMenuName(router3) }}</a>
121
+ </div>
122
+ </dl>
123
+ </div>
124
+ </div>
125
+ </template>
126
+ </template>
127
+ <el-menu
128
+ class="menu-box"
129
+ :class="{ 'lang-zh': $i18n.locale == 'zh' }"
130
+ text-color="#fff"
131
+ active-text-color="#fff"
132
+ :unique-opened="true"
133
+ @mouseleave="showNav()"
134
+ ref="seconMenus"
135
+ :collapse="!isMenu"
136
+ >
137
+ <el-scrollbar wrap-class="scrollbar-wrapper" id="menuUl">
138
+ <component
139
+ v-for="menuModule in menuModules"
140
+ :is="getMenuType(menuModule)"
141
+ :index="'' + menuModule.id"
142
+ :key="'menuModule' + menuModule.id"
143
+ @click.native="rourteTo(menuModule)"
144
+ >
145
+ <i
146
+ :class="getMenuClass(menuModule, 1)"
147
+ v-if="menuModule.children.length <= 0"
148
+ ></i>
149
+ <template slot="title">
150
+ <i
151
+ :class="getMenuClass(menuModule, 1)"
152
+ v-if="menuModule.children.length > 0"
153
+ ></i>
154
+ <span>{{ getMenuName(menuModule) }}</span>
155
+ </template>
156
+ <component
157
+ v-for="(router2, index1) in menuModule.children"
158
+ :is="getMenuType(router2)"
159
+ :key="index1"
160
+ :index="'' + router2.id"
161
+ @mouseenter.native="showNav(router2, $event)"
162
+ @mouseleave.native="showNav()"
163
+ @click="rourteTo(router2)"
164
+ >
165
+ <template slot="title">
166
+ <i :class="getMenuClass(router2, 2)"></i>
167
+ <span>{{ getMenuName(router2) }}</span>
168
+ </template>
169
+ <el-menu-item
170
+ v-for="(router3, index3) in router2.children"
171
+ :key="index3"
172
+ :index="'' + router3.id"
173
+ @click="rourteTo(router3)"
174
+ >
175
+ <template slot="title">
176
+ <i :class="getMenuClass(router3, 3)"></i>
177
+ <span>{{ getMenuName(router3) }}</span>
178
+ </template>
179
+ </el-menu-item>
180
+ </component>
181
+ </component>
182
+ <!-- <el-menu-item
183
+ @click.native="openCreateCompanyDialog"
184
+ index="xx"
185
+ v-if="isFormDev"
186
+ >
187
+ <template slot="title">
188
+ <i :class="getMenuClass({}, 1)"></i>
189
+ <span>新建企业</span>
190
+ </template>
191
+ </el-menu-item> -->
192
+ </el-scrollbar>
193
+ </el-menu>
194
+ <div class="menu-btn">
195
+ <i class="el-icon-arrow-up" @click="toUpMove()"></i>
196
+ <i class="el-icon-arrow-down" @click="toDownMove()"></i>
197
+ </div>
198
+ <div
199
+ id="tta"
200
+ style="
201
+ position: absolute;
202
+ height: 100%;
203
+ top: 0;
204
+ right: 0;
205
+ z-index: 9999;
206
+ width: 800px;
207
+ left: 100%;
208
+ "
209
+ v-if="showMenuModal"
210
+ ></div>
211
+ <el-dialog
212
+ :title="$t1('切换组织')"
213
+ width="355px"
214
+ custom-class="dialog-style list-dialog"
215
+ v-if="showCompanyDialog"
216
+ :visible.sync="showCompanyDialog"
217
+ :append-to-body="true"
218
+ :modal-append-to-body="true"
219
+ :close-on-click-modal="false"
220
+ v-el-drag-dialog
221
+ v-el-dialog-center
222
+ @close="changeCompanyClose"
223
+ >
224
+ <div class="cont">
225
+ <el-input
226
+ :placeholder="$t1('搜索')"
227
+ class="search-btn"
228
+ v-model="filterText"
229
+ ></el-input>
230
+ <el-tree
231
+ :props="defaultProps"
232
+ :load="loadNode"
233
+ node-key="id"
234
+ ref="tree"
235
+ highlight-current
236
+ lazy
237
+ :expand-on-click-node="true"
238
+ @node-click="handleNodeClick"
239
+ class="organization-tree"
240
+ icon-class="el-icon-arrow-right"
241
+ :filter-node-method="filterNode"
242
+ ></el-tree>
243
+ </div>
244
+ <!-- <span slot="footer" class="dialog-footer">
245
+ <el-button type="primary" plain class="button-sty" @click="changeCompanyClose">
246
+ <i class="el-icon-close el-icon"></i>
247
+
248
+ </el-button>
249
+ <el-button type="primary" @click="changeCompany" class="button-sty">
250
+ <i class="el-icon-check el-icon"></i>
251
+
252
+ </el-button>
253
+ </span> -->
254
+ </el-dialog>
255
+
256
+ <!-- <infoIframeDialog v-if="showInfoIframeDialog" :visiable.sync="showInfoIframeDialog"
257
+ :dataId="userInfo.id"></infoIframeDialog>-->
258
+ <userInfo
259
+ v-if="!isFormDev && showUserInfoDialog"
260
+ :visiable.sync="showUserInfoDialog"
261
+ :_dataId="userInfo.id"
262
+ topValue="128px"
263
+ @reload="userInfoReload"
264
+ ></userInfo>
265
+ <userFormInfo
266
+ v-if="isFormDev && showUserInfoDialog"
267
+ :visiable.sync="showUserInfoDialog"
268
+ :_dataId="userInfo.id"
269
+ topValue="128px"
270
+ @reload="userInfoReload"
271
+ ></userFormInfo>
272
+ <onlineTalk></onlineTalk>
273
+ <extractedCodeCreateDialog
274
+ v-if="showExtractedCodeCreateDialog"
275
+ :visiable.sync="showExtractedCodeCreateDialog"
276
+ ></extractedCodeCreateDialog>
277
+ <extractedCodeQueryDialog
278
+ v-if="showExtractedCodeQueryDialog"
279
+ :visiable.sync="showExtractedCodeQueryDialog"
280
+ ></extractedCodeQueryDialog>
281
+ <createCompanyDialog
282
+ v-if="showCreateCompanyDialog"
283
+ :visiable.sync="showCreateCompanyDialog"
284
+ ></createCompanyDialog>
285
+ </div>
286
+ </template>
287
+
288
+ <script>
289
+ import { mapGetters } from "vuex";
290
+ import variables from "@/styles/variables.scss";
291
+ import userInfo from "@base/views/user/user/info.vue";
292
+ import userFormInfo from "@base/views/user/user/form_info.vue";
293
+ import onlineTalk from "@base/components/onlineTalk";
294
+ import { getToken } from "@base/utils/auth";
295
+ import indexUtil from "@base/utils/index.js";
296
+ import langTool from "../langTool.vue";
297
+ import { initPddLog } from "@base/utils/pddLog";
298
+
299
+ import extractedCodeCreateDialog from "../extractedCode/createDialog.vue";
300
+ import extractedCodeQueryDialog from "../extractedCode/queryDialog.vue";
301
+ import { getBdFlag } from "@base/api/user";
302
+ import createCompanyDialog from "@base/layout/components/createCompany/createCompanyDialog.vue";
303
+
304
+ export default {
305
+ props: {
306
+ option: Object,
307
+ isMenu: {
308
+ type: Boolean,
309
+ },
310
+ },
311
+ components: {
312
+ userInfo,
313
+ userFormInfo,
314
+ onlineTalk,
315
+ langTool,
316
+ extractedCodeCreateDialog,
317
+ extractedCodeQueryDialog,
318
+ createCompanyDialog,
319
+ },
320
+ data() {
321
+ return {
322
+ direction: "bottom",
323
+ defaultOpenedsArray: [],
324
+ viewRouter: [],
325
+ showMenuModal: false,
326
+ menuheight: {
327
+ height: "",
328
+ },
329
+ defaultProps: {
330
+ label: "label", //这里是树结构中需显示的数据(即接口返回的需展示在页面上的参数)
331
+ children: [],
332
+ isLeaf: "leaf",
333
+ },
334
+ filterText: null,
335
+ showCompanyDialog: false,
336
+ choose_company_info: "",
337
+ userInfo: {},
338
+ companyInfo: {},
339
+ showUserInfoDialog: false,
340
+ hoverStatus: false,
341
+ nowNavID: "null",
342
+ stopFlag: 0,
343
+ showInfoIframeDialog: false,
344
+ currentMenu: null,
345
+ menuModules: [],
346
+ firstMenuHeight: 0, // 第一个菜单的高度
347
+ eveyMenuHeight: 48, // 每一个菜单的高度
348
+ isFormDev: false,
349
+
350
+ showExtractedCodeCreateDialog: false,
351
+ showExtractedCodeQueryDialog: false,
352
+ isDev: false,
353
+ showCreateCompanyDialog: false,
354
+ };
355
+ },
356
+ computed: {
357
+ ...mapGetters([
358
+ "permission_routes",
359
+ "sidebar",
360
+ "sidebarRouters",
361
+ "isBdAdmin",
362
+ "userFlag",
363
+ ]),
364
+ activeMenu() {
365
+ const route = this.$route;
366
+ const { meta, path } = route;
367
+ // if set path, the sidebar will highlight the path you set
368
+ if (meta.activeMenu) {
369
+ return meta.activeMenu;
370
+ }
371
+ return path;
372
+ },
373
+ showLogo() {
374
+ return this.$store.state.settings.sidebarLogo;
375
+ },
376
+ variables() {
377
+ return variables;
378
+ },
379
+ /*isCollapse() {
380
+ if (this.sidebar.opened) {
381
+ this.direction = 'bottom';
382
+ } else {
383
+ this.direction = 'right-start';
384
+ }
385
+ return !this.sidebar.opened;
386
+ }*/
387
+ },
388
+ watch: {
389
+ filterText(val) {
390
+ this.$refs.tree.filter(val);
391
+ },
392
+ },
393
+ created() {
394
+ indexUtil.initI18nMessage("menus");
395
+ },
396
+ mounted() {
397
+ this.getUserInfo();
398
+ setTimeout(() => {
399
+ this.filterRoute();
400
+ }, 100);
401
+ this.countHeight();
402
+ let query = this.$route.query;
403
+ if (query && query.flag == 1) {
404
+ this.showCompanyDialog = true;
405
+ }
406
+ initPddLog(); //初始化拼多多日志
407
+ this.initIsFormDev();
408
+ this.getBdEnv();
409
+ },
410
+ methods: {
411
+ getMenuType(item) {
412
+ if (item.children && item.children.length > 0) {
413
+ return "el-submenu";
414
+ } else {
415
+ return "el-menu-item";
416
+ }
417
+ },
418
+ getBdEnv() {
419
+ getBdFlag({
420
+ success: (res) => {
421
+ this.isDev = res.objx == 1;
422
+ },
423
+ });
424
+ },
425
+ initIsFormDev() {
426
+ let userFlag = this.userFlag;
427
+ this.isFormDev = userFlag == 6 || userFlag == 7 || userFlag == 8;
428
+ },
429
+ getMenuFlag() {
430
+ return !this.isBdAdmin;
431
+ },
432
+ getMenuName(item) {
433
+ let locale = this.$i18n?.locale;
434
+ let zhTitle = item.meta ? item.meta.title : "";
435
+ let enTitle = item.meta ? item.meta.enTitle : "";
436
+ let title;
437
+ if (locale == "en") {
438
+ title = enTitle || zhTitle;
439
+ } else {
440
+ title = zhTitle;
441
+ }
442
+ if (!enTitle || locale !== "en") {
443
+ title = zhTitle;
444
+ }
445
+ if (this.$t1) {
446
+ title = this.$t1(title);
447
+ }
448
+
449
+ return title;
450
+ },
451
+ jumpOutLink(route) {
452
+ let path = route.url || route.path;
453
+ if (route.type == 4 && path) {
454
+ let params = this.getCustomReqUrlAndCleanUrl(path);
455
+ let reqUrl = params.custom_req_url;
456
+ if (reqUrl) {
457
+ this.$http({
458
+ url: reqUrl,
459
+ method: `post`,
460
+ data: { thirdUrl: params.newUrl },
461
+ isLoading: true,
462
+ success: (res) => {
463
+ path = res.objx;
464
+ window.open(path);
465
+ },
466
+ });
467
+ } else {
468
+ if (path.indexOf("token={token}") >= 0) {
469
+ path = path.replace("token={token}", "token=" + getToken());
470
+ }
471
+ window.open(path);
472
+ }
473
+ }
474
+ },
475
+ getCustomReqUrlAndCleanUrl(url) {
476
+ // 直接使用正则表达式匹配
477
+ const match = url.match(/[?&]custom_req_url=([^&?#]+)/);
478
+ if (match) {
479
+ const customReqUrl = decodeURIComponent(match[1]);
480
+ // 移除匹配到的参数部分
481
+ const newUrl = url.replace(
482
+ match[0],
483
+ match[0].startsWith("?") ? "?" : ""
484
+ );
485
+
486
+ return {
487
+ custom_req_url: customReqUrl,
488
+ newUrl: newUrl.replace(/\?$/, "").replace(/\?&/, "?"),
489
+ };
490
+ }
491
+
492
+ return {
493
+ custom_req_url: "",
494
+ newUrl: url,
495
+ };
496
+ },
497
+ changeModules(row, cRow) {
498
+ if (!row.route) return;
499
+ localStorage.setItem("currentMenuId", row.id);
500
+ let route = row.route ? "/" + row.route : "";
501
+ sessionStorage.setItem("reUrl", cRow.path);
502
+ sessionStorage.setItem("reCid", row.id);
503
+ location.href = route + "/index.html/#/home";
504
+
505
+ // location.reload();
506
+ },
507
+ filterRoute() {
508
+ var oldRoutes = JSON.parse(JSON.stringify(this.sidebarRouters));
509
+ var nRoute1s = [];
510
+ oldRoutes.forEach((route1, index1) => {
511
+ let nRoute2s = [];
512
+ if (!route1.hidden) {
513
+ route1.children.forEach((route2, index2) => {
514
+ let nRoute3s = [];
515
+ if (!route2.hidden) {
516
+ route2.children.forEach((route3, index3) => {
517
+ if (!route3.hidden) {
518
+ nRoute3s.push(route3);
519
+ }
520
+ });
521
+ }
522
+ if (route2.type == 4 || route2.url || nRoute3s.length > 0) {
523
+ route2.children = nRoute3s;
524
+ nRoute2s.push(route2);
525
+ }
526
+ });
527
+ }
528
+ if (route1.type == 4 || route1.url || nRoute2s.length > 0) {
529
+ route1.children = nRoute2s;
530
+ nRoute1s.push(route1);
531
+ }
532
+ });
533
+ this.viewRouter = nRoute1s || [];
534
+ this.menuModules = nRoute1s || [];
535
+
536
+ let reUrl = sessionStorage.getItem("reUrl");
537
+ let reCid = sessionStorage.getItem("reCid");
538
+ if (reUrl) {
539
+ this.$nextTick(() => {
540
+ this.$refs.seconMenus.open(reCid);
541
+ });
542
+ this.$router.push(reUrl);
543
+ sessionStorage.removeItem("reUrl");
544
+ sessionStorage.removeItem("reCid");
545
+ }
546
+ },
547
+ filterRoute1() {
548
+ var oldRoutes = JSON.parse(JSON.stringify(this.sidebarRouters));
549
+ var nRoute1s = [];
550
+ oldRoutes.forEach((route1, index1) => {
551
+ let nRoute2s = [];
552
+ if (!route1.hidden && route1.route) {
553
+ route1.children.forEach((route2, index2) => {
554
+ let nRoute3s = [];
555
+ if (!route2.hidden) {
556
+ route2.children.forEach((route3, index3) => {
557
+ if (!route3.hidden) {
558
+ nRoute3s.push(route3);
559
+ }
560
+ });
561
+ }
562
+ if (nRoute3s.length > 0) {
563
+ route2.children = nRoute3s;
564
+ nRoute2s.push(route2);
565
+ }
566
+ });
567
+ }
568
+ if (nRoute2s.length > 0) {
569
+ route1.children = nRoute2s;
570
+ nRoute1s.push(route1);
571
+ }
572
+ });
573
+ let rows = nRoute1s;
574
+ if (rows.length) {
575
+ let currentMenu;
576
+ if (nRoute1s.length) {
577
+ var currentMenuId = localStorage.getItem("currentMenuId");
578
+ if (currentMenuId) {
579
+ currentMenu = nRoute1s.find((row) => row.id == currentMenuId);
580
+ }
581
+ if (!currentMenu) {
582
+ currentMenu = nRoute1s[0];
583
+ }
584
+ this.viewRouter = currentMenu.children;
585
+ }
586
+ this.currentMenu = currentMenu;
587
+ this.menuModules = rows || [];
588
+
589
+ /*if (currentMenu) {
590
+ if (currentMenu.route != WEB_PREFIX.substring(1, WEB_PREFIX.length)) {
591
+ this.changeModules(currentMenu, 1);
592
+ } else {
593
+ localStorage.setItem('currentMenuId', currentMenu.id);
594
+ }
595
+ } else {
596
+ localStorage.removeItem('currentMenuId');
597
+ }*/
598
+ }
599
+ },
600
+ rourteTo(route) {
601
+ let path = route.url || route.path;
602
+ if (!path) {
603
+ return;
604
+ }
605
+ this.showMenuModal = true;
606
+ setTimeout(() => {
607
+ this.showMenuModal = false;
608
+ }, 200);
609
+ try {
610
+ if (route.linkType == 4) {
611
+ this.jumpOutLink(route);
612
+ } else if (route.linkType == 3) {
613
+ this.$router.push({
614
+ path: path,
615
+ query: { url: route.outLink, route: route.route },
616
+ });
617
+ } else {
618
+ this.$router.push(path);
619
+ }
620
+ } catch (e) {
621
+ console.error(e);
622
+ }
623
+ },
624
+ logout() {
625
+ this.$store.dispatch("user/logout2").then((res) => {
626
+ this.$router.push(`/login?redirect=${this.$route.fullPath}`);
627
+ });
628
+ },
629
+ toggleSideBar() {
630
+ this.$store.dispatch("app/toggleSideBar");
631
+ },
632
+ countHeight() {
633
+ var h =
634
+ this.$refs.hamhurger.offsetHeight +
635
+ this.$refs.fase.offsetHeight +
636
+ this.$refs.business.offsetHeight;
637
+ this.menuheight.height = window.innerHeight - h + "px";
638
+ },
639
+ handleNodeClick(data, node, v) {
640
+ if (!data.hasChild) {
641
+ this.choose_company_info = data;
642
+ this.changeCompany();
643
+ } else {
644
+ this.choose_company_info = {};
645
+ }
646
+ },
647
+ // 异步树叶子节点懒加载逻辑
648
+ loadNode(node, resolve) {
649
+ let companyCode =
650
+ node && node.data && node.data.companyCode
651
+ ? node.data.companyCode || ""
652
+ : "";
653
+ let url = !companyCode
654
+ ? USER_PREFIX + "/user_company_info/getAllList"
655
+ : USER_PREFIX + "/user_company_info/getChildren";
656
+
657
+ this.$http({
658
+ url: url,
659
+ method: "post",
660
+ data: {
661
+ parentCompanyCode: companyCode,
662
+ },
663
+ success: (res) => {
664
+ let datas = res.objx || [];
665
+ let parentLabel = companyCode ? node.label : null;
666
+ datas.forEach((item) => {
667
+ item.leaf = !item.hasChild;
668
+ let label = this.$t1(item.companyName);
669
+ /*if(companyCode){
670
+ label = label + '('+companyTypeMap[item.companyType]+')'
671
+ }*/
672
+ item.label = label;
673
+ item.parentLabel = parentLabel;
674
+ });
675
+
676
+ if (node.level === 0) {
677
+ if (datas.length > 0 && datas[0].hasChild) {
678
+ this.$nextTick(() => {
679
+ let nodedata = node.childNodes[0];
680
+ nodedata.expanded = true;
681
+ nodedata.loadData();
682
+ });
683
+ }
684
+ }
685
+ resolve(datas);
686
+ },
687
+ });
688
+ },
689
+ filterNode(value, data) {
690
+ if (!value) return true;
691
+ let flag1 = data.label.indexOf(value) !== -1;
692
+ let flag2 = data.parentLabel && data.parentLabel.indexOf(value) !== -1;
693
+ return flag1 || flag2;
694
+ },
695
+ openCompanyDialog() {
696
+ this.filterText = null;
697
+ this.showCompanyDialog = true;
698
+ },
699
+ getWebPrefix(callback) {
700
+ this.$http({
701
+ url: USER_PREFIX + "/auth/getWebPrefix",
702
+ method: `post`,
703
+ data: {},
704
+ isLoading: true,
705
+ success: (res) => {
706
+ let webPrefix = res.objx;
707
+ callback && callback(webPrefix);
708
+ },
709
+ });
710
+ },
711
+ changeCompany() {
712
+ let row = this.choose_company_info;
713
+ let query = this.$route.query;
714
+ let flag = query && query.flag == 1 ? 1 : null;
715
+ this.showCompanyDialog = false;
716
+ if (row && row.companyCode) {
717
+ this.$baseLoading({ target: document.body, fullscreen: true });
718
+ this.$http({
719
+ url: USER_PREFIX + "/auth/switchCompany",
720
+ method: "post",
721
+ data: { stringOne: row.companyCode },
722
+ isLoading: true,
723
+ success: (res) => {
724
+ this.getWebPrefix((prefix) => {
725
+ let webPrefix = prefix ? "/" + prefix : window.MAIN_WEB_PREFIX;
726
+ sessionStorage.removeItem("out-token");
727
+ this.$store.dispatch("user/changeCompanyInfo", row);
728
+ this.$store.dispatch("tagsView/delAllViews");
729
+ window.location.href = webPrefix + "/index.html";
730
+ });
731
+ },
732
+ });
733
+ } else {
734
+ if (flag == 1) {
735
+ this.$router.push({
736
+ path: "/",
737
+ });
738
+ }
739
+ }
740
+ },
741
+ changeCompanyClose() {
742
+ let query = this.$route.query;
743
+ let flag = query && query.flag == 1 ? 1 : null;
744
+ if (flag == 1) {
745
+ this.$router.push({
746
+ path: "/",
747
+ });
748
+ }
749
+ this.showCompanyDialog = false;
750
+ },
751
+ getUserInfo() {
752
+ this.$http({
753
+ url: USER_PREFIX + "/user/currentUser",
754
+ method: "post",
755
+ success: (res) => {
756
+ let userInfo = res.objx;
757
+ this.headPhotoUrl = userInfo.headPhotoUrl
758
+ ? userInfo.headPhotoUrl
759
+ : require("@/resources/images" + "/default-header.png");
760
+ this.userInfo = userInfo;
761
+ },
762
+ });
763
+
764
+ this.$http({
765
+ url: USER_PREFIX + "/company_info/getCurrent",
766
+ method: `post`,
767
+ success: (res) => {
768
+ this.companyInfo = res.objx || {};
769
+ },
770
+ });
771
+ },
772
+ openUserInfo() {
773
+ this.showUserInfoDialog = true;
774
+ // this.showInfoIframeDialog = true;
775
+ },
776
+ userInfoReload() {
777
+ this.showUserInfoDialog = true;
778
+ },
779
+ showNav(route, event) {
780
+ if (!this.isMenu) return;
781
+ let id = route && route.id ? route.id : null;
782
+ if (id != null) {
783
+ if (!route.children || !route.children.length) {
784
+ return;
785
+ }
786
+ this.stopFlag = 1;
787
+ this.nowNavID = id;
788
+ this.$nextTick(() => {
789
+ var wh = window.innerHeight;
790
+ let dom = event.target;
791
+ let domAttr = dom.getBoundingClientRect();
792
+ // var sh1 = dom.offsetTop;
793
+ var sh1 = domAttr.top + 5;
794
+ let $snav = this.$refs["seconMenus" + id][0];
795
+ let snavAttr = $snav.getBoundingClientRect();
796
+
797
+ // var sh2 = $snav.outerHeight;
798
+ var sh2 = snavAttr.height;
799
+ var sh = wh - (sh1 + sh2);
800
+
801
+ var hd = 20;
802
+ var xhd = sh - hd; //移动距离+固定值
803
+ if (sh >= 0) {
804
+ $snav.style["margin-top"] = sh1 + "px";
805
+ } else if (sh < 0) {
806
+ let bd = sh1 + sh;
807
+
808
+ $snav.style["margin-top"] = bd + "px";
809
+ $snav.querySelector(".ico-arrow").style["margin-top"] =
810
+ sh1 - bd + "px";
811
+ }
812
+ });
813
+ } else {
814
+ this.stopFlag = 0;
815
+ setTimeout(() => {
816
+ if (this.stopFlag == 0) {
817
+ this.nowNavID = id;
818
+ }
819
+ }, 200);
820
+ }
821
+ },
822
+ jumpTo(row, firstRow) {
823
+ let route = firstRow.route ? "/" + firstRow.route : "";
824
+ if (route == WEB_PREFIX) {
825
+ this.$router.push({
826
+ path: row.path,
827
+ });
828
+ } else {
829
+ this.changeModules(firstRow, row);
830
+ }
831
+ },
832
+ toDownMove() {
833
+ let containter = document
834
+ .getElementById("menuUl")
835
+ .querySelector(".scrollbar-wrapper");
836
+ let menuscrollTop = containter.scrollTop;
837
+ let scrollHeight = containter.scrollHeight;
838
+ let val = menuscrollTop + this.eveyMenuHeight;
839
+ if (val < scrollHeight) {
840
+ containter.scrollTop = val;
841
+ } else {
842
+ containter.scrollTop = scrollHeight;
843
+ }
844
+ },
845
+ toUpMove() {
846
+ let containter = document
847
+ .getElementById("menuUl")
848
+ .querySelector(".scrollbar-wrapper");
849
+ let menuscrollTop = containter.scrollTop;
850
+ let val = menuscrollTop - this.eveyMenuHeight;
851
+ if (val > 0) {
852
+ containter.scrollTop = val;
853
+ } else {
854
+ containter.scrollTop = 0;
855
+ }
856
+ },
857
+ getMenuClass(menu, flag) {
858
+ let res = "";
859
+ if (menu.menuImg) {
860
+ res = "iconfont " + menu.menuImg;
861
+ } else if (flag == 1) {
862
+ res = "iconfont icon-jinggao"; //一级默认图标
863
+ } else if (flag == 2) {
864
+ res = "iconfont icon-circle"; //二级默认图标
865
+ } else if (flag == 3) {
866
+ res = "iconfont icon-thirdMemu"; //三级级默认图标
867
+ }
868
+
869
+ if (flag == 2) {
870
+ if (menu.id == this.nowNavID) {
871
+ res += " on";
872
+ }
873
+ }
874
+ return res;
875
+ },
876
+ openCreateCompanyDialog() {
877
+ this.showCreateCompanyDialog = true;
878
+ },
879
+ confirmCreateCompanyDialog() {
880
+ this.showCreateCompanyDialog = false;
881
+ },
882
+ },
883
+ };
884
+ </script>
885
+ <style lang="scss">
886
+ @import "~@/styles/variables.scss";
887
+
888
+ .hamburger-box {
889
+ background-color: #0000004d;
890
+ height: 42px;
891
+ /* line-height: 30px; */
892
+ text-align: center;
893
+ /* box-shadow: 0 2px 6px rgb(0 0 0 / 10%); */
894
+ position: relative;
895
+ z-index: 2;
896
+ overflow: hidden;
897
+ font-size: 12px;
898
+ color: rgba(255, 255, 255, 0.65);
899
+
900
+ > div {
901
+ color: #fff;
902
+ font-size: 13px;
903
+ margin-bottom: 4px;
904
+ cursor: pointer;
905
+ height: 36px;
906
+ border-radius: 7px;
907
+ margin: 6px 10px 6px 8px;
908
+ overflow: hidden;
909
+ background: #2a6494;
910
+ }
911
+
912
+ p {
913
+ color: #fff;
914
+ font-size: 13px;
915
+ margin-bottom: 4px;
916
+ cursor: pointer;
917
+ /* border: solid 1px #ffffff61; */
918
+ display: block;
919
+ line-height: 27px;
920
+ /* width: 88%; */
921
+ margin-top: 6px;
922
+ border-radius: 7px;
923
+ margin: 6px 10px 6px 8px;
924
+ background: #2a6494;
925
+
926
+ i {
927
+ font-size: 14px;
928
+ vertical-align: middle;
929
+ margin: 0 4px 0 6px;
930
+ height: 36px;
931
+ line-height: 36px;
932
+ width: 21px;
933
+ }
934
+
935
+ span {
936
+ width: 94px;
937
+ display: table-cell;
938
+ height: 32px;
939
+ word-break: break-word;
940
+ line-height: 16px;
941
+ overflow: hidden;
942
+ vertical-align: middle;
943
+ white-space: nowrap;
944
+ }
945
+
946
+ &.name {
947
+ display: table-row;
948
+ margin: 0;
949
+ }
950
+ }
951
+ }
952
+
953
+ .business-name {
954
+ height: 47px;
955
+ color: #ffffffb8;
956
+ background: #0000004d;
957
+ /* padding-top: 12px; */
958
+ font-size: 12px;
959
+ /* padding-left: 5px; */
960
+ display: table-cell;
961
+ vertical-align: middle;
962
+ width: 140px;
963
+ padding: 6px 10px;
964
+ text-align: center;
965
+
966
+ p {
967
+ margin: 0;
968
+ display: -webkit-box;
969
+ overflow: hidden;
970
+ text-overflow: ellipsis;
971
+ -webkit-line-clamp: 2;
972
+ -webkit-box-orient: vertical;
973
+ }
974
+ }
975
+
976
+ .fase-box {
977
+ color: #fff;
978
+ /* border-bottom: solid 1px rgba(255, 255, 255, 0.12); */
979
+ border-top: solid 1px rgba(255, 255, 255, 0.12);
980
+ background: #225076;
981
+ padding: 4px 0 8px;
982
+ width: 100%;
983
+ z-index: 999;
984
+ position: relative;
985
+ /* display: flex;*/
986
+ //text-align: left !important;
987
+ // &:hover {
988
+ // color: $baseColor;
989
+ // background-color: #fbfdfe;
990
+ // .fase-list {
991
+ // display: block;
992
+ // }
993
+ // }
994
+ .item {
995
+ flex: 1;
996
+ text-align: center;
997
+ font-size: 16px;
998
+ height: 40px;
999
+ line-height: 40px;
1000
+ cursor: pointer;
1001
+ display: inline-block;
1002
+ min-width: 30px;
1003
+ }
1004
+
1005
+ .fase-list {
1006
+ position: absolute;
1007
+ left: 100%;
1008
+ color: $baseColor;
1009
+ background-color: #fbfdfe;
1010
+ border: solid 1px $baseColor;
1011
+ border-left: none;
1012
+ top: -0.5px;
1013
+ padding: 10px 0 10px 24px;
1014
+ height: 43px;
1015
+ width: 413px;
1016
+ display: none;
1017
+
1018
+ .l-item {
1019
+ display: inline-block;
1020
+ font-size: 12px;
1021
+ margin-right: 36px;
1022
+ line-height: 20px;
1023
+ cursor: pointer;
1024
+
1025
+ i {
1026
+ vertical-align: middle;
1027
+ margin-right: 4px;
1028
+ font-size: 15px;
1029
+ margin-bottom: 2px;
1030
+ }
1031
+
1032
+ &:hover {
1033
+ border-bottom: solid 1px $baseColor;
1034
+ }
1035
+ }
1036
+ }
1037
+ }
1038
+
1039
+ .openSidebar .fase-box {
1040
+ text-align: center;
1041
+ //padding: 0;
1042
+ }
1043
+
1044
+ #app .sidebar-container {
1045
+ overflow: visible;
1046
+ z-index: 1003;
1047
+
1048
+ &.hover {
1049
+ z-index: 1003;
1050
+ }
1051
+
1052
+ &.hover1 .fase-box {
1053
+ width: 138px;
1054
+ color: $baseColor;
1055
+ background-color: #fbfdfe;
1056
+ border-color: $baseColor;
1057
+ }
1058
+
1059
+ .el-menu.menu-box {
1060
+ height: calc(100vh - 173px);
1061
+ font-size: 13px;
1062
+ z-index: -1;
1063
+ position: relative;
1064
+ background-color: rgba(0, 0, 0, 0.2);
1065
+ word-break: break-word;
1066
+ .el-scrollbar__view > {
1067
+ .el-menu-item {
1068
+ padding: 0 11px !important;
1069
+ span {
1070
+ font-size: 14px;
1071
+ }
1072
+ }
1073
+ .el-submenu > .el-submenu__title {
1074
+ padding: 0 11px !important;
1075
+ span {
1076
+ font-size: 14px;
1077
+ }
1078
+ ~ .el-menu {
1079
+ padding: 5px 0;
1080
+ display: grid;
1081
+ > .el-menu-item {
1082
+ span {
1083
+ line-height: 1.4;
1084
+ height: 26px;
1085
+ }
1086
+ }
1087
+ .el-submenu.is-opened .el-submenu__title {
1088
+ background-color: #fff;
1089
+ opacity: 1;
1090
+ span {
1091
+ color: $baseColor;
1092
+ }
1093
+ i.iconfont {
1094
+ color: $baseColor;
1095
+ }
1096
+ }
1097
+ }
1098
+ }
1099
+ }
1100
+ .el-submenu__title,
1101
+ .el-menu-item {
1102
+ padding: 0 11px;
1103
+ height: 48px;
1104
+ line-height: 48px;
1105
+ &:hover,
1106
+ &.is-active {
1107
+ background-color: rgba(0, 0, 0, 0.29);
1108
+ }
1109
+ i {
1110
+ color: #fff;
1111
+ font-size: 13px;
1112
+ margin-right: 0;
1113
+ width: 18px;
1114
+
1115
+ &.iconfont {
1116
+ margin-right: 5px;
1117
+ font-size: 19px;
1118
+ float: left;
1119
+ }
1120
+
1121
+ &.el-submenu__icon-arrow {
1122
+ right: 3px;
1123
+ text-align: center;
1124
+ font-size: 12px;
1125
+ margin-top: -5px;
1126
+ display: none;
1127
+ }
1128
+ }
1129
+
1130
+ > span {
1131
+ height: 48px;
1132
+ display: table-cell;
1133
+ width: 114px;
1134
+ vertical-align: middle;
1135
+ font-size: 13px;
1136
+ white-space: normal;
1137
+ line-height: 16px;
1138
+ }
1139
+ }
1140
+
1141
+ .el-submenu {
1142
+ overflow: hidden; //有点电脑分辨率问题
1143
+
1144
+ &.is-opened .el-submenu__title {
1145
+ //background-color: rgba(27, 66, 97) !important;
1146
+ }
1147
+ .el-submenu .el-menu {
1148
+ display: none;
1149
+ }
1150
+ }
1151
+
1152
+ .el-submenu {
1153
+ &.is-opened {
1154
+ > .el-submenu__title {
1155
+ background-color: rgba(0, 0, 0, 0.29);
1156
+ }
1157
+ }
1158
+ .el-menu {
1159
+ background: rgba(0, 0, 0, 0.35);
1160
+ box-shadow: 0px -5px 8px #00000014 inset;
1161
+ //padding:4px 0;
1162
+ .el-submenu__title {
1163
+ height: auto;
1164
+ line-height: 1.4;
1165
+ font-size: 12px;
1166
+ opacity: 0.8;
1167
+ margin: 5px 0 5px 14px;
1168
+ padding: 7px 2px 7px 33px !important;
1169
+ border-radius: 8px;
1170
+ text-align: left;
1171
+ min-width: 81px;
1172
+ white-space: normal;
1173
+ margin-right: 10px;
1174
+ word-break: break-word;
1175
+ i.iconfont {
1176
+ position: absolute;
1177
+ top: 50%;
1178
+ height: 20px;
1179
+ margin-top: -10px;
1180
+ line-height: 20px;
1181
+ left: 7px;
1182
+ font-size: 18px;
1183
+ }
1184
+
1185
+ [class^="el-icon-"] {
1186
+ font-size: 12px;
1187
+ color: #fff;
1188
+ position: absolute;
1189
+ right: 2px;
1190
+ top: 50%;
1191
+ margin-top: -5px;
1192
+ width: 14px;
1193
+ zoom: 0.8;
1194
+ display: none;
1195
+ }
1196
+ span {
1197
+ height: auto;
1198
+ text-align: left !important;
1199
+ }
1200
+ &:hover,
1201
+ &.on {
1202
+ opacity: 1;
1203
+ background-color: #fbfdfe !important;
1204
+ color: $baseColor !important;
1205
+ i.iconfont {
1206
+ color: $baseColor;
1207
+ }
1208
+ .el-icon-arrow-right {
1209
+ color: $baseColor;
1210
+ }
1211
+ }
1212
+ }
1213
+ }
1214
+
1215
+ .el-menu-item {
1216
+ height: auto;
1217
+ line-height: 1.4;
1218
+ padding-left: 33px !important;
1219
+ font-size: 12px;
1220
+ opacity: 0.8;
1221
+ margin: 5px 0 5px 14px;
1222
+ padding: 2px 2px 2px 0px;
1223
+ border-radius: 8px;
1224
+ text-align: left;
1225
+ min-width: 81px !important;
1226
+ white-space: normal;
1227
+ margin-right: 10px;
1228
+ word-break: break-word;
1229
+
1230
+ i.iconfont {
1231
+ position: absolute;
1232
+ top: 50%;
1233
+ height: 20px;
1234
+ margin-top: -10px;
1235
+ line-height: 20px;
1236
+ left: 7px;
1237
+ font-size: 18px;
1238
+ color: #d0d6db;
1239
+ }
1240
+
1241
+ [class^="el-icon-"] {
1242
+ font-size: 12px;
1243
+ color: #fff;
1244
+ position: absolute;
1245
+ right: 2px;
1246
+ top: 50%;
1247
+ margin-top: -5px;
1248
+ width: 14px;
1249
+ zoom: 0.8;
1250
+ display: none;
1251
+ }
1252
+
1253
+ &:hover,
1254
+ &.on {
1255
+ opacity: 1;
1256
+ background-color: #fbfdfe !important;
1257
+ color: $baseColor !important;
1258
+
1259
+ .el-icon-arrow-right,
1260
+ i.iconfont {
1261
+ color: $baseColor;
1262
+ }
1263
+ }
1264
+ }
1265
+ }
1266
+
1267
+ &.lang-zh {
1268
+ font-size: 14px;
1269
+
1270
+ .el-submenu {
1271
+ .el-submenu__title {
1272
+ > span {
1273
+ text-align: center;
1274
+ }
1275
+
1276
+ i.iconfont {
1277
+ margin-right: 2px;
1278
+ }
1279
+ }
1280
+
1281
+ .el-menu-item {
1282
+ font-size: 13px;
1283
+ }
1284
+ }
1285
+ }
1286
+ }
1287
+ }
1288
+
1289
+ .main-container {
1290
+ z-index: 1002;
1291
+ }
1292
+
1293
+ .menu-btn {
1294
+ background-color: #0000001c;
1295
+ height: 30px;
1296
+ line-height: 30px;
1297
+ text-align: center;
1298
+ box-shadow: 0 -10px 6px rgb(0 0 0 / 10%);
1299
+ display: flex;
1300
+ color: #fff;
1301
+ font-size: 16px;
1302
+
1303
+ i {
1304
+ display: inline-block;
1305
+ flex: 1;
1306
+ line-height: 30px;
1307
+ cursor: pointer;
1308
+ border-right: solid 1px rgba(0, 0, 0, 0.2);
1309
+
1310
+ &:last-child {
1311
+ border-right: none;
1312
+ }
1313
+
1314
+ &:hover {
1315
+ background-color: rgba(255, 255, 255, 0.12);
1316
+ }
1317
+ }
1318
+ }
1319
+
1320
+ /*.menu-box {
1321
+ background-color: #0000002e !important;
1322
+ font-size: 14px;
1323
+ z-index: -1;
1324
+ position: relative;
1325
+ &.hover .el-scrollbar {
1326
+ width: 1000px;
1327
+ }
1328
+ .el-scrollbar {
1329
+ .el-scrollbar__view {
1330
+ padding-top: 1px;
1331
+ }
1332
+ .el-scrollbar__bar.is-vertical {
1333
+ left: 104px;
1334
+ }
1335
+ }
1336
+ .first-item {
1337
+ position: relative;
1338
+ width: 104px;
1339
+ &:nth-child(-n + 6) .second-list {
1340
+ bottom: inherit !important;
1341
+ top: -40.5px !important;
1342
+ }
1343
+ &:nth-child(1) .second-list {
1344
+ top: 0 !important;
1345
+ }
1346
+ &:nth-last-child(-n + 6) .second-list {
1347
+ bottom: -1%;
1348
+ top: inherit;
1349
+ }
1350
+ .f-name {
1351
+ height: 55px;
1352
+ line-height: 55px;
1353
+ padding-left: 9px;
1354
+ color: #fff;
1355
+ cursor: pointer;
1356
+ position: relative;
1357
+ padding-right: 6px;
1358
+ -webkit-transition: all 0.2s ease-in;
1359
+ -moz-transition: all 0.2s ease-in;
1360
+ -o-transition: all 0.2s ease-in;
1361
+ transition: all 0.2s ease-in;
1362
+ width: 104px;
1363
+ i.el-icon-arrow-right {
1364
+ position: absolute;
1365
+ right: 3px;
1366
+ top: 21.5px;
1367
+ width: 14px;
1368
+ height: 14px;
1369
+ }
1370
+ .el-icon-s-opportunity {
1371
+ opacity: 0.92;
1372
+ font-size: 13px;
1373
+ vertical-align: middle;
1374
+ margin-right: 2px;
1375
+ }
1376
+ span{display: inline-block;width: calc(100% - 20px);vertical-align: middle;line-height: 1.2;}
1377
+ }
1378
+
1379
+ &:hover,
1380
+ &.current {
1381
+ .f-name {
1382
+ background-color: #fbfdfe;
1383
+ color: $baseColor;
1384
+ }
1385
+ .second-list {
1386
+ display: block;
1387
+ }
1388
+ }
1389
+ }
1390
+ }
1391
+
1392
+
1393
+ */
1394
+ .second-list {
1395
+ display: none;
1396
+ position: absolute;
1397
+ left: $sideBarWidth;
1398
+ padding-left: 2px;
1399
+ top: 0.5px;
1400
+ // &:before {
1401
+ // content: "";
1402
+ // top: 22px;
1403
+ // bottom: 22px;
1404
+ // background-color: $baseColor;
1405
+ // width: 2px;
1406
+ // position: absolute;
1407
+ // left: 24px;
1408
+ // }
1409
+ > div {
1410
+ background: #fbfdfe;
1411
+ border: solid 1px $baseColor;
1412
+ top: -0.5px;
1413
+ padding: 24px 0;
1414
+ border-radius: 8px;
1415
+ margin-left: 9px;
1416
+ max-height: calc(84vh);
1417
+ overflow-y: auto;
1418
+ overflow-x: hidden;
1419
+ width: 458px;
1420
+ }
1421
+
1422
+ .ico-arrow {
1423
+ border-top: solid 7px transparent;
1424
+ border-bottom: solid 7px transparent;
1425
+ border-right: solid 7px $baseColor;
1426
+ position: absolute;
1427
+ left: 2px;
1428
+ top: 8px;
1429
+ }
1430
+
1431
+ &.on {
1432
+ display: block;
1433
+ }
1434
+
1435
+ .tit {
1436
+ width: auto;
1437
+ /* text-align: center; */
1438
+ /* background: #22507614; */
1439
+ color: $baseColor;
1440
+ /* border: dashed 1px #1d4667; */
1441
+ padding: 0 0 10px;
1442
+ /* border-radius: 6px; */
1443
+ /* margin: 5px auto; */
1444
+ margin: 0 22px;
1445
+ display: block;
1446
+ border-bottom: solid 1px #eee;
1447
+
1448
+ i,
1449
+ span {
1450
+ opacity: 1;
1451
+ vertical-align: middle;
1452
+ margin-right: 7px;
1453
+ font-size: 18px;
1454
+ }
1455
+
1456
+ span {
1457
+ font-size: 14px;
1458
+ }
1459
+ }
1460
+
1461
+ dl {
1462
+ padding: 8px 16px 3px 24px;
1463
+ margin-top: 0;
1464
+ margin-bottom: 0;
1465
+ display: inline-block;
1466
+ width: 50%;
1467
+ position: relative;
1468
+ word-break: break-all;
1469
+
1470
+ &:after {
1471
+ content: "";
1472
+ width: 1px;
1473
+ height: 14px;
1474
+ background: #e4e4e4;
1475
+ display: inline-block;
1476
+ position: absolute;
1477
+ right: -5px;
1478
+ top: 50%;
1479
+ margin-top: -3px;
1480
+ }
1481
+
1482
+ .s-name {
1483
+ color: $baseColor;
1484
+ display: inline-block;
1485
+ width: 190px;
1486
+ font-size: 14px;
1487
+ vertical-align: top;
1488
+ margin-top: 11px;
1489
+ text-align: right;
1490
+
1491
+ i {
1492
+ margin-left: 5px;
1493
+
1494
+ &.icon {
1495
+ font-size: 13px;
1496
+ opacity: 0.92;
1497
+ margin-left: 2px;
1498
+ margin-right: 4px;
1499
+ }
1500
+ }
1501
+ }
1502
+
1503
+ .item {
1504
+ position: relative;
1505
+ border: dashed 1px #fff;
1506
+ border-radius: 6px;
1507
+ display: block;
1508
+ padding: 6px 8px 6px 27px;
1509
+ cursor: pointer;
1510
+
1511
+ &:hover {
1512
+ border-color: $baseColor;
1513
+ color: $baseColor;
1514
+
1515
+ i,
1516
+ a {
1517
+ color: $baseColor;
1518
+ }
1519
+ }
1520
+
1521
+ // &:after {
1522
+ // content: "";
1523
+ // width: 1px;
1524
+ // height: 12px;
1525
+ // background: #dcdcdc;
1526
+ // position: absolute;
1527
+ // right: -25px;
1528
+ // top: 2px
1529
+ // }
1530
+
1531
+ i {
1532
+ opacity: 0.8;
1533
+ margin-right: 8px;
1534
+ vertical-align: middle;
1535
+ position: absolute;
1536
+ left: 4px;
1537
+ top: 50%;
1538
+ margin-top: -11px;
1539
+ height: 22px;
1540
+ line-height: 22px;
1541
+ font-size: 16px;
1542
+ }
1543
+
1544
+ a {
1545
+ color: rgba(0, 0, 0, 0.82);
1546
+ display: inline-block;
1547
+ font-size: 13px;
1548
+ position: relative;
1549
+ overflow: initial !important;
1550
+ -webkit-transition: all 0.2s ease-in;
1551
+ -moz-transition: all 0.2s ease-in;
1552
+ -o-transition: all 0.2s ease-in;
1553
+ transition: all 0.2s ease-in;
1554
+ width: auto !important;
1555
+ vertical-align: middle;
1556
+ word-break: break-word;
1557
+
1558
+ &:hover {
1559
+ color: $baseColor;
1560
+
1561
+ // &:after {
1562
+ // content: '';
1563
+ // position: absolute;
1564
+ // bottom: -4px;
1565
+ // left: 0;
1566
+ // right: 0;
1567
+ // border-bottom: solid 1px $baseColor;
1568
+ // }
1569
+ }
1570
+ }
1571
+ }
1572
+
1573
+ &:last-child {
1574
+ .list-box {
1575
+ border-bottom: none;
1576
+ }
1577
+ }
1578
+ }
1579
+ }
1580
+ // .el-submenu .el-menu {
1581
+ // height: auto !important;
1582
+ // }
1583
+ .el-menu--vertical {
1584
+ > .el-menu--popup {
1585
+ overflow: auto; //不用atuo 超出不出滚动条
1586
+ .el-submenu__title,
1587
+ .el-menu-item {
1588
+ height: auto !important;
1589
+ line-height: 1.4 !important;
1590
+ padding: 8px 0;
1591
+ text-align: left;
1592
+ white-space: normal;
1593
+ word-break: break-word;
1594
+ background: none;
1595
+ i.iconfont {
1596
+ color: #fff;
1597
+ margin-right: 8px;
1598
+ }
1599
+ }
1600
+ }
1601
+ .el-submenu {
1602
+ .el-submenu__title {
1603
+ .el-submenu__icon-arrow {
1604
+ display: none;
1605
+ }
1606
+ }
1607
+ &:hover {
1608
+ .el-submenu__title {
1609
+ background-color: rgba(0, 0, 0, 0.29) !important;
1610
+ i.iconfont {
1611
+ color: $baseColor;
1612
+ }
1613
+ }
1614
+ }
1615
+
1616
+ &.is-opened {
1617
+ .el-submenu__title {
1618
+ background-color: rgba(0, 0, 0, 0.29) !important;
1619
+ i.iconfont {
1620
+ color: $baseColor;
1621
+ }
1622
+ }
1623
+ }
1624
+ }
1625
+ .el-menu-item {
1626
+ &:hover {
1627
+ background-color: rgba(0, 0, 0, 0.29) !important;
1628
+ i.iconfont {
1629
+ color: $baseColor;
1630
+ }
1631
+ }
1632
+
1633
+ &.is-opened {
1634
+ background-color: rgba(0, 0, 0, 0.29) !important;
1635
+ i.iconfont {
1636
+ color: $baseColor;
1637
+ }
1638
+ }
1639
+ }
1640
+ // .el-menu-item{
1641
+ // &:hover{
1642
+ // background:#FFF !important;opacity:1;
1643
+ // span{color:$baseColor}
1644
+ // i.iconfont{color:$baseColor}
1645
+ // }
1646
+ // &.is-opened{
1647
+ // background:#FFF;opacity:1;
1648
+ // span{color:$baseColor}
1649
+ // i.iconfont{color:$baseColor}
1650
+ // }
1651
+ // }
1652
+ }
1653
+ </style>