vue2-client 1.8.310 → 1.8.312

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 (222) hide show
  1. package/.env +19 -19
  2. package/.eslintrc.js +90 -90
  3. package/CHANGELOG.md +824 -824
  4. package/Components.md +60 -60
  5. package/babel.config.js +21 -21
  6. package/docs/LowCode/lowcode.md +155 -155
  7. package/docs/LowCode/lowcodeForDeveloper.md +230 -230
  8. package/docs/index.md +30 -30
  9. package/index.js +31 -31
  10. package/jest-transform-stub.js +8 -8
  11. package/jest.config.js +21 -21
  12. package/jest.setup.js +7 -7
  13. package/package.json +97 -97
  14. package/public/index.html +27 -27
  15. package/src/App.vue +188 -188
  16. package/src/ReportView.js +19 -19
  17. package/src/assets/img/querySlotDemo.svg +15 -15
  18. package/src/assets/svg/badtwo.svg +1 -1
  19. package/src/assets/svg/goodtwo.svg +1 -1
  20. package/src/base-client/components/common/AMisRender/index.js +3 -3
  21. package/src/base-client/components/common/AMisRender/index.vue +263 -263
  22. package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +438 -416
  23. package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
  24. package/src/base-client/components/common/AddressSearchCombobox/ic_map.svg +6 -6
  25. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  26. package/src/base-client/components/common/CitySelect/CitySelect.vue +342 -342
  27. package/src/base-client/components/common/CitySelect/index.js +3 -3
  28. package/src/base-client/components/common/CitySelect/index.md +109 -109
  29. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  30. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
  31. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  32. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  33. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
  34. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
  35. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  36. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  37. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +149 -149
  38. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  39. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  40. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  41. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  42. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  43. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  44. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +413 -350
  45. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
  46. package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +728 -699
  47. package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
  48. package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +219 -162
  49. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  50. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  51. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  52. package/src/base-client/components/common/Tree/index.js +2 -2
  53. package/src/base-client/components/common/Upload/Upload.vue +239 -239
  54. package/src/base-client/components/common/Upload/index.js +3 -3
  55. package/src/base-client/components/common/XAddForm/XAddForm.vue +105 -105
  56. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +807 -807
  57. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  58. package/src/base-client/components/common/XAddNativeForm/lowcodeEditorRegister.js +16 -16
  59. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +303 -303
  60. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  61. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  62. package/src/base-client/components/common/XBadge/XBadge.vue +78 -78
  63. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  64. package/src/base-client/components/common/XDataCard/XDataCard.vue +355 -0
  65. package/src/base-client/components/common/XDataCard/index.js +3 -0
  66. package/src/base-client/components/common/XDataCard/index.md +1 -0
  67. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  68. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  69. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  70. package/src/base-client/components/common/XDescriptions/XDescriptions.vue +188 -187
  71. package/src/base-client/components/common/XDescriptions/XDescriptionsGroup.vue +306 -306
  72. package/src/base-client/components/common/XDescriptions/demo.vue +50 -50
  73. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  74. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  75. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +214 -214
  76. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  77. package/src/base-client/components/common/XForm/XForm.vue +294 -294
  78. package/src/base-client/components/common/XForm/XFormItem.vue +911 -911
  79. package/src/base-client/components/common/XForm/XTreeSelect.vue +207 -207
  80. package/src/base-client/components/common/XForm/index.md +178 -178
  81. package/src/base-client/components/common/XFormCol/XFormCol.vue +36 -36
  82. package/src/base-client/components/common/XFormGroup/XFormGroup.vue +241 -241
  83. package/src/base-client/components/common/XFormGroup/demo.vue +40 -40
  84. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  85. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  86. package/src/base-client/components/common/XFormGroupDetails/XFormGroupDetails.vue +72 -72
  87. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  88. package/src/base-client/components/common/XFormTable/XFormTable.vue +545 -539
  89. package/src/base-client/components/common/XFormTable/demo.vue +72 -72
  90. package/src/base-client/components/common/XFormTable/index.md +98 -98
  91. package/src/base-client/components/common/XFormTable/lowcodeEditorRegister.js +30 -30
  92. package/src/base-client/components/common/XImportExcel/XImportExcel.vue +147 -147
  93. package/src/base-client/components/common/XReport/XReport.vue +858 -858
  94. package/src/base-client/components/common/XReport/XReportDemo.vue +266 -266
  95. package/src/base-client/components/common/XReport/XReportDesign.vue +509 -509
  96. package/src/base-client/components/common/XReport/XReportJsonRender.vue +295 -295
  97. package/src/base-client/components/common/XReport/XReportTrGroup.vue +801 -801
  98. package/src/base-client/components/common/XReport/index.js +3 -3
  99. package/src/base-client/components/common/XReport/index.md +44 -44
  100. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  101. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  102. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +137 -0
  103. package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -0
  104. package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -0
  105. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  106. package/src/base-client/components/common/XStepView/index.js +3 -3
  107. package/src/base-client/components/common/XStepView/index.md +31 -31
  108. package/src/base-client/components/common/XTable/XTable.vue +715 -676
  109. package/src/base-client/components/common/XTable/index.md +255 -255
  110. package/src/base-client/components/common/XTree/XTree.vue +423 -423
  111. package/src/base-client/components/common/XTree/index.js +3 -3
  112. package/src/base-client/components/common/XTree/index.md +36 -36
  113. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +114 -114
  114. package/src/base-client/components/common/XTreeOne/lowcodeEditorRegister.js +11 -11
  115. package/src/base-client/components/index.js +51 -51
  116. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  117. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  118. package/src/base-client/plugins/AppData.js +121 -121
  119. package/src/base-client/plugins/Config.js +19 -19
  120. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  121. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  122. package/src/bootstrap.js +39 -39
  123. package/src/components/CodeMirror/inedx.vue +118 -118
  124. package/src/components/CodeMirror/setting.js +40 -40
  125. package/src/components/FilePreview/FilePreview.vue +166 -166
  126. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  127. package/src/components/STable/index.js +361 -361
  128. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  129. package/src/components/checkbox/ImgCheckbox.vue +163 -163
  130. package/src/components/menu/SideMenu.vue +75 -75
  131. package/src/components/menu/menu.js +273 -273
  132. package/src/components/tool/AStepItem.vue +60 -60
  133. package/src/config/CreateQueryConfig.js +322 -322
  134. package/src/config/default/antd.config.js +89 -89
  135. package/src/config/default/setting.config.js +55 -55
  136. package/src/font-style/font.css +4 -4
  137. package/src/layouts/CommonLayout.vue +56 -56
  138. package/src/layouts/PageLayout.vue +151 -151
  139. package/src/layouts/SinglePageView.vue +138 -138
  140. package/src/layouts/header/AdminHeader.vue +132 -132
  141. package/src/layouts/header/HeaderNotice.vue +177 -177
  142. package/src/layouts/tabs/TabsHead.vue +189 -189
  143. package/src/layouts/tabs/TabsView.vue +387 -387
  144. package/src/lib.js +1 -1
  145. package/src/main.js +26 -26
  146. package/src/mock/extend/index.js +84 -84
  147. package/src/mock/goods/index.js +108 -108
  148. package/src/pages/AMisDemo/AMisDemo.vue +325 -325
  149. package/src/pages/AMisDemo/AMisDemo2.vue +74 -74
  150. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  151. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  152. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  153. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  154. package/src/pages/DynamicStatistics/FavoriteList.vue +51 -51
  155. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  156. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  157. package/src/pages/DynamicStatistics/index.vue +282 -282
  158. package/src/pages/Example/index.vue +193 -33
  159. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  160. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  161. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  162. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  163. package/src/pages/NewDynamicStatistics/FavoriteList.vue +51 -51
  164. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  165. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  166. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  167. package/src/pages/ServiceReview/index.vue +284 -284
  168. package/src/pages/XReportView/index.vue +62 -62
  169. package/src/pages/login/Login.vue +378 -378
  170. package/src/pages/login/LoginV3.vue +389 -389
  171. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1030
  172. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  173. package/src/pages/resourceManage/orgListManage.vue +98 -98
  174. package/src/pages/system/dictionary/index.vue +44 -44
  175. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  176. package/src/pages/system/monitor/operLog/index.vue +37 -37
  177. package/src/pages/system/settings/modifyPassword.vue +117 -117
  178. package/src/pages/system/ticket/index.vue +480 -480
  179. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  180. package/src/router/async/config.async.js +34 -34
  181. package/src/router/async/router.map.js +104 -104
  182. package/src/router/guards.js +223 -223
  183. package/src/router/index.js +27 -27
  184. package/src/router.js +19 -19
  185. package/src/services/api/TicketDetailsViewApi.js +46 -46
  186. package/src/services/api/cas.js +79 -79
  187. package/src/services/api/common.js +307 -307
  188. package/src/services/api/entity.js +18 -18
  189. package/src/services/api/index.js +17 -17
  190. package/src/services/api/restTools.js +46 -46
  191. package/src/services/apiService.js +14 -14
  192. package/src/services/user.js +71 -71
  193. package/src/services/v3Api.js +81 -81
  194. package/src/store/modules/index.js +5 -5
  195. package/src/store/modules/lowCode.js +33 -33
  196. package/src/store/modules/setting.js +119 -119
  197. package/src/theme/default/style.less +58 -58
  198. package/src/theme/global.less +139 -139
  199. package/src/utils/authority-utils.js +85 -85
  200. package/src/utils/errorCode.js +6 -6
  201. package/src/utils/formatter.js +80 -80
  202. package/src/utils/htmlToPDF.js +108 -108
  203. package/src/utils/htmlToPDFApi.js +5 -5
  204. package/src/utils/indexedDB.js +258 -258
  205. package/src/utils/login.js +188 -188
  206. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  207. package/src/utils/lowcode/lowcodeLog.js +29 -29
  208. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  209. package/src/utils/lowcode/registerComponentForEditor.js +11 -11
  210. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  211. package/src/utils/map-utils.js +47 -47
  212. package/src/utils/reg.js +95 -95
  213. package/src/utils/request.js +347 -347
  214. package/src/utils/routerUtil.js +435 -435
  215. package/src/utils/runEvalFunction.js +6 -6
  216. package/src/utils/util.js +241 -241
  217. package/src/utils/waterMark.js +31 -31
  218. package/test/Amis.spec.js +163 -163
  219. package/test/Tree.spec.js +167 -167
  220. package/test/myDialog.spec.js +46 -46
  221. package/vue.config.js +181 -181
  222. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
@@ -1,189 +1,189 @@
1
- <template>
2
- <div :class="['tabs-head', layout, pageWidth]">
3
- <a-tabs
4
- type="editable-card"
5
- :class="['tabs-container', layout, pageWidth, {'affixed' : affixed, 'fixed-header' : fixedHeader, 'collapsed' : adminLayout.collapsed}]"
6
- :active-key="active"
7
- :hide-add="true"
8
- >
9
- <a-tooltip placement="left" :title="lockTitle" slot="tabBarExtraContent">
10
- <a-icon
11
- theme="filled"
12
- @click="onLockClick"
13
- class="header-lock"
14
- :type="fixedTabs ? 'lock' : 'unlock'"
15
- />
16
- </a-tooltip>
17
- <a-tab-pane v-for="page in pageList" :key="page.path">
18
- <div slot="tab" class="tab" @contextmenu="e => onContextmenu(page.path, e)">
19
- <a-icon @click="onRefresh(page)" :class="['icon-sync', {'hide': page.path !== active && !page.loading}]" :type="page.loading ? 'loading' : 'sync'" />
20
- <div class="title" @click="onTabClick(page.path)" >{{ pageName(page) }}</div>
21
- <a-icon v-if="!page.unclose" @click="onClose(page.path)" class="icon-close" type="close"/>
22
- </div>
23
- </a-tab-pane>
24
- </a-tabs>
25
- <div v-if="affixed" class="virtual-tabs"></div>
26
- </div>
27
- </template>
28
-
29
- <script>
30
- import { mapState, mapMutations } from 'vuex'
31
- import { getI18nKey } from '@vue2-client/utils/routerUtil'
32
-
33
- export default {
34
- name: 'TabsHead',
35
- i18n: {
36
- messages: {
37
- CN: {
38
- lock: '点击锁定页签头',
39
- unlock: '点击解除锁定'
40
- },
41
- HK: {
42
- lock: '點擊鎖定頁簽頭',
43
- unlock: '點擊解除鎖定'
44
- },
45
- US: {
46
- lock: 'click to lock the tabs head',
47
- unlock: 'click to unlock'
48
- }
49
- }
50
- },
51
- props: {
52
- // eslint-disable-next-line vue/require-default-prop
53
- pageList: Array,
54
- // eslint-disable-next-line vue/require-default-prop
55
- active: String,
56
- fixed: Boolean
57
- },
58
- data () {
59
- return {
60
- affixed: false
61
- }
62
- },
63
- inject: ['adminLayout'],
64
- created () {
65
- this.affixed = this.fixedTabs
66
- },
67
- computed: {
68
- ...mapState('setting', ['layout', 'pageWidth', 'fixedHeader', 'fixedTabs', 'customTitles']),
69
- lockTitle () {
70
- return this.$t(this.fixedTabs ? 'unlock' : 'lock')
71
- }
72
- },
73
- methods: {
74
- ...mapMutations('setting', ['setFixedTabs']),
75
- onLockClick () {
76
- this.setFixedTabs(!this.fixedTabs)
77
- if (this.fixedTabs) {
78
- setTimeout(() => {
79
- this.affixed = true
80
- }, 200)
81
- } else {
82
- this.affixed = false
83
- }
84
- },
85
- onTabClick (key) {
86
- if (this.active !== key) {
87
- this.$emit('change', key)
88
- }
89
- },
90
- onClose (key) {
91
- this.$emit('close', key)
92
- },
93
- onRefresh (page) {
94
- this.$emit('refresh', page.path, page)
95
- },
96
- onContextmenu (pageKey, e) {
97
- this.$emit('contextmenu', pageKey, e)
98
- },
99
- pageName (page) {
100
- const custom = this.customTitles.find(item => item.path === page.path)
101
- return (custom && custom.title) || page.title || this.$t(getI18nKey(page.keyPath))
102
- }
103
- }
104
- }
105
- </script>
106
-
107
- <style scoped lang="less">
108
- .tab{
109
- margin: 0 -16px;
110
- padding: 0 16px;
111
- font-size: 14px;
112
- user-select: none;
113
- transition: all 0.2s;
114
- .title{
115
- display: inline-block;
116
- height: 100%;
117
- }
118
- .icon-close{
119
- font-size: 12px;
120
- margin-left: 6px;
121
- margin-right: -4px !important;
122
- color: @text-color-second;
123
- &:hover{
124
- color: @text-color;
125
- }
126
- }
127
- .icon-sync{
128
- margin-left: -4px;
129
- color: @primary-4;
130
- transition: all 0.3s ease-in-out;
131
- &:hover{
132
- color: @primary-color;
133
- }
134
- font-size: 14px;
135
- &.hide{
136
- font-size: 0;
137
- }
138
- }
139
- }
140
- .tabs-head{
141
- margin: 0 auto;
142
- &.head.fixed{
143
- width: 100%;
144
- }
145
- }
146
- .tabs-container{
147
- margin: -16px auto 8px;
148
- transition: top,left 0.2s;
149
- .header-lock{
150
- font-size: 18px;
151
- cursor: pointer;
152
- color: @primary-3;
153
- &:hover{
154
- color: @primary-color;
155
- }
156
- }
157
- &.affixed{
158
- margin: 0 auto;
159
- top: 0;
160
- padding: 8px 24px 0;
161
- position: fixed;
162
- height: 48px;
163
- z-index: 1;
164
- background-color: @layout-body-background;
165
- &.side,&.mix{
166
- right: 0;
167
- left: 256px;
168
- &.collapsed{
169
- left: 80px;
170
- }
171
- }
172
- &.head{
173
- width: inherit;
174
- padding: 8px 0 0;
175
- &.fluid{
176
- left: 0;
177
- right: 0;
178
- padding: 8px 24px 0;
179
- }
180
- }
181
- &.fixed-header{
182
- top: 64px;
183
- }
184
- }
185
- }
186
- .virtual-tabs{
187
- height: 48px;
188
- }
189
- </style>
1
+ <template>
2
+ <div :class="['tabs-head', layout, pageWidth]">
3
+ <a-tabs
4
+ type="editable-card"
5
+ :class="['tabs-container', layout, pageWidth, {'affixed' : affixed, 'fixed-header' : fixedHeader, 'collapsed' : adminLayout.collapsed}]"
6
+ :active-key="active"
7
+ :hide-add="true"
8
+ >
9
+ <a-tooltip placement="left" :title="lockTitle" slot="tabBarExtraContent">
10
+ <a-icon
11
+ theme="filled"
12
+ @click="onLockClick"
13
+ class="header-lock"
14
+ :type="fixedTabs ? 'lock' : 'unlock'"
15
+ />
16
+ </a-tooltip>
17
+ <a-tab-pane v-for="page in pageList" :key="page.path">
18
+ <div slot="tab" class="tab" @contextmenu="e => onContextmenu(page.path, e)">
19
+ <a-icon @click="onRefresh(page)" :class="['icon-sync', {'hide': page.path !== active && !page.loading}]" :type="page.loading ? 'loading' : 'sync'" />
20
+ <div class="title" @click="onTabClick(page.path)" >{{ pageName(page) }}</div>
21
+ <a-icon v-if="!page.unclose" @click="onClose(page.path)" class="icon-close" type="close"/>
22
+ </div>
23
+ </a-tab-pane>
24
+ </a-tabs>
25
+ <div v-if="affixed" class="virtual-tabs"></div>
26
+ </div>
27
+ </template>
28
+
29
+ <script>
30
+ import { mapState, mapMutations } from 'vuex'
31
+ import { getI18nKey } from '@vue2-client/utils/routerUtil'
32
+
33
+ export default {
34
+ name: 'TabsHead',
35
+ i18n: {
36
+ messages: {
37
+ CN: {
38
+ lock: '点击锁定页签头',
39
+ unlock: '点击解除锁定'
40
+ },
41
+ HK: {
42
+ lock: '點擊鎖定頁簽頭',
43
+ unlock: '點擊解除鎖定'
44
+ },
45
+ US: {
46
+ lock: 'click to lock the tabs head',
47
+ unlock: 'click to unlock'
48
+ }
49
+ }
50
+ },
51
+ props: {
52
+ // eslint-disable-next-line vue/require-default-prop
53
+ pageList: Array,
54
+ // eslint-disable-next-line vue/require-default-prop
55
+ active: String,
56
+ fixed: Boolean
57
+ },
58
+ data () {
59
+ return {
60
+ affixed: false
61
+ }
62
+ },
63
+ inject: ['adminLayout'],
64
+ created () {
65
+ this.affixed = this.fixedTabs
66
+ },
67
+ computed: {
68
+ ...mapState('setting', ['layout', 'pageWidth', 'fixedHeader', 'fixedTabs', 'customTitles']),
69
+ lockTitle () {
70
+ return this.$t(this.fixedTabs ? 'unlock' : 'lock')
71
+ }
72
+ },
73
+ methods: {
74
+ ...mapMutations('setting', ['setFixedTabs']),
75
+ onLockClick () {
76
+ this.setFixedTabs(!this.fixedTabs)
77
+ if (this.fixedTabs) {
78
+ setTimeout(() => {
79
+ this.affixed = true
80
+ }, 200)
81
+ } else {
82
+ this.affixed = false
83
+ }
84
+ },
85
+ onTabClick (key) {
86
+ if (this.active !== key) {
87
+ this.$emit('change', key)
88
+ }
89
+ },
90
+ onClose (key) {
91
+ this.$emit('close', key)
92
+ },
93
+ onRefresh (page) {
94
+ this.$emit('refresh', page.path, page)
95
+ },
96
+ onContextmenu (pageKey, e) {
97
+ this.$emit('contextmenu', pageKey, e)
98
+ },
99
+ pageName (page) {
100
+ const custom = this.customTitles.find(item => item.path === page.path)
101
+ return (custom && custom.title) || page.title || this.$t(getI18nKey(page.keyPath))
102
+ }
103
+ }
104
+ }
105
+ </script>
106
+
107
+ <style scoped lang="less">
108
+ .tab{
109
+ margin: 0 -16px;
110
+ padding: 0 16px;
111
+ font-size: 14px;
112
+ user-select: none;
113
+ transition: all 0.2s;
114
+ .title{
115
+ display: inline-block;
116
+ height: 100%;
117
+ }
118
+ .icon-close{
119
+ font-size: 12px;
120
+ margin-left: 6px;
121
+ margin-right: -4px !important;
122
+ color: @text-color-second;
123
+ &:hover{
124
+ color: @text-color;
125
+ }
126
+ }
127
+ .icon-sync{
128
+ margin-left: -4px;
129
+ color: @primary-4;
130
+ transition: all 0.3s ease-in-out;
131
+ &:hover{
132
+ color: @primary-color;
133
+ }
134
+ font-size: 14px;
135
+ &.hide{
136
+ font-size: 0;
137
+ }
138
+ }
139
+ }
140
+ .tabs-head{
141
+ margin: 0 auto;
142
+ &.head.fixed{
143
+ width: 100%;
144
+ }
145
+ }
146
+ .tabs-container{
147
+ margin: -16px auto 8px;
148
+ transition: top,left 0.2s;
149
+ .header-lock{
150
+ font-size: 18px;
151
+ cursor: pointer;
152
+ color: @primary-3;
153
+ &:hover{
154
+ color: @primary-color;
155
+ }
156
+ }
157
+ &.affixed{
158
+ margin: 0 auto;
159
+ top: 0;
160
+ padding: 8px 24px 0;
161
+ position: fixed;
162
+ height: 48px;
163
+ z-index: 1;
164
+ background-color: @layout-body-background;
165
+ &.side,&.mix{
166
+ right: 0;
167
+ left: 256px;
168
+ &.collapsed{
169
+ left: 80px;
170
+ }
171
+ }
172
+ &.head{
173
+ width: inherit;
174
+ padding: 8px 0 0;
175
+ &.fluid{
176
+ left: 0;
177
+ right: 0;
178
+ padding: 8px 24px 0;
179
+ }
180
+ }
181
+ &.fixed-header{
182
+ top: 64px;
183
+ }
184
+ }
185
+ }
186
+ .virtual-tabs{
187
+ height: 48px;
188
+ }
189
+ </style>