eoss-ui 0.7.64 → 0.7.66

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 (255) hide show
  1. package/lib/button-group.js +119 -97
  2. package/lib/button.js +113 -97
  3. package/lib/calendar.js +2 -2
  4. package/lib/calogin.js +352 -330
  5. package/lib/card.js +2 -2
  6. package/lib/cascader.js +2 -2
  7. package/lib/checkbox-group.js +119 -97
  8. package/lib/clients.js +43 -41
  9. package/lib/config/api.js +12 -1
  10. package/lib/data-table-form.js +119 -97
  11. package/lib/data-table.js +119 -97
  12. package/lib/date-picker.js +120 -104
  13. package/lib/dialog.js +119 -97
  14. package/lib/enable-drag.js +2 -2
  15. package/lib/enterprise.js +2 -2
  16. package/lib/eoss-ui.common.js +8677 -720
  17. package/lib/error-page.js +2 -2
  18. package/lib/flow-group.js +120 -104
  19. package/lib/flow-list.js +287 -289
  20. package/lib/flow.js +175 -153
  21. package/lib/form.js +119 -97
  22. package/lib/handle-user.js +121 -105
  23. package/lib/handler.js +114 -98
  24. package/lib/icon.js +114 -98
  25. package/lib/icons.js +5 -5
  26. package/lib/index.js +1 -1
  27. package/lib/input-number.js +120 -104
  28. package/lib/input.js +120 -104
  29. package/lib/label.js +2 -2
  30. package/lib/layout.js +2 -2
  31. package/lib/login.js +129 -107
  32. package/lib/main.js +8505 -545
  33. package/lib/menu.js +2 -2
  34. package/lib/nav.js +113 -97
  35. package/lib/notify.js +116 -100
  36. package/lib/page.js +120 -104
  37. package/lib/pagination.js +120 -104
  38. package/lib/player.js +130 -114
  39. package/lib/qr-code.js +141 -125
  40. package/lib/radio-group.js +120 -104
  41. package/lib/retrial-auth.js +116 -100
  42. package/lib/select-ganged.js +113 -97
  43. package/lib/select.js +120 -104
  44. package/lib/selector-panel.js +140 -118
  45. package/lib/selector.js +117 -101
  46. package/lib/sizer.js +115 -99
  47. package/lib/steps.js +113 -97
  48. package/lib/switch.js +113 -97
  49. package/lib/table-form.js +120 -104
  50. package/lib/tabs-panel.js +2 -2
  51. package/lib/tabs.js +120 -104
  52. package/lib/theme-chalk/base.css +1 -1
  53. package/lib/theme-chalk/fonts/iconfont.ttf +0 -0
  54. package/lib/theme-chalk/fonts/iconfont.woff +0 -0
  55. package/lib/theme-chalk/icon.css +1 -1
  56. package/lib/theme-chalk/index.css +1 -1
  57. package/lib/theme-chalk/login.css +1 -1
  58. package/lib/theme-chalk/main.css +1 -1
  59. package/lib/theme-chalk/menu.css +1 -1
  60. package/lib/theme-chalk/simplicity-top.css +1 -0
  61. package/lib/theme-chalk/simplicity.css +1 -1
  62. package/lib/theme-chalk/sizer.css +1 -1
  63. package/lib/theme-chalk/upload.css +1 -1
  64. package/lib/tips.js +121 -105
  65. package/lib/toolbar.js +2 -2
  66. package/lib/tree-group.js +120 -104
  67. package/lib/tree.js +121 -105
  68. package/lib/upload.js +129 -107
  69. package/lib/wujie.js +113 -97
  70. package/lib/wxlogin.js +113 -97
  71. package/package.json +1 -1
  72. package/packages/button/index.js +5 -5
  73. package/packages/button/src/main.vue +418 -418
  74. package/packages/button-group/index.js +5 -5
  75. package/packages/calendar/index.js +5 -5
  76. package/packages/calogin/index.js +5 -5
  77. package/packages/calogin/src/plugin.js +915 -915
  78. package/packages/card/index.js +5 -5
  79. package/packages/card/src/main.vue +156 -156
  80. package/packages/cascader/index.js +5 -5
  81. package/packages/cascader/src/main.vue +168 -168
  82. package/packages/checkbox-group/index.js +5 -5
  83. package/packages/checkbox-group/src/main.vue +333 -333
  84. package/packages/clients/index.js +5 -5
  85. package/packages/clients/src/main.vue +1 -1
  86. package/packages/data-table/index.js +5 -5
  87. package/packages/data-table/src/children.vue +39 -39
  88. package/packages/data-table/src/sizer.vue +195 -195
  89. package/packages/data-table-form/index.js +5 -5
  90. package/packages/data-table-form/src/checkbox.vue +101 -101
  91. package/packages/data-table-form/src/colgroup.vue +17 -17
  92. package/packages/data-table-form/src/main.vue +181 -181
  93. package/packages/data-table-form/src/radio.vue +65 -65
  94. package/packages/data-table-form/src/table.vue +233 -233
  95. package/packages/data-table-form/src/tbody.vue +336 -336
  96. package/packages/data-table-form/src/thead.vue +68 -68
  97. package/packages/date-picker/index.js +5 -5
  98. package/packages/date-picker/src/main.vue +236 -236
  99. package/packages/dialog/index.js +5 -5
  100. package/packages/enable-drag/index.js +5 -5
  101. package/packages/enterprise/index.js +5 -5
  102. package/packages/enterprise/src/main.vue +66 -66
  103. package/packages/error-page/index.js +5 -5
  104. package/packages/error-page/src/main.vue +44 -44
  105. package/packages/flow/index.js +5 -5
  106. package/packages/flow/src/component/TimeLimit.vue +190 -190
  107. package/packages/flow/src/table.vue +58 -58
  108. package/packages/flow-group/index.js +5 -5
  109. package/packages/flow-list/index.js +5 -5
  110. package/packages/form/index.js +5 -5
  111. package/packages/handle-user/index.js +5 -5
  112. package/packages/handler/index.js +5 -5
  113. package/packages/icon/index.js +5 -5
  114. package/packages/icons/index.js +5 -5
  115. package/packages/icons/src/icon.json +1 -1
  116. package/packages/icons/src/main.vue +81 -81
  117. package/packages/input/index.js +5 -5
  118. package/packages/input/src/main.vue +356 -356
  119. package/packages/input-number/index.js +5 -5
  120. package/packages/input-number/src/main.vue +106 -106
  121. package/packages/label/index.js +5 -5
  122. package/packages/label/src/main.vue +457 -457
  123. package/packages/layout/index.js +5 -5
  124. package/packages/layout/src/item.vue +152 -152
  125. package/packages/layout/src/main.vue +31 -31
  126. package/packages/login/index.js +5 -5
  127. package/packages/login/src/main.vue +2 -2
  128. package/packages/main/index.js +5 -5
  129. package/packages/main/src/default/message.vue +249 -249
  130. package/packages/main/src/default/notice.vue +157 -157
  131. package/packages/main/src/main.vue +18 -0
  132. package/packages/main/src/public/settings.vue +121 -75
  133. package/packages/main/src/simplicity/index.vue +5 -5
  134. package/packages/main/src/simplicity/lists.vue +84 -84
  135. package/packages/main/src/simplicity/router-page.vue +45 -45
  136. package/packages/main/src/simplicityTop/apps.vue +388 -0
  137. package/packages/main/src/simplicityTop/avatar.vue +82 -0
  138. package/packages/main/src/simplicityTop/handler.vue +207 -0
  139. package/packages/main/src/simplicityTop/index.vue +2909 -0
  140. package/packages/main/src/simplicityTop/lists.vue +84 -0
  141. package/packages/main/src/simplicityTop/menu-list.vue +135 -0
  142. package/packages/main/src/simplicityTop/message.vue +293 -0
  143. package/packages/main/src/simplicityTop/notice.vue +222 -0
  144. package/packages/main/src/simplicityTop/router-page.vue +45 -0
  145. package/packages/main/src/simplicityTop/sub-menu.vue +274 -0
  146. package/packages/main/src/simplicityTop/user.vue +259 -0
  147. package/packages/main/src/simplicityTop/userinfo.vue +401 -0
  148. package/packages/menu/index.js +5 -5
  149. package/packages/nav/index.js +5 -5
  150. package/packages/notify/index.js +5 -5
  151. package/packages/notify/src/main.vue +538 -538
  152. package/packages/page/index.js +5 -5
  153. package/packages/page/src/main.vue +167 -167
  154. package/packages/pagination/index.js +5 -5
  155. package/packages/pagination/src/main.vue +96 -96
  156. package/packages/player/index.js +5 -5
  157. package/packages/player/src/main.vue +194 -194
  158. package/packages/qr-code/index.js +5 -5
  159. package/packages/qr-code/src/main.vue +170 -170
  160. package/packages/radio-group/index.js +6 -6
  161. package/packages/radio-group/src/main.vue +319 -319
  162. package/packages/retrial-auth/index.js +5 -5
  163. package/packages/retrial-auth/src/main.vue +280 -280
  164. package/packages/select/index.js +5 -5
  165. package/packages/select-ganged/index.js +5 -5
  166. package/packages/select-ganged/src/main.vue +724 -724
  167. package/packages/selector/index.js +5 -5
  168. package/packages/selector-panel/index.js +5 -5
  169. package/packages/selector-panel/src/tree.vue +129 -129
  170. package/packages/sizer/index.js +5 -5
  171. package/packages/sizer/src/main.vue +254 -254
  172. package/packages/steps/index.js +5 -5
  173. package/packages/steps/src/main.vue +181 -181
  174. package/packages/switch/index.js +5 -5
  175. package/packages/table-form/index.js +5 -5
  176. package/packages/tabs/index.js +5 -5
  177. package/packages/tabs/src/main.vue +788 -788
  178. package/packages/tabs-panel/index.js +5 -5
  179. package/packages/tabs-panel/src/main.vue +29 -29
  180. package/packages/theme-chalk/lib/base.css +1 -1
  181. package/packages/theme-chalk/lib/fonts/iconfont.ttf +0 -0
  182. package/packages/theme-chalk/lib/fonts/iconfont.woff +0 -0
  183. package/packages/theme-chalk/lib/icon.css +1 -1
  184. package/packages/theme-chalk/lib/index.css +1 -1
  185. package/packages/theme-chalk/lib/login.css +1 -1
  186. package/packages/theme-chalk/lib/main.css +1 -1
  187. package/packages/theme-chalk/lib/menu.css +1 -1
  188. package/packages/theme-chalk/lib/simplicity-top.css +1 -0
  189. package/packages/theme-chalk/lib/simplicity.css +1 -1
  190. package/packages/theme-chalk/lib/sizer.css +1 -1
  191. package/packages/theme-chalk/lib/upload.css +1 -1
  192. package/packages/theme-chalk/src/base.scss +261 -261
  193. package/packages/theme-chalk/src/button-group.scss +176 -176
  194. package/packages/theme-chalk/src/button.scss +24 -24
  195. package/packages/theme-chalk/src/calendar.scss +113 -113
  196. package/packages/theme-chalk/src/card.scss +99 -99
  197. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  198. package/packages/theme-chalk/src/clients.scss +87 -87
  199. package/packages/theme-chalk/src/common/var.scss +3 -0
  200. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  201. package/packages/theme-chalk/src/date-picker.scss +7 -7
  202. package/packages/theme-chalk/src/dialog.scss +77 -77
  203. package/packages/theme-chalk/src/enable-drag.scss +181 -181
  204. package/packages/theme-chalk/src/enterprise.scss +5 -5
  205. package/packages/theme-chalk/src/error-page.scss +18 -18
  206. package/packages/theme-chalk/src/flow-group.scss +110 -110
  207. package/packages/theme-chalk/src/flow-list.scss +39 -39
  208. package/packages/theme-chalk/src/fonts/iconfont.ttf +0 -0
  209. package/packages/theme-chalk/src/fonts/iconfont.woff +0 -0
  210. package/packages/theme-chalk/src/handle-user.scss +40 -40
  211. package/packages/theme-chalk/src/icon.scss +4 -0
  212. package/packages/theme-chalk/src/icons.scss +99 -99
  213. package/packages/theme-chalk/src/input.scss +9 -9
  214. package/packages/theme-chalk/src/label.scss +24 -24
  215. package/packages/theme-chalk/src/layout.scss +46 -46
  216. package/packages/theme-chalk/src/main.scss +1 -0
  217. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  218. package/packages/theme-chalk/src/nav.scss +111 -111
  219. package/packages/theme-chalk/src/page.scss +3 -3
  220. package/packages/theme-chalk/src/pagination.scss +29 -29
  221. package/packages/theme-chalk/src/player.scss +9 -9
  222. package/packages/theme-chalk/src/qr-code.scss +17 -17
  223. package/packages/theme-chalk/src/radio-group.scss +9 -9
  224. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  225. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  226. package/packages/theme-chalk/src/select.scss +8 -8
  227. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  228. package/packages/theme-chalk/src/simplicity-top.scss +1974 -0
  229. package/packages/theme-chalk/src/sizer.scss +36 -36
  230. package/packages/theme-chalk/src/steps.scss +88 -88
  231. package/packages/theme-chalk/src/switch.scss +3 -3
  232. package/packages/theme-chalk/src/table-form.scss +1 -1
  233. package/packages/theme-chalk/src/tabs.scss +87 -87
  234. package/packages/theme-chalk/src/tips.scss +7 -7
  235. package/packages/theme-chalk/src/toolbar.scss +179 -179
  236. package/packages/theme-chalk/src/tree-group.scss +72 -72
  237. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  238. package/packages/tips/index.js +5 -5
  239. package/packages/toolbar/index.js +5 -5
  240. package/packages/tree/index.js +5 -5
  241. package/packages/tree-group/index.js +5 -5
  242. package/packages/upload/index.js +5 -5
  243. package/packages/upload/src/picture.js +15 -15
  244. package/packages/wujie/index.js +5 -5
  245. package/packages/wujie/src/main.vue +145 -145
  246. package/packages/wxlogin/index.js +5 -5
  247. package/packages/wxlogin/src/main.vue +128 -128
  248. package/src/config/api.js +15 -2
  249. package/src/config/image.js +2 -2
  250. package/src/index.js +1 -1
  251. package/src/utils/bus.js +3 -3
  252. package/src/utils/date-util.js +312 -312
  253. package/src/utils/http.js +50 -50
  254. package/src/utils/store.js +21 -21
  255. package/src/utils/webSocket.js +107 -107
@@ -0,0 +1,84 @@
1
+ <template>
2
+ <div v-for="(item, index) in data" :key="item.id" @click="handleClick(item)">
3
+ <div
4
+ class="es-simplicity-menus-item"
5
+ :class="{
6
+ 'is-active': active === item.id,
7
+ 'is-open': openId === item.id
8
+ }"
9
+ >
10
+ <es-icon
11
+ class="es-simplicity_apps-icon"
12
+ :style="setStyle(index)"
13
+ :contents="item.icons || item.icon || menuIcon"
14
+ ></es-icon>
15
+ <div class="es-simplicity-menus-tips" v-if="item.tips">
16
+ {{ item.tips > 99 ? '99+' : item.tips }}
17
+ </div>
18
+ <div class="es-simplicity_apps-text">
19
+ {{ item.text || item.name }}
20
+ </div>
21
+ </div>
22
+ <lists
23
+ v-if="
24
+ (item.children && item.children.length) ||
25
+ (item.fourthTabs && item.fourthTabs.length)
26
+ "
27
+ :menuIcon="menuIcon"
28
+ :color="color"
29
+ :backgroundColor="backgroundColor"
30
+ :data="[...(item.children || []), ...(item.fourthTabs || [])]"
31
+ ></lists>
32
+ </div>
33
+ </template>
34
+
35
+ <script>
36
+ export default {
37
+ name: 'Lists',
38
+ components: {},
39
+ props: {
40
+ menuIcon: String,
41
+ color: [String, Array],
42
+ backgroundColor: [String, Array],
43
+ data: Array
44
+ },
45
+ data() {
46
+ return {
47
+ active: '',
48
+ openId: ''
49
+ };
50
+ },
51
+ computed: {},
52
+ watch: {},
53
+ created() {},
54
+ mounted() {},
55
+ methods: {
56
+ setStyle(num) {
57
+ let obj = {};
58
+ if (this.color) {
59
+ obj.color = this.color;
60
+ if (Array.isArray(this.color)) {
61
+ obj.color = this.color[num % this.color.length];
62
+ } else {
63
+ obj.color = this.color;
64
+ }
65
+ }
66
+ if (this.backgroundColor) {
67
+ if (Array.isArray(this.backgroundColor)) {
68
+ obj.backgroundColor =
69
+ this.backgroundColor[num % this.backgroundColor.length];
70
+ } else {
71
+ obj.backgroundColor = this.backgroundColor;
72
+ }
73
+ }
74
+ return obj;
75
+ },
76
+ handleClick(res) {
77
+ this.active = res.id;
78
+ this.$emit('command', res);
79
+ }
80
+ }
81
+ };
82
+ </script>
83
+
84
+ <style lang="scss" scoped></style>
@@ -0,0 +1,135 @@
1
+ <template>
2
+ <el-scrollbar class="es-simplicity-menus-scrollbar">
3
+ <div
4
+ class="es-simplicity-menus-lists"
5
+ :class="{ 'is-fold': fold }"
6
+ @mouseleave="handleOut(true)"
7
+ @mouseenter="handleOut(false)"
8
+ >
9
+ <div
10
+ v-for="(item, index) in data"
11
+ class="es-simplicity-menus-item"
12
+ :key="item.id"
13
+ :class="{ 'is-fold': fold, 'is-active': active == item.id }"
14
+ :title="fold ? item.text || item.name : ''"
15
+ @click="handleClick(item)"
16
+ @mouseenter="handleEnter(item)"
17
+ @mouseleave="handleLeave(item)"
18
+ >
19
+ <template v-if="fold">
20
+ <el-badge is-dot :hidden="!item.tips">
21
+ <es-icon
22
+ class="es-simplicity_apps-icon"
23
+ :style="setStyle(index)"
24
+ :contents="item.icons || item.icon || menuIcon"
25
+ ></es-icon>
26
+ </el-badge>
27
+ </template>
28
+ <template v-else>
29
+ <es-icon
30
+ class="es-simplicity_apps-icon"
31
+ :style="setStyle(index)"
32
+ :contents="item.icons || item.icon || menuIcon"
33
+ ></es-icon>
34
+ <div class="es-simplicity-menus-tips" v-if="item.tips">
35
+ {{ item.tips > 99 ? '99+' : item.tips }}
36
+ </div>
37
+ </template>
38
+ <div class="es-simplicity_apps-text" v-show="!fold">
39
+ {{ item.text || item.name }}
40
+ </div>
41
+ <i
42
+ class="es-icon-you es-simplicity-menus-item-icon"
43
+ v-show="
44
+ (item.children && item.children.length) ||
45
+ (item.fourthTabs && item.fourthTabs.length)
46
+ "
47
+ ></i>
48
+ </div>
49
+ </div>
50
+ </el-scrollbar>
51
+ </template>
52
+
53
+ <script>
54
+ import util from 'eoss-ui/src/utils/util';
55
+ export default {
56
+ name: 'MenuList',
57
+ components: {},
58
+ props: {
59
+ active: String,
60
+ menuIcon: String,
61
+ color: [String, Array],
62
+ backgroundColor: [String, Array],
63
+ data: Array,
64
+ fold: Boolean,
65
+ width: Number,
66
+ popover: Boolean,
67
+ parent: Object
68
+ },
69
+ data() {
70
+ return {
71
+ defaultActive: this.active,
72
+ show: false,
73
+ height: document.body.offsetHeight - 44
74
+ };
75
+ },
76
+ computed: {},
77
+ watch: {
78
+ popover() {
79
+ if (this.$el.offsetHeight > this.height) {
80
+ this.$el.style.height = this.height + 'px';
81
+ } else {
82
+ this.$el.style.height = '';
83
+ }
84
+ }
85
+ },
86
+ created() {},
87
+ mounted() {},
88
+ methods: {
89
+ setStyle(num) {
90
+ let obj = {};
91
+ if (this.color) {
92
+ obj.color = this.color;
93
+ if (Array.isArray(this.color)) {
94
+ obj.color = this.color[num % this.color.length];
95
+ } else {
96
+ obj.color = this.color;
97
+ }
98
+ }
99
+ if (this.backgroundColor) {
100
+ if (Array.isArray(this.backgroundColor)) {
101
+ obj.backgroundColor =
102
+ this.backgroundColor[num % this.backgroundColor.length];
103
+ } else {
104
+ obj.backgroundColor = this.backgroundColor;
105
+ }
106
+ }
107
+ return obj;
108
+ },
109
+ handleClick(res) {
110
+ this.defaultActive = res.id;
111
+ if (res.url) {
112
+ if (res.urlopenmode == 1) {
113
+ util.win.open(res.url);
114
+ return;
115
+ } else if (res.urlopenmode == 2) {
116
+ util.win.open(res.url, '_self');
117
+ return;
118
+ }
119
+ this.$emit('command', res);
120
+ }
121
+ },
122
+ handleEnter(res) {
123
+ this.$emit('menter', res);
124
+ },
125
+ handleLeave(res) {
126
+ this.$emit('mleave', res);
127
+ },
128
+ handleOut(res) {
129
+ this.$emit('mout', res);
130
+ }
131
+ }
132
+ };
133
+ </script>
134
+
135
+ <style lang="scss" scoped></style>
@@ -0,0 +1,293 @@
1
+ <template>
2
+ <el-drawer
3
+ class="es-simplicity-message"
4
+ modal-class="es-simplicity-message-modal"
5
+ direction="rtl"
6
+ size="648px"
7
+ :withHeader="false"
8
+ :visible.sync="show"
9
+ :modal-append-to-body="false"
10
+ >
11
+ <div class="es-simplicity-message-header">
12
+ <span class="es-simplicity-message-title">消息提示</span>
13
+ <span class="es-simplicity-message-overlook" @click="handleIgnoreAll"
14
+ >全部忽略</span
15
+ >
16
+ </div>
17
+ <div class="es-simplicity-message-lists-box">
18
+ <div class="es-simplicity-message-lists">
19
+ <el-scrollbar class="es-scrollbar">
20
+ <div v-infinite-scroll="getMsg" :infinite-scroll-disabled="disabled">
21
+ <div
22
+ v-for="(item, index) in msgs"
23
+ :key="item.id"
24
+ class="es-simplicity-message-item"
25
+ >
26
+ <div class="es-simplicity-message-item-title">
27
+ {{ item.title }}
28
+ </div>
29
+ <div>
30
+ <span class="es-simplicity-message-item-time">
31
+ {{ item.time }}
32
+ </span>
33
+ <span
34
+ class="es-simplicity-message-handler"
35
+ v-show="item.handlerUrl"
36
+ @click="handleMessage(item, index)"
37
+ >
38
+ 处理
39
+ </span>
40
+ <span
41
+ class="es-simplicity-message-overlook"
42
+ @click="handleIgnore(item, index)"
43
+ >
44
+ 忽略
45
+ </span>
46
+ </div>
47
+ </div>
48
+ <p class="es-simplicity-message-tips" v-if="loading">加载中...</p>
49
+ <p class="es-simplicity-message-tips" v-if="noMore && count > 0">
50
+ 没有更多了
51
+ </p>
52
+ </div>
53
+ </el-scrollbar>
54
+ </div>
55
+ </div>
56
+ <div class="es-simplicity-message-total">共有 {{ count }} 条消息记录</div>
57
+ <es-dialog
58
+ title="处理"
59
+ name="manage"
60
+ width="90%"
61
+ height="80%"
62
+ :visible.sync="dialog.show"
63
+ :url="dialog.url"
64
+ :param="dialog.params"
65
+ @close="handleClose"
66
+ ></es-dialog>
67
+ </el-drawer>
68
+ </template>
69
+ <script>
70
+ import {
71
+ sysMsgPage,
72
+ ignoreSysMsg,
73
+ ignoreAllSysMsg
74
+ } from 'eoss-ui/src/config/api.js';
75
+ import util from 'eoss-ui/src/utils/util';
76
+ export default {
77
+ name: 'Message',
78
+ provide() {
79
+ return {
80
+ deleteMessage: this.handleRemove
81
+ };
82
+ },
83
+ props: {
84
+ visible: Boolean,
85
+ total: {
86
+ type: Number,
87
+ default: 0
88
+ },
89
+ winopen: Boolean
90
+ },
91
+ computed: {
92
+ show: {
93
+ get() {
94
+ return this.visible;
95
+ },
96
+ set(val) {
97
+ this.$emit('update:visible', val);
98
+ }
99
+ },
100
+ count: {
101
+ get() {
102
+ return this.total;
103
+ },
104
+ set(val) {
105
+ this.$emit('update:total', val);
106
+ }
107
+ },
108
+ noMore() {
109
+ return this.msgs.length >= this.count;
110
+ },
111
+ disabled() {
112
+ return this.loading || this.noMore;
113
+ }
114
+ },
115
+ watch: {
116
+ total(val, old) {
117
+ if (parseInt(val, 10) < parseInt(old, 10) && this.index !== null) {
118
+ this.handleRemove();
119
+ } else {
120
+ this.getMsg(true);
121
+ }
122
+ }
123
+ },
124
+ data() {
125
+ return {
126
+ //加载数据
127
+ loading: false,
128
+ //消息页码
129
+ pageNum: 1,
130
+ pageSize: 20,
131
+ pageCount: 1,
132
+ //消息数据,
133
+ msgs: [],
134
+ dialog: {
135
+ params: {},
136
+ url: '',
137
+ show: false
138
+ },
139
+ index: null,
140
+ deleteId: null
141
+ };
142
+ },
143
+ mounted() {
144
+ util.win.deleteMsg = this.handleRemove;
145
+ const bus = this.bus || this.$root.Bus;
146
+ bus && bus.$on('deleteMessage', this.handleRemove);
147
+ },
148
+ methods: {
149
+ //获取消息列表
150
+ getMsg(reload) {
151
+ if (this.pageNum <= this.pageCount) {
152
+ this.loading = true;
153
+ util
154
+ .ajax({
155
+ url: sysMsgPage,
156
+ params: {
157
+ pageNum: reload ? 1 : this.pageNum,
158
+ pageSize: this.pageSize
159
+ }
160
+ })
161
+ .then((res) => {
162
+ if (res && res.rCode === 0) {
163
+ this.pageCount = res.results.pageCount;
164
+ this.loading = false;
165
+ if (reload || this.pageNum == 1) {
166
+ this.msgs = JSON.parse(JSON.stringify(res.results.records));
167
+ } else {
168
+ this.msgs = this.msgs.concat(res.results.records);
169
+ }
170
+ this.pageNum++;
171
+ } else {
172
+ let msg = res.msg || '系统错误,请联系管理员!';
173
+ this.$message.error(msg);
174
+ }
175
+ })
176
+ .catch((err) => {
177
+ this.loading = false;
178
+ if (err.message && err.message !== 'canceled') {
179
+ this.$message.error(err.message);
180
+ }
181
+ });
182
+ }
183
+ },
184
+ //忽略
185
+ handleIgnore(res, i) {
186
+ util
187
+ .ajax({
188
+ url: ignoreSysMsg,
189
+ params: {
190
+ id: res.id
191
+ }
192
+ })
193
+ .then((res) => {
194
+ if (res.rCode == 0) {
195
+ this.count -= 1;
196
+ this.msgs.splice(i, 1);
197
+ } else {
198
+ let msg = res.msg || '系统错误,请联系管理员!';
199
+ this.$message.error(msg);
200
+ }
201
+ });
202
+ },
203
+ //全部忽略
204
+ handleIgnoreAll() {
205
+ util
206
+ .ajax({
207
+ url: ignoreAllSysMsg
208
+ })
209
+ .then((res) => {
210
+ this.count = 0;
211
+ this.msgs = [];
212
+ this.$emit('ignore', { type: 'ignore', value: 'all' });
213
+ })
214
+ .catch((err) => {
215
+ if (err.message && err.message !== 'canceled') {
216
+ this.$message.error(err.message);
217
+ }
218
+ });
219
+ },
220
+ //处理消息
221
+ handleMessage(item, index) {
222
+ const openModel = util.getStorage('openModel');
223
+ if (openModel && openModel == 'dialog') {
224
+ let { handlerUrl, title, id, metaData } = item;
225
+ metaData &&
226
+ (title =
227
+ metaData.title ||
228
+ metaData.pendtitle ||
229
+ metaData.meetName ||
230
+ title ||
231
+ '办理');
232
+ const jsonData =
233
+ metaData && metaData.jsonData ? JSON.parse(metaData.jsonData) : {};
234
+ util.busEmit(this, {
235
+ method: 'windowOpen',
236
+ args: {
237
+ url: handlerUrl,
238
+ title: title,
239
+ id: id,
240
+ msgIndex: index,
241
+ ...jsonData,
242
+ callback: 'deleteMessage'
243
+ }
244
+ });
245
+ return;
246
+ }
247
+ this.count -= 1;
248
+ this.msgs.splice(index, 1);
249
+ if (this.winopen) {
250
+ const mywin = util.win.open(item.handlerUrl);
251
+ if (mywin) {
252
+ let times = setInterval(() => {
253
+ if (mywin.closed) {
254
+ clearInterval(times);
255
+ this.$parent.$emit('bus-emit', 'waitdone');
256
+ }
257
+ }, 1000);
258
+ }
259
+ } else {
260
+ this.dialog = {
261
+ show: true,
262
+ url: item.handlerUrl,
263
+ data: {
264
+ id: item.id,
265
+ pendingId: item.pendingId,
266
+ userId: item.userId
267
+ }
268
+ };
269
+ this.index = index;
270
+ }
271
+ },
272
+ handleRemove(res) {
273
+ let index = res ? res.msgIndex : this.index;
274
+ if (index !== null) {
275
+ this.count -= 1;
276
+ this.msgs.splice(index, 1);
277
+ this.index = null;
278
+ }
279
+ if (res) {
280
+ this.$emit('handle', res);
281
+ }
282
+ this.dialog.show = false;
283
+ },
284
+ handleClose() {
285
+ this.$parent.$emit('bus-emit', 'waitdone');
286
+ }
287
+ },
288
+ destroyed() {
289
+ const bus = this.bus || this.$root.Bus;
290
+ bus.$off('deleteMessage', this.handleRemove);
291
+ }
292
+ };
293
+ </script>