haiwei-ui 1.0.2 → 1.0.4

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 (211) hide show
  1. package/.prettierrc +6 -4
  2. package/README.md +10 -0
  3. package/package.json +1 -1
  4. package/packages/components/box/index.vue +116 -125
  5. package/packages/components/box-col/index.vue +30 -33
  6. package/packages/components/box-row/index.vue +17 -17
  7. package/packages/components/box-small/index.vue +38 -38
  8. package/packages/components/button/index.vue +29 -42
  9. package/packages/components/button-copy/index.vue +46 -62
  10. package/packages/components/button-delete/index.vue +64 -77
  11. package/packages/components/button-delete-batch/index.vue +82 -95
  12. package/packages/components/button-has/index.vue +29 -42
  13. package/packages/components/checkbox-group/index.vue +85 -85
  14. package/packages/components/color-picker/index.vue +41 -50
  15. package/packages/components/container/index.vue +8 -8
  16. package/packages/components/date-range-picker/index.vue +92 -103
  17. package/packages/components/details/index.vue +72 -79
  18. package/packages/components/dialog/index.vue +281 -294
  19. package/packages/components/drag-sort/index.vue +36 -36
  20. package/packages/components/drag-sort-dialog/index.vue +58 -58
  21. package/packages/components/drawer/index.vue +157 -166
  22. package/packages/components/enums/sex/index.vue +1 -1
  23. package/packages/components/flex/index.vue +33 -33
  24. package/packages/components/form/index.vue +123 -138
  25. package/packages/components/form-dialog/index.vue +184 -217
  26. package/packages/components/form-page/index.vue +134 -151
  27. package/packages/components/icon/index.vue +6 -6
  28. package/packages/components/icon-picker/index.vue +30 -30
  29. package/packages/components/icon-picker/panel.vue +58 -58
  30. package/packages/components/label/index.vue +22 -30
  31. package/packages/components/list/components/export/index.vue +101 -99
  32. package/packages/components/list/components/footer/index.vue +42 -51
  33. package/packages/components/list/components/header/index.vue +34 -34
  34. package/packages/components/list/components/querybar/index.vue +145 -124
  35. package/packages/components/list/components/select-column/index.vue +30 -30
  36. package/packages/components/list/components/table/index.vue +169 -188
  37. package/packages/components/list/index.vue +336 -395
  38. package/packages/components/list-agile/index.vue +145 -145
  39. package/packages/components/list-dialog/index.vue +70 -84
  40. package/packages/components/listbox/index.vue +48 -48
  41. package/packages/components/login-default/index.vue +107 -107
  42. package/packages/components/login-neon/index.vue +104 -104
  43. package/packages/components/map/index.vue +229 -229
  44. package/packages/components/map-coord-picking/index.vue +220 -219
  45. package/packages/components/map-search/index.vue +75 -72
  46. package/packages/components/scrollbar/index.vue +11 -11
  47. package/packages/components/select-whether/index.vue +30 -30
  48. package/packages/components/split/index.vue +141 -141
  49. package/packages/components/split/trigger.vue +15 -15
  50. package/packages/components/tabnav/index.vue +125 -89
  51. package/packages/components/tabs/index.vue +31 -31
  52. package/packages/components/toolbar/components/fullscreen/index.vue +10 -10
  53. package/packages/components/toolbar/components/logout/index.vue +13 -13
  54. package/packages/components/toolbar/components/skin-toggle/form.vue +59 -59
  55. package/packages/components/toolbar/components/skin-toggle/index.vue +12 -12
  56. package/packages/components/toolbar/components/userInfo/index.vue +18 -18
  57. package/packages/components/toolbar/index.vue +12 -12
  58. package/packages/components/tree-select/mixins.vue +261 -270
  59. package/packages/components/txt/index.vue +17 -17
  60. package/packages/components/update-password/index.vue +45 -57
  61. package/packages/layout.vue +18 -18
  62. package/packages/mixins/components/checkbox.vue +71 -82
  63. package/packages/mixins/components/radio.vue +69 -69
  64. package/packages/page/403/index.vue +32 -28
  65. package/packages/page/404/index.vue +32 -28
  66. package/packages/page/default/index.vue +17 -13
  67. package/packages/page/iframe/index.vue +6 -6
  68. package/packages/page/login/index.vue +9 -9
  69. package/packages/page/userInfo/index.vue +5 -5
  70. package/packages/router/index.js +1 -9
  71. package/packages/skins/pretty/components/header/components/breadcrumb/index.vue +29 -29
  72. package/packages/skins/pretty/components/header/components/theme/index.vue +22 -21
  73. package/packages/skins/pretty/components/header/index.vue +12 -12
  74. package/packages/skins/pretty/components/main/index.vue +27 -27
  75. package/packages/skins/pretty/components/menus/index.vue +28 -28
  76. package/packages/skins/pretty/components/menus/item.vue +23 -23
  77. package/packages/skins/pretty/components/sidebar/index.vue +7 -7
  78. package/packages/skins/pretty/index.vue +6 -6
  79. package/packages/skins/pretty/styles/themes/blue-light/_index.scss +2 -2
  80. package/packages/skins/pretty/styles/themes/default/_index.scss +1 -1
  81. package/packages/skins/pretty/styles/themes/green/_index.scss +2 -2
  82. package/packages/skins/pretty/styles/themes/green-light/_index.scss +2 -2
  83. package/packages/styles/_mixins.scss +24 -25
  84. package/packages/styles/animation/_index.scss +22 -23
  85. package/packages/styles/animation/breadcrumb.scss +6 -6
  86. package/packages/styles/animation/fade.scss +11 -11
  87. package/packages/styles/animation/move.scss +98 -98
  88. package/packages/styles/components/box-small/_index.scss +58 -58
  89. package/packages/styles/components/button/_index.scss +7 -7
  90. package/packages/styles/components/container/_index.scss +26 -26
  91. package/packages/styles/components/date-range-picker/_index.scss +4 -4
  92. package/packages/styles/components/details/_index.scss +66 -67
  93. package/packages/styles/components/details-dialog/_index.scss +13 -13
  94. package/packages/styles/components/drag-sort/_index.scss +20 -20
  95. package/packages/styles/components/drag-sort-dialog/_index.scss +7 -7
  96. package/packages/styles/components/flex/_index.scss +56 -56
  97. package/packages/styles/components/form-dialog/_index.scss +11 -11
  98. package/packages/styles/components/icon/_index.scss +6 -6
  99. package/packages/styles/components/label/_index.scss +245 -245
  100. package/packages/styles/components/listbox/_index.scss +47 -47
  101. package/packages/styles/components/split/_index.scss +102 -102
  102. package/packages/styles/components/toolbar/_index.scss +98 -98
  103. package/packages/styles/components/txt/_index.scss +13 -13
  104. package/packages/styles/components/upload-dialog/_index.scss +44 -44
  105. package/packages/styles/components/upload-multiple/_index.scss +19 -19
  106. package/packages/styles/components/upload-single/_index.scss +16 -16
  107. package/packages/utils/resize-event.js +3 -3
  108. package/packages/vuter/attributes.json +30 -40
  109. package/packages/vuter/tags.json +11 -27
  110. package/public/lib/font/iconfont.js +47 -1
  111. package/src/api/config.js +1 -1
  112. package/src/components/code-preview/index.vue +56 -56
  113. package/src/components/tmpl/components/attributes/index.vue +3 -3
  114. package/src/components/tmpl/components/events/index.vue +3 -3
  115. package/src/components/tmpl/components/methods/index.vue +3 -3
  116. package/src/components/tmpl/components/slots/index.vue +3 -3
  117. package/src/components/tmpl/index.vue +42 -42
  118. package/src/style/element-ui.scss +4 -4
  119. package/src/views/components/advanced/details/_index/index.vue +16 -16
  120. package/src/views/components/advanced/details/demo1/demo.vue +42 -42
  121. package/src/views/components/advanced/details/demo1/index.vue +11 -11
  122. package/src/views/components/advanced/drag-sort/_index/index.vue +16 -16
  123. package/src/views/components/advanced/drag-sort/demo1/demo.vue +18 -18
  124. package/src/views/components/advanced/drag-sort/demo1/index.vue +11 -11
  125. package/src/views/components/advanced/drag-sort-dialog/_index/index.vue +16 -16
  126. package/src/views/components/advanced/drag-sort-dialog/demo1/demo.vue +24 -24
  127. package/src/views/components/advanced/drag-sort-dialog/demo1/index.vue +11 -11
  128. package/src/views/components/advanced/list/_index/index.vue +21 -21
  129. package/src/views/components/advanced/list/demo1/demo.vue +65 -65
  130. package/src/views/components/advanced/list/demo1/index.vue +11 -11
  131. package/src/views/components/advanced/list/demo2/demo.vue +52 -52
  132. package/src/views/components/advanced/list/demo2/index.vue +11 -11
  133. package/src/views/components/advanced/list/demo4/demo.vue +28 -28
  134. package/src/views/components/advanced/list/demo4/index.vue +11 -11
  135. package/src/views/components/advanced/list-dialog/_index/index.vue +21 -21
  136. package/src/views/components/advanced/list-dialog/demo1/demo.vue +48 -48
  137. package/src/views/components/advanced/list-dialog/demo1/index.vue +11 -11
  138. package/src/views/components/advanced/listbox/_index/index.vue +19 -19
  139. package/src/views/components/advanced/listbox/demo1/demo.vue +47 -47
  140. package/src/views/components/advanced/listbox/demo1/index.vue +11 -11
  141. package/src/views/components/base/box/_index/index.vue +22 -28
  142. package/src/views/components/base/box/demo1/index.vue +11 -11
  143. package/src/views/components/base/box/demo2/index.vue +11 -11
  144. package/src/views/components/base/box/demo3/demo.vue +15 -15
  145. package/src/views/components/base/box/demo3/index.vue +11 -11
  146. package/src/views/components/base/box/demo4/demo.vue +18 -24
  147. package/src/views/components/base/box/demo4/index.vue +11 -11
  148. package/src/views/components/base/box-col/_index/index.vue +17 -17
  149. package/src/views/components/base/box-col/demo1/index.vue +11 -11
  150. package/src/views/components/base/box-row/_index/index.vue +17 -17
  151. package/src/views/components/base/box-row/demo1/index.vue +11 -11
  152. package/src/views/components/base/box-small/_index/index.vue +17 -17
  153. package/src/views/components/base/box-small/demo1/demo.vue +30 -30
  154. package/src/views/components/base/box-small/demo1/index.vue +11 -11
  155. package/src/views/components/base/button/_index/index.vue +18 -18
  156. package/src/views/components/base/button/demo1/index.vue +11 -11
  157. package/src/views/components/base/button/demo2/demo.vue +53 -48
  158. package/src/views/components/base/button/demo2/index.vue +11 -11
  159. package/src/views/components/base/container/_index/index.vue +15 -15
  160. package/src/views/components/base/dialog/_index/index.vue +20 -20
  161. package/src/views/components/base/dialog/demo1/demo.vue +37 -37
  162. package/src/views/components/base/dialog/demo1/index.vue +11 -11
  163. package/src/views/components/base/drawer/_index/index.vue +18 -18
  164. package/src/views/components/base/drawer/demo1/demo.vue +8 -8
  165. package/src/views/components/base/drawer/demo1/index.vue +11 -11
  166. package/src/views/components/base/flex/_index/index.vue +17 -17
  167. package/src/views/components/base/flex/demo1/demo.vue +6 -6
  168. package/src/views/components/base/flex/demo1/index.vue +14 -14
  169. package/src/views/components/base/label/_index/index.vue +17 -17
  170. package/src/views/components/base/label/demo1/index.vue +14 -14
  171. package/src/views/components/base/scrollbar/_index/index.vue +17 -17
  172. package/src/views/components/base/scrollbar/demo1/demo.vue +47 -47
  173. package/src/views/components/base/scrollbar/demo1/index.vue +11 -11
  174. package/src/views/components/base/split/_index/index.vue +17 -17
  175. package/src/views/components/base/split/demo1/demo.vue +6 -6
  176. package/src/views/components/base/split/demo1/index.vue +11 -11
  177. package/src/views/components/base/tabs/_index/index.vue +21 -21
  178. package/src/views/components/base/tabs/demo1/demo.vue +47 -47
  179. package/src/views/components/base/tabs/demo1/index.vue +14 -14
  180. package/src/views/components/base/txt/_index/index.vue +17 -17
  181. package/src/views/components/base/txt/demo1/index.vue +14 -14
  182. package/src/views/components/form/checkbox-group/_index/index.vue +20 -20
  183. package/src/views/components/form/checkbox-group/demo1/demo.vue +35 -35
  184. package/src/views/components/form/checkbox-group/demo1/index.vue +11 -11
  185. package/src/views/components/form/color-picker/_index/index.vue +16 -16
  186. package/src/views/components/form/color-picker/demo1/demo.vue +10 -10
  187. package/src/views/components/form/color-picker/demo1/index.vue +11 -11
  188. package/src/views/components/form/date-range-picker/_index/index.vue +17 -17
  189. package/src/views/components/form/date-range-picker/demo1/demo.vue +21 -21
  190. package/src/views/components/form/date-range-picker/demo1/index.vue +11 -11
  191. package/src/views/components/form/form/_index/index.vue +18 -18
  192. package/src/views/components/form/form/demo1/demo.vue +33 -33
  193. package/src/views/components/form/form/demo1/index.vue +11 -11
  194. package/src/views/components/form/form-dialog/_index/index.vue +18 -18
  195. package/src/views/components/form/form-dialog/demo1/demo.vue +39 -39
  196. package/src/views/components/form/form-dialog/demo1/index.vue +14 -14
  197. package/src/views/components/form/form-page/_index/index.vue +18 -18
  198. package/src/views/components/form/form-page/demo1/demo.vue +19 -19
  199. package/src/views/components/form/form-page/demo1/index.vue +11 -11
  200. package/src/views/components/form/icon-picker/_index/index.vue +18 -17
  201. package/src/views/components/form/icon-picker/demo1/demo.vue +20 -20
  202. package/src/views/components/form/icon-picker/demo1/index.vue +11 -11
  203. package/src/views/components/form/select/_index/index.vue +19 -19
  204. package/src/views/components/form/select/demo1/demo.vue +39 -39
  205. package/src/views/components/form/select/demo1/index.vue +11 -11
  206. package/src/views/components/form/select/demo2/index.vue +6 -6
  207. package/src/views/components/map/map-coord-picking/_index/index.vue +22 -22
  208. package/src/views/components/map/map-coord-picking/demo1/demo.vue +23 -23
  209. package/src/views/components/map/map-coord-picking/demo1/index.vue +11 -11
  210. package/src/views/run/index.vue +37 -37
  211. package/vue.config.js +1 -1
package/.prettierrc CHANGED
@@ -1,6 +1,8 @@
1
1
  {
2
- "tabWidth": 2,
3
- "semi": false,
4
- "singleQuote": true,
5
- "printWidth": 200
2
+ "tabWidth": 2,
3
+ "semi": false,
4
+ "singleQuote": true,
5
+ "printWidth": 500,
6
+ "vueIndentScriptAndStyle": true,
7
+ "htmlWhitespaceSensitivity": "ignore"
6
8
  }
package/README.md CHANGED
@@ -5,30 +5,35 @@ HaiWei.UI 是一个基于 Vue2 + ElementUI 的业务模块化前端快速开发
5
5
  ## 主要特性
6
6
 
7
7
  ### 🎯 核心架构
8
+
8
9
  - **模块化设计** - 支持业务模块的独立开发和集成
9
10
  - **组件化开发** - 基于 Vue2 的组件化开发模式
10
11
  - **统一状态管理** - 使用 Vuex 进行全局状态管理
11
12
  - **路由管理** - 支持动态路由和权限控制
12
13
 
13
14
  ### 🎨 UI 组件库
15
+
14
16
  - **基础组件** - 丰富的表单、表格、弹窗等基础组件
15
17
  - **业务组件** - 针对常见业务场景封装的专用组件
16
18
  - **布局组件** - 灵活的页面布局和导航组件
17
19
  - **图表组件** - 数据可视化图表组件
18
20
 
19
21
  ### 🔧 开发工具
22
+
20
23
  - **开发服务器** - 内置开发服务器,支持热重载
21
24
  - **构建工具** - 基于 Vue CLI 的现代化构建流程
22
25
  - **代码规范** - 集成 ESLint 和 Prettier 代码规范
23
26
  - **TypeScript 支持** - 可选 TypeScript 支持
24
27
 
25
28
  ### 🛠️ 功能模块
29
+
26
30
  - **权限管理** - 基于角色的权限控制系统
27
31
  - **皮肤主题** - 支持自定义皮肤和主题切换
28
32
  - **登录页面** - 可定制的登录页面组件
29
33
  - **数据管理** - 统一的数据请求和状态管理
30
34
 
31
35
  ### 📦 部署与发布
36
+
32
37
  - **npm 发布** - 支持作为 npm 包发布和分发
33
38
  - **模块集成** - 模块化的集成和依赖管理
34
39
  - **构建优化** - 生产环境构建优化和代码压缩
@@ -36,25 +41,30 @@ HaiWei.UI 是一个基于 Vue2 + ElementUI 的业务模块化前端快速开发
36
41
  ## 快速开始
37
42
 
38
43
  ### 环境要求
44
+
39
45
  - Node.js >= 12.0.0
40
46
  - npm >= 6.0.0
41
47
 
42
48
  ### 安装依赖
49
+
43
50
  ```bash
44
51
  npm install
45
52
  ```
46
53
 
47
54
  ### 开发模式
55
+
48
56
  ```bash
49
57
  npm run serve
50
58
  ```
51
59
 
52
60
  ### 构建生产版本
61
+
53
62
  ```bash
54
63
  npm run build
55
64
  ```
56
65
 
57
66
  ### 代码检查
67
+
58
68
  ```bash
59
69
  npm run lint
60
70
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "haiwei-ui",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "HaiWei前端组件库",
5
5
  "author": "Eric",
6
6
  "license": "ISC",
@@ -45,137 +45,128 @@
45
45
  </section>
46
46
  </template>
47
47
  <script>
48
- import { mapState } from 'vuex'
49
- export default {
50
- name: 'Box',
51
- data() {
52
- return {
53
- collapse_: false,
54
- fullscreen_: false
55
- }
56
- },
57
- props: {
58
- /** 标题 */
59
- title: String,
60
- /** 图标 */
61
- icon: String,
62
- /** 是否显示头部 */
63
- header: Boolean,
64
- /** 是否显示底部 */
65
- footer: Boolean,
66
- /** 底部对齐方式 */
67
- footerAlign: {
68
- type: String,
69
- default: 'right'
70
- },
71
- /** 高度 */
72
- height: String,
73
- /** 是否显示顶部边框 */
74
- border: Boolean,
75
- /** 顶部边框的颜色 */
76
- borderColor: {
77
- type: String,
78
- default: 'success'
79
- },
80
- /** 标题是否加粗 */
81
- titleBold: Boolean,
82
- /** 是否显示水平滚动条 */
83
- horizontal: Boolean,
84
- /** loading */
85
- loading: Boolean,
86
- /** 是否页模式 */
87
- page: Boolean,
88
- /** 是否显示全屏按钮 */
89
- fullscreen: Boolean,
90
- /** 是否显示折叠按钮 */
91
- collapse: Boolean,
92
- /** 自定义折叠事件 */
93
- customCollapseEvent: Function,
94
- /** 不显示滚动条 */
95
- noScrollbar: Boolean,
96
- /** 没有内边距 */
97
- noPadding: Boolean,
98
- /** 是否显示刷新按钮 */
99
- refresh: Boolean
100
- },
101
- computed: {
102
- ...mapState('app/loading', { loadingText: 'text', loadingBackground: 'background', loadingSpinner: 'spinner' }),
103
- /** 生成class */
104
- class_() {
105
- let classArr = [
106
- 'nm-box',
107
- this.fontSize,
108
- this.fullscreen_ ? 'fullscreen' : '',
109
- this.height ? 'has-height' : '',
110
- this.page ? 'page' : '',
111
- this.noPadding ? 'no-padding' : '',
112
- this.border ? 'border' : '',
113
- this.titleBold ? 'title-bold' : ''
114
- ]
115
-
116
- if (['success', 'primary', 'info', 'warning', 'danger'].includes(this.borderColor)) {
117
- classArr.push(this.borderColor)
48
+ import { mapState } from 'vuex'
49
+ export default {
50
+ name: 'Box',
51
+ data() {
52
+ return {
53
+ collapse_: false,
54
+ fullscreen_: false
118
55
  }
119
- return classArr
120
56
  },
121
- style_() {
122
- let style = { height: this.height }
123
- if (!['success', 'primary', 'info', 'warning', 'danger'].includes(this.borderColor)) {
124
- style.borderTopCoder = this.borderColor
125
- }
126
- return style
127
- },
128
- /** 是否有滚动条 */
129
- hasScrollbar() {
130
- return !this.noScrollbar && (this.height || this.page)
57
+ props: {
58
+ /** 标题 */
59
+ title: String,
60
+ /** 图标 */
61
+ icon: String,
62
+ /** 是否显示头部 */
63
+ header: Boolean,
64
+ /** 是否显示底部 */
65
+ footer: Boolean,
66
+ /** 底部对齐方式 */
67
+ footerAlign: {
68
+ type: String,
69
+ default: 'right'
70
+ },
71
+ /** 高度 */
72
+ height: String,
73
+ /** 是否显示顶部边框 */
74
+ border: Boolean,
75
+ /** 顶部边框的颜色 */
76
+ borderColor: {
77
+ type: String,
78
+ default: 'success'
79
+ },
80
+ /** 标题是否加粗 */
81
+ titleBold: Boolean,
82
+ /** 是否显示水平滚动条 */
83
+ horizontal: Boolean,
84
+ /** loading */
85
+ loading: Boolean,
86
+ /** 是否页模式 */
87
+ page: Boolean,
88
+ /** 是否显示全屏按钮 */
89
+ fullscreen: Boolean,
90
+ /** 是否显示折叠按钮 */
91
+ collapse: Boolean,
92
+ /** 自定义折叠事件 */
93
+ customCollapseEvent: Function,
94
+ /** 不显示滚动条 */
95
+ noScrollbar: Boolean,
96
+ /** 没有内边距 */
97
+ noPadding: Boolean,
98
+ /** 是否显示刷新按钮 */
99
+ refresh: Boolean
131
100
  },
132
- /** 是否可以折叠 */
133
- isCollapse() {
134
- return this.collapse && !this.page
135
- }
136
- },
137
- methods: {
138
- /** 开启全屏 */
139
- openFullscreen() {
140
- this.fullscreen_ = true
141
- // 全屏事件
142
- this.$emit('fullscreen-change', this.fullscreen_)
143
- },
144
- /** 关闭全屏 */
145
- closeFullscreen() {
146
- this.fullscreen_ = false
147
- // 全屏事件
148
- this.$emit('fullscreen-change', this.fullscreen_)
149
- },
150
- /** 滚动条重置 */
151
- scrollbarResize() {
152
- if (this.hasScrollbar) {
153
- this.$refs.scrollbar.update()
154
- }
155
- },
156
- /** 折叠事件 */
157
- onCollapse() {
158
- // 如果设置了自定义折叠事件,则覆盖默认的
159
- if (this.customCollapseEvent) {
160
- this.collapse_ = this.customCollapseEvent()
161
- } else if (this.isCollapse) {
162
- this.collapse_ = !this.collapse_
101
+ computed: {
102
+ ...mapState('app/loading', { loadingText: 'text', loadingBackground: 'background', loadingSpinner: 'spinner' }),
103
+ /** 生成class */
104
+ class_() {
105
+ let classArr = ['nm-box', this.fontSize, this.fullscreen_ ? 'fullscreen' : '', this.height ? 'has-height' : '', this.page ? 'page' : '', this.noPadding ? 'no-padding' : '', this.border ? 'border' : '', this.titleBold ? 'title-bold' : '']
106
+
107
+ if (['success', 'primary', 'info', 'warning', 'danger'].includes(this.borderColor)) {
108
+ classArr.push(this.borderColor)
109
+ }
110
+ return classArr
111
+ },
112
+ style_() {
113
+ let style = { height: this.height }
114
+ if (!['success', 'primary', 'info', 'warning', 'danger'].includes(this.borderColor)) {
115
+ style.borderTopCoder = this.borderColor
116
+ }
117
+ return style
118
+ },
119
+ /** 是否有滚动条 */
120
+ hasScrollbar() {
121
+ return !this.noScrollbar && (this.height || this.page)
122
+ },
123
+ /** 是否可以折叠 */
124
+ isCollapse() {
125
+ return this.collapse && !this.page
163
126
  }
164
- // 折叠事件
165
- this.$emit('collapse-change', this.collapse_)
166
127
  },
167
- /** 全屏事件 */
168
- onFullscreen() {
169
- if (this.fullscreen_) {
170
- this.closeFullscreen()
171
- } else {
172
- this.openFullscreen()
128
+ methods: {
129
+ /** 开启全屏 */
130
+ openFullscreen() {
131
+ this.fullscreen_ = true
132
+ // 全屏事件
133
+ this.$emit('fullscreen-change', this.fullscreen_)
134
+ },
135
+ /** 关闭全屏 */
136
+ closeFullscreen() {
137
+ this.fullscreen_ = false
138
+ // 全屏事件
139
+ this.$emit('fullscreen-change', this.fullscreen_)
140
+ },
141
+ /** 滚动条重置 */
142
+ scrollbarResize() {
143
+ if (this.hasScrollbar) {
144
+ this.$refs.scrollbar.update()
145
+ }
146
+ },
147
+ /** 折叠事件 */
148
+ onCollapse() {
149
+ // 如果设置了自定义折叠事件,则覆盖默认的
150
+ if (this.customCollapseEvent) {
151
+ this.collapse_ = this.customCollapseEvent()
152
+ } else if (this.isCollapse) {
153
+ this.collapse_ = !this.collapse_
154
+ }
155
+ // 折叠事件
156
+ this.$emit('collapse-change', this.collapse_)
157
+ },
158
+ /** 全屏事件 */
159
+ onFullscreen() {
160
+ if (this.fullscreen_) {
161
+ this.closeFullscreen()
162
+ } else {
163
+ this.openFullscreen()
164
+ }
165
+ },
166
+ /** 刷新按钮事件 */
167
+ onRefresh() {
168
+ this.$emit('refresh')
173
169
  }
174
- },
175
- /** 刷新按钮事件 */
176
- onRefresh() {
177
- this.$emit('refresh')
178
170
  }
179
171
  }
180
- }
181
172
  </script>
@@ -1,43 +1,40 @@
1
1
  <template>
2
- <section
3
- :class="['nm-box-col', span ? 'nm-box-col-' + span : '', offset ? 'nm-box-col-offset-' + offset : '', push ? 'nm-box-col-push-' + push : '', pull ? 'nm-box-col-pull-' + pull : '']"
4
- :style="style"
5
- >
2
+ <section :class="['nm-box-col', span ? 'nm-box-col-' + span : '', offset ? 'nm-box-col-offset-' + offset : '', push ? 'nm-box-col-push-' + push : '', pull ? 'nm-box-col-pull-' + pull : '']" :style="style">
6
3
  <slot />
7
4
  </section>
8
5
  </template>
9
6
  <script>
10
- export default {
11
- name: 'BoxCol',
12
- props: {
13
- // 栅格占据的列数
14
- span: {
15
- type: Number,
16
- default: 24
17
- },
18
- // 栅格左侧的间隔格数
19
- offset: {
20
- type: Number,
21
- default: 0
22
- },
23
- // 栅格向右移动格数
24
- push: {
25
- type: Number,
26
- default: 0
7
+ export default {
8
+ name: 'BoxCol',
9
+ props: {
10
+ // 栅格占据的列数
11
+ span: {
12
+ type: Number,
13
+ default: 24
14
+ },
15
+ // 栅格左侧的间隔格数
16
+ offset: {
17
+ type: Number,
18
+ default: 0
19
+ },
20
+ // 栅格向右移动格数
21
+ push: {
22
+ type: Number,
23
+ default: 0
24
+ },
25
+ // 栅格向左移动格数
26
+ pull: {
27
+ type: Number,
28
+ default: 0
29
+ }
27
30
  },
28
- // 栅格向左移动格数
29
- pull: {
30
- type: Number,
31
- default: 0
32
- }
33
- },
34
- computed: {
35
- style() {
36
- return {
37
- paddingLeft: this.$parent.gutter_,
38
- paddingRight: this.$parent.gutter_
31
+ computed: {
32
+ style() {
33
+ return {
34
+ paddingLeft: this.$parent.gutter_,
35
+ paddingRight: this.$parent.gutter_
36
+ }
39
37
  }
40
38
  }
41
39
  }
42
- }
43
40
  </script>
@@ -4,24 +4,24 @@
4
4
  </section>
5
5
  </template>
6
6
  <script>
7
- export default {
8
- name: 'BoxRow',
9
- props: {
10
- /** 间隔 */
11
- gutter: {
12
- type: Number,
13
- default: 5
7
+ export default {
8
+ name: 'BoxRow',
9
+ props: {
10
+ /** 间隔 */
11
+ gutter: {
12
+ type: Number,
13
+ default: 5
14
+ },
15
+ /** 高度 */
16
+ height: {
17
+ type: String,
18
+ required: true
19
+ }
14
20
  },
15
- /** 高度 */
16
- height: {
17
- type: String,
18
- required: true
19
- }
20
- },
21
- computed: {
22
- gutter_() {
23
- return this.gutter / 2 + 'px'
21
+ computed: {
22
+ gutter_() {
23
+ return this.gutter / 2 + 'px'
24
+ }
24
25
  }
25
26
  }
26
- }
27
27
  </script>
@@ -17,48 +17,48 @@
17
17
  </div>
18
18
  </template>
19
19
  <script>
20
- export default {
21
- name: 'BoxSmall',
22
- props: {
23
- /** 文本 */
24
- label: String,
25
- /** 值 */
26
- value: [String, Number],
27
- /** 单位 */
28
- unit: String,
29
- /** 图标 */
30
- icon: String,
31
- /** 显示更多 */
32
- more: Boolean,
33
- /** 背景色 */
34
- bgColor: {
35
- type: String,
36
- default: 'success'
37
- }
38
- },
39
- computed: {
40
- class_() {
41
- let classArr = ['nm-box-small']
42
- if (this.includeBgColor) {
43
- classArr.push(`nm-bg-${this.bgColor}`)
20
+ export default {
21
+ name: 'BoxSmall',
22
+ props: {
23
+ /** 文本 */
24
+ label: String,
25
+ /** 值 */
26
+ value: [String, Number],
27
+ /** 单位 */
28
+ unit: String,
29
+ /** 图标 */
30
+ icon: String,
31
+ /** 显示更多 */
32
+ more: Boolean,
33
+ /** 背景色 */
34
+ bgColor: {
35
+ type: String,
36
+ default: 'success'
44
37
  }
45
- return classArr
46
38
  },
47
- style_() {
48
- let style = {}
49
- if (!this.includeBgColor) {
50
- style.backgroundColor = this.bgColor
39
+ computed: {
40
+ class_() {
41
+ let classArr = ['nm-box-small']
42
+ if (this.includeBgColor) {
43
+ classArr.push(`nm-bg-${this.bgColor}`)
44
+ }
45
+ return classArr
46
+ },
47
+ style_() {
48
+ let style = {}
49
+ if (!this.includeBgColor) {
50
+ style.backgroundColor = this.bgColor
51
+ }
52
+ return style
53
+ },
54
+ includeBgColor() {
55
+ return ['success', 'primary', 'info', 'warning', 'danger'].includes(this.bgColor)
51
56
  }
52
- return style
53
57
  },
54
- includeBgColor() {
55
- return ['success', 'primary', 'info', 'warning', 'danger'].includes(this.bgColor)
56
- }
57
- },
58
- methods: {
59
- onMore() {
60
- this.$emit('more')
58
+ methods: {
59
+ onMore() {
60
+ this.$emit('more')
61
+ }
61
62
  }
62
63
  }
63
- }
64
64
  </script>
@@ -1,18 +1,5 @@
1
1
  <template>
2
- <el-button
3
- class="nm-button"
4
- :type="type"
5
- :size="size || fontSize"
6
- :plain="plain"
7
- :round="round"
8
- :circle="circle"
9
- :loading="loading"
10
- :disabled="disabled"
11
- :autofocus="autofocus"
12
- :native-type="nativeType"
13
- v-nm-has="code"
14
- @click="$emit('click')"
15
- >
2
+ <el-button class="nm-button" :type="type" :size="size || fontSize" :plain="plain" :round="round" :circle="circle" :loading="loading" :disabled="disabled" :autofocus="autofocus" :native-type="nativeType" v-nm-has="code" @click="$emit('click')">
16
3
  <nm-icon v-if="!loading && icon" :name="icon" />
17
4
  <slot>
18
5
  <span v-if="!circle && text" class="nm-button-text" v-html="text" />
@@ -20,33 +7,33 @@
20
7
  </el-button>
21
8
  </template>
22
9
  <script>
23
- export default {
24
- name: 'Button',
25
- props: {
26
- /** 尺寸,默认按照框架的字号设置 */
27
- size: String,
28
- /** 类型 primary/success/warning/danger/info/text */
29
- type: String,
30
- /** 是否朴素按钮 */
31
- plain: Boolean,
32
- /** 是否圆角按钮 */
33
- round: Boolean,
34
- /** 是否圆形按钮 */
35
- circle: Boolean,
36
- /** 是否加载中状态 */
37
- loading: Boolean,
38
- /** 是否禁用状态 */
39
- disabled: Boolean,
40
- /** 是否默认聚焦 */
41
- autofocus: Boolean,
42
- /** 原生 type 属性 button/submit/reset */
43
- nativeType: String,
44
- /** 图标 */
45
- icon: String,
46
- // 文本
47
- text: String,
48
- // 按钮编码,用于按钮权限控制
49
- code: String
10
+ export default {
11
+ name: 'Button',
12
+ props: {
13
+ /** 尺寸,默认按照框架的字号设置 */
14
+ size: String,
15
+ /** 类型 primary/success/warning/danger/info/text */
16
+ type: String,
17
+ /** 是否朴素按钮 */
18
+ plain: Boolean,
19
+ /** 是否圆角按钮 */
20
+ round: Boolean,
21
+ /** 是否圆形按钮 */
22
+ circle: Boolean,
23
+ /** 是否加载中状态 */
24
+ loading: Boolean,
25
+ /** 是否禁用状态 */
26
+ disabled: Boolean,
27
+ /** 是否默认聚焦 */
28
+ autofocus: Boolean,
29
+ /** 原生 type 属性 button/submit/reset */
30
+ nativeType: String,
31
+ /** 图标 */
32
+ icon: String,
33
+ // 文本
34
+ text: String,
35
+ // 按钮编码,用于按钮权限控制
36
+ code: String
37
+ }
50
38
  }
51
- }
52
39
  </script>